# Assignment 3 Frequently Asked Questions

Q. How do we count polygons in the reduced LOD part of the assignment? Do all primitives contribute to the polygon count, or should we only count polygons from indexed face sets?  How would we count the polygon contribution of primitives like a cone?

A. As far as I know, there is no way to directly control the number of polygons that are contributed by rounded primitives such as cones, cylinders and spheres.  So, to get an exact count, use only boxes and simple indexed face sets in your low LOD model.

Q. Huh?  I still don't understand the requirements for primitive and polygon counts.  What's the deal?

A. Ok, you will build two versions of your model: a normal version, and a reduced version.  It is the normal version of your model that we will judge for complexity and interest.  The normal version must contain:

• at least 3 different primitive types, where a primitive type is one of:
• Box
• Cone
• Cylinder
• IndexedFaceSet
• Sphere
• at least 10 primitives, where a primitive is an instance of one of the above primitive types
Note that these are the minimum requirements for the normal version.  Models that receive full points for complexity will have more than this.

Your reduced version should look approximately like your normal version, but contain significantly less polygons.  We define "significantly less" to mean less than 200 polygons, which means that your normal version should have more than 200 polygons.  The difference in polygons between your two models is not defined: it should satisfy the above constraint, and should provide for a normal model that is detailed and looks smooth.  If you are in doubt, err on the side of more complexity in your normal model.  There is no lower bound on the number of primitives or primitive types in your reduced model, as long as it looks approximately like the normal version.

So, how does one determine how many polygons are in the reduced model?  Boxes have 6 polygons, and the number of polygons in an IndexedFaceSet is defined in the node; these can be counted.  The number of polygons that go into rendering Cones, Cylinders, and Spheres is determined by the renderer, though; you have no direct control over this number.  For that reason, you probably want to avoid using Cones, Cylinders, and Spheres in your reduced model.  Where you use a Cylinder in your normal model, try using a Box in your reduced model.  You can make similar substitutions for the other types.

Q. The VRML book explains how to perform animation with JavaScripts.  Is it your intention that we do this, or are we just to use timers and interpolators?

A. You may use JavaScript if you wish, but it is not required.  Script nodes allow you to do more complicated animations, since you can keep state variables between different animation segments; however, you can complete all of the requirements of the assignment without using any Scripts.

Q. My model has parts that are in multiple files, using EXTERNPROTO's. I want to have an animation that uses several of these parts, but I'm having some trouble figuring out how to do the routing. Any ideas?

A. This is kind of tricky. Basically, any events that you want to send between nodes that reside in different files must be done through the prototype's declaration. See the example ProtoEvents.wrl. This file has a cone, a sphere, and a cylinder, all in separate files. Each primitive sends a different kind of event out through its interface to animate the square that resides in the main file. This requires that each EXTERNPROTO have the correct kind of eventOut in its declaration.

CS248: Introduction to Computer Graphics, Pat Hanrahan, Fall 98