It's just a container, but a container that can have an instance transform applied to it. In other words, a group of things that we can translate, rotate and scale as a group.
I'm not sure what you mean by "functions" here, so I have to guess.
Yes, you can "reach into" a group and modify the inner stuff, as well as modifying the outer stuff. We saw that with the bell: we can rotate the inner mesh or the outer group. In fact, we'll see some cool examples of that next time (I'm thinking of the leg and the snake).
Sure. For each mesh/group, there are little internal variables,
say position.x
. It works just like any variable you've
learned in your years of coding, so you can set it or increment/decrement it.
Consider the following:
The same thing for rotations in all three directions.
However, because of the non-commutativity that we will talk about today, I strongly recommend using the rotation methods. They will do the more intuitive thing.
I'll try, though I'm not quite sure what you are asking.
Do you mean how the rotation matrix math works? That involves some trigonometry, but I'm happy to do that.
Do you mean how the rotation matrix is applied? It's all part of the chain of transformations.
We don't! I should say that in the reading. Internally, 3D points are converted to 4D homogenous coordinates during the rendering process, but I have never had to specify a "W" component in my Threejs code.
This goes in the category of "how stuff works" rather than "how to code", along with rotation matrices.
I'm not sure what it represents. There are mathematicians that will say that translation in 3-space is the same as a rotation in 4-space, and that's how the homogenous coordinates work. But I don't find that helpful.
I just think of it as a trick, so that we can use matrix multiplication instead of addition. That's the real reason that it's used in CG: the uniform representation.
Great question! I don't really know. I make mistakes all the time, particularly with tricky things like getting the rotations right. But that's just normal human error. I'm not sure I've discerned a pattern.
But let's keep track of those this semester.
Yes! They are essentially super-computers. They were originally designed to do graphics only, but with the advent of the programmable shader, about 20 years ago, their computational power became more generally available, including for computations like ML.
We'll talk more programming the shader later in the course, though we won't do ML on the GPU.
I'm so glad to hear that! I did a lot of revisions for this semester, and I'm glad you enjoyed it.