1/103
Looks like no tags are added yet.
Tree
A graphical representation of a hierarchical structure. It consists of elements called nodes that are connected to other nodes.
Node
An element in a tree. In a scene graph, each node represents a 3D object in the scene
Successor of a node
A node connected below another node. The successors of a node are called its child nodes.
Child Node
A successor of another node. Each child normally has exactly one parent, except for the root node.
Predecessor of a node
The node above another node. The predecessor of a node is called its parent.
Parent Node
A node that has one or more child nodes connected to it.
Root Node
The topmost node of a tree. It is the special node that does not have a parent.
Model Matrix
A single matrix containing the accumulated transformations applied to an object. It stores the object's current location, orientation, and scale.
Transform
The combination of an object's location, orientation, and scale.
Location, orientation, and scale.
What three properties make up an object's transform?
It stores the transform of an object relative to its parent object.
What does the model matrix store relative to the scene graph?
World Transformation
The transformation of an object relative to the root of the scene graph.
combining the object's model matrix with the model matrices of each of its ancestors.
How is a world transformation calculated?
Ancestor
A parent, parent's parent, or another node above an object in the scene graph hierarchy.
It allows complicated transformations to be expressed using simpler transformations.
Why is the hierarchical transformation structure useful?
Yes. A single object can have several connections to one or more parent objects.
Can a single object have multiple connections in a scene graph?
An occurrence of that object inside its parent object.
What does each connection to a parent represent?
Modeling Transformation
A transformation associated with a connection or arrow that places a child object into its parent object.
No. The child object can remain the same, but each connection may use a different modeling transformation
if a parent contains several copies of the same child object, are their modeling transformations identical?
Compound Object
A more complex object created by grouping simpler geometric shapes together so they can be transformed as a single unit.
A table made from one large flat box for the tabletop and four narrow tall boxes for the legs.
What compound-object example is given in the handout?
Five: one tabletop and four legs.
How many box nodes are used to make the sample table?
Each part can be stored in a node, and all five nodes share the same parent node
How are the five parts of the table organized?
the entire table object is affected.
What happens when the parent node of the table is transformed?
Yes. Their different sizes and positions can be established using model matrices.
Can the boxes in the table reference the same vertex data?
Object3D Class
An example class representing objects or nodes located in three-dimensional space in a scene graph framework.
A matrix for transform data, a list of references to child objects, and a reference to a parent object.
What three items should an Object3D-type class contain?
Scene Class
The class representing the root node of the scene graph.
Group Class
A class representing interior nodes used for grouping objects.
Mesh Class
A class representing nodes corresponding to objects that can be rendered.
Camera Class
A virtual camera used to determine the point of view for rendering.
Light Class
A virtual light source that affects shading and shadows.
Geometry Class
A class representing the general shape and other vertex-related properties of a mesh.
Material Class
A class representing the general appearance of an object.
Renderer Class
A class responsible for general initialization tasks and image rendering.
Each mesh instance stores its own transformation matrix, allowing different positions and orientations.
Why can multiple versions of the same mesh appear differently in a scene?
Yes. Multiple mesh versions can use the same geometry and material while having different transformations.
Can meshes reuse the same geometry and material data?
A Vertex Array Object or VAO.
What does each mesh store a reference to?
Vertex Array Object.
what is VAO
It associates vertex buffers with attribute variables used by shaders.
What does a VAO do?
Vertex Buffer
Vertex data referenced through attribute objects stored in the geometry class and associated with shader attributes through the VAO.
Attribute Variable
A variable specified by shaders in the Material class that receives vertex-related information.
It allows geometric objects to be reused and rendered with different materials in different meshes.
Why is the VAO system useful?
The vertex-related properties and general shape of each mesh.
What does the geometry class represent?
Attribute Object
An object stored by Geometry that describes a vertex property.
Properties such as position and color.
What vertex properties can Attribute objects describe?
Position Attribute
Vertex-related data describing the position of vertices.
Color Attribute
Vertex-related data describing the colors associated with vertices.
Texture Coordinates
Vertex-related information used to apply images to geometric shapes.
Normal Vectors
Vertex-related information used in lighting calculations.
the total number of vertices equals the length of the data array stored in any attribute.
How does the Geometry class calculate the total number of vertices?
To create or realize particular geometric shapes.
Why are classes created that extend the Geometry class?
Shapes such as rectangles and boxes.
Which shapes may have their attribute data listed directly?
Polygons, cylinders, and spheres.
Which shapes may require mathematical formulas to calculate their attribute data?
To serve as a repository for information related to the rendering process and the general appearance of an object.
What is the purpose of the Material class?
Shader code and its program reference, Uniform objects, and render settings.
What three types of information does the Material class contain?
Shader Code
Code stored by the Material class and associated with a shader program used during rendering.
Program Reference
A reference associated with the shader code stored by the Material class.
Uniform Object
An object used to store values corresponding to uniform variables defined in shaders.
Render Settings
Rendering properties set by functions, including primitive type, point size, line width, and similar settings.
What geometric primitive types are mentioned in the handout?
Points, lines, and triangles.
Compiling shader program code and locating uniform variable references.
What shader-related tasks can function in the Material class perform?
Dictionaries for storing Uniform objects and render-setting data.
What dictionaries does the base Material class initialize?
actual shader code, Uniform objects corresponding to shader uniform variables, and render-setting variables appropriate for the primitive being rendered.
What do extensions of the Material class supply?
A scene object and a camera object.
What two parameters are required by the Renderer class's rendering function?
It performs the necessary setup before the drawing function is called.
What does the Renderer do for each mesh before drawing it?
It activates the correct shader program.
What shader task does the Renderer perform?
It binds the appropriate Vertex Array Object.
What VAO task does the Renderer perform?
It configures the required render settings.
What render-setting task does the Renderer perform?