Week 3 - Class 1

Well, it turns out we are going to review the projects you were to have done last Wednesday. Say thank you to Mr. Snow Day!

Week 3 - Class 2

We begin by reviewing the updated work from Monday's showings.

In this now-shortened section, we are going to look into OpenGL/3D visual development using grid shapes and models. We are also going to look at some of the ways that Max 7 has changed the complexity that is required in our patch in order to make an operational OpenGL world.

With Max 6, the creation of an OpenGL world involved renderers, timing setups, handles and weird context names. Now, all of this - and more - is wrapped into a single object called jit.world

Combining a jit.world object with a simple gridshape object (such as we saw in VP I) gives us all of the OpenGL visuals that we've come to love:

The result of this patch (which you should put together) gives us the following image:

Note that we've added the "Escape for fullscreen" function to the jit.world, and the attrui object to the jit.gl.gridshape in order to make it convenient to manipulate the system.

One of the things that we might want to do is to create more interesting figures - something that might require a lot of primitive shapes (such as those created by jit.gl.gridshape) in order to accomplish. We could do a large number of gridshapes in order to create complex shapes, or we can use models as created by other 3D programs such as Blender or Maya. In order to do this, we use the jit.gl.model object to load a model file:

In this case, we can click on the "read" messages to load the models into the system; at this point, we will see the following image:

Notice that most of the attributes of jit.gl.model are similar to those that we used with jit.gl.gridshape. In this case, we set different position settings in order to make sure that the models don't sit on top of each other.

Now, with the jit.world setup, it may seem like we lose options that we had in the old, more modular system. One important this is manipulation of the camera - we no longer have the opportunity to manipulate the camera of the renderer. We could send messages to the render engine, or we can create a jit.gl.camera object.

Now we can change the location of the camera (and occasionally reset the lookat attribute just as if we were attacking the renderer, but with autonomy.

In-class Activities:

Homework Project due on Wednesday, January 28:

Return to the class index.
Last update: 01/20/2015