3D Programming Resources for WB6 and WB7
This posting gives you some resources to help you learn the basic 3D programming things you will need to do Workbooks 6 and 7. These are things we didn’t get to talk about in lecture before the assignments were released.
Workbooks 6 and 7 ask you to “use” 3D graphics programming before we talk about the details. The idea is that you can try things out before learning the underlying math. There is a bit of a chicken and egg problem: you need to understand a little to try things out, but once you try things out, it will be easier to learn to understand them.
I had wanted to cover the material in lecture 14, but didn’t get to all of it. Last year, I had the same problem, so I made extra videos.
Here are three videos from last year that were meant to help:
- 2022 Lecture 14A Projection and Perspective (video) (slides) - we covered this material in this year’s Lecture 14
- 2022 Lecture 14B Lighting and Materials (video) (slides) - a quick lesson in what lighting does, useful for making your materials in Workbook 6
- 2022 Lecture 14C Animation in THREE (video) (slides)
You also will encounter some asynchronous programming (for object loading). There is a video that explains this: 2022 Video on Asynchronous Programming.
In 2020, I made some Lighting demos. I had hoped to update these. But, if you want to try something out to understand the difference between specular and diffuse lighting (which you would have learned about in Lecture 14B above)
- Diffuse (change light direction and color)
- Specular (change light direction, color, object shininess)
In 2021, there was a video that included a similar brief review of lighting and also talked about JavaScript subclasses (important, especially for the class Framework in WB7).
- 2021 Lecture 18A Subclasses and Lighting Review (video) - this starts out with a discussion of what we’ll do in week 9 (coming soon), and at the end reviews meshes (which we will get to - but it might be useful to do now). But the bulk of this is a review of stuff that is very useful for WB6 and WB7.
We’ll actually talk about how lighting works in a few weeks. But, if you want to “watch ahead”, here is the lighting lecture from 2021:
If you need to learn about how object oriented programming works in JavaScript, we have a tutorial: