1/27
Looks like no tags are added yet.
scene graph
At the heart of a 3D graphics framework is a _____
a data structure that organizes the contents of a 3D scene using a hierarchical or tree-like structure
tree
A Scene Graph Framework;
represents a hierarchical nature of structure in a graphical form
nodes
A Scene Graph Framework;
tree consists of elements called _______
each ____ represents a 3D object in the scene
child nodes
A Scene Graph Framework;
with each node links to its successors. The successors of a node are its ________
parent
A Scene Graph Framework;
while the predecessor of a node is called its ______.
root node
A Scene Graph Framework;
Each child node has exactly one (1) parent except for a special node called the ________.
This node is the tree’s topmost node.
A tree with seven nodes
Nodes: A, B, C, D, E, F, G
Root node: A
Parent nodes: A, B, D
Child nodes: B-C-D for A, E-F for B, and G for D

model matrix
The accumulated transformations applied to an object are stored as the product of the corresponding matrices, which is a single matrix called the _______ of the object
It stores the transform of an object relative to its parent object in the scene graph.
transform
The model matrix effectively stores the current location, orientation, and scale of an object. These three (3) are collectively referred to as the ____ of the object.
world transformation
The transform of an object relative to the root of the scene graph, often called a __________, can be calculated from the product of the model matrix of the object and those of each of its ancestors.
A scene and its scene graph 🍒
In a scene graph, a single object can have several connections to one or more parent objects.
Each connection represents an occurrence of the object in its parent object. For example, the filled square object is as a child object in the cart and the windmill. It is used twice in the cart and once in the windmill. The filled circle is used in the sun once and twice in the wheel. The line is used 12 times in the sun and also in the wheel. The thick arrows, marked with 12, represent 12 connections. The wheel is used twice in the cart.
Each arrow in the figure can be associated with a modeling transformation that places the child object into its parent object. When an object contains multiple copies of a child object, each arrow connecting the child object to the object will have a different associated modeling transformation. The object is the same for each copy, while the transformation differs. 🍒

A table consisting of five boxes.🍒
A scene graph structure also allows simple geometric shapes to be grouped together into a compound object that can be easily transformed into a single unit.
For example, a simple model of a table may be created using a large, flat box for the top surface and four (4) narrow, tall boxes positioned underneath near the corners for the table legs. Each of these objects can be stored in a node, and all five (5) nodes share the same parent node. 🍒

A scene containing multiple geometric shapes🍒
Transforming the parent node affects the entire table object. Note that each of these boxes may reference the same vertex data; the different sizes and positions of each may be set with a model matrix. A scene graph-based framework allows you to create interactive scenes containing complex objects, such as the one in the same sample figure below.🍒

transform data
child
reference 🍫
In a scene graph framework, the nodes represent objects located in a three dimensional space. The corresponding class (ex. Object3D class) shall contain three (3) items:
A matrix to store its ________
A list of references to ____ objects
A _____ to a parent object 🍫
Scene
Many classes can extend the above class, each with a different role in the framework. These classes represent the following. (Those in parentheses/term are sample class names.);
Root node
Group
Many classes can extend the above class, each with a different role in the framework. These classes represent the following. (Those in parentheses/term are sample class names.);
Interior nodes used for grouping purposes
Mesh
Many classes can extend the above class, each with a different role in the framework. These classes represent the following. (Those in parentheses/term are sample class names.);
Nodes corresponding to objects that can be rendered
Camera
Many classes can extend the above class, each with a different role in the framework. These classes represent the following. (Those in parentheses/term are sample class names.);
Virtual camera for rendering the point of view
Light
Many classes can extend the above class, each with a different role in the framework. These classes represent the following. (Those in parentheses/term are sample class names.);
Virtual light source that affects the shading and shadows
Geometry
Many classes can extend the above class, each with a different role in the framework. These classes represent the following. (Those in parentheses/term are sample class names.);
The general shape and other vertex-related properties of each mesh
Material
Many classes can extend the above class, each with a different role in the framework. These classes represent the following. (Those in parentheses/term are sample class names.);
The general appearance of an object
Renderer
Many classes can extend the above class, each with a different role in the framework. These classes represent the following. (Those in parentheses/term are sample class names.);
The general initialization tasks and image rendering
vertex array object (VAO)
It associates vertex buffers to attribute variables. This will allow geometric objects to be reused and rendered with different materials in different meshes.
Since each instance of a mesh stores a transformation matrix, multiple versions of a mesh (based on the same geometry and material data) can be rendered with different positions and orientations. Each mesh shall store a reference to a _________.
vertex buffers
whose references shall be stored by attribute objects stored in the geometry
attribute variable
specified by shaders stored in the material
Read only P1🍒
The class representing the vertex-related properties of each mesh (ex. Geometry class shall store Attribute objects that describe vertex properties, such as position and color. Geometric objects shall also store texture coordinates, for applying images to shapes, and normal vectors, for use in lighting calculations. This class shall calculate the total number of vertices equal to the length of the data array stored in any attribute. Classes extending the Geometry class shall be created to realize each particular shape. In some cases, such as rectangles and boxes, the attribute data shall be listed directly. 🍒 p1
Read only P2 🍒
For other shapes, such as polygons, cylinders, and spheres, the attribute data shall be calculated from mathematical formulas
The class representing the general appearance of an object (e x. Material class) shall serve as a repository for three ( 3 ) types of information related to the rendering process and the appearance of an object. These include the shader code (and the associated program reference), Uniform objects, and render settings. The render settings are the properties which are set by calling functions, such as the type of geometric primitive s (points, lines, or triangles), point size, line width, and so forth. The base Material class shall initialize dictionaries to store uniform objects and render setting data. It shall also define functions to perform tasks such as compiling the shader program code and locating uniform variable references. Extensions of this class shall supply the actual shader code, a collection of uniform objects corresponding to uniform variables defined in the shaders, and a collection of render setting variables applicable to the type of geometric primitive being rendered. 🍒 p2
Read only P3 🍒
The rendering function in the Renderer class shall require two ( 2 ) parameters: a scene object and a camera object. For each mesh in the scene graph, the renderer shall perform the tasks necessary before the function for drawing is called. These tasks include activating the correct shader program, binding a vertex array object, configuring render settings, and sending values to be used in uniform variables.
There are three (3) required uniform variables by most shaders whose values are stored outside the material. These are the transformation of a mesh, the transformation of the virtual camera used for viewing the scene, and the perspective transformation applied to all objects in the scene. Though the uniform objects will be stored in the material for consistency, this matrix data shall be copied by the rendered into the corresponding uniform objects before they send their values to the GPU. 🍒 p3