Advanced Computer Graphics Computer graphics algorithms are being increasingly used in many scientific and technological areas, with an explosive growth in applications requiring threedimensional rendering and animation. The expansion of computer graphics into diverse and interdisciplinary areas is the result of many factors such as the ever increasing power and capability of the graphics hardware, […]

# Advanced Methods in Computer Graphics

## Mathematical Preliminaries (Advanced Methods in Computer Graphics) Part 1

Overview Mathematical operations on points, vectors and matrices are needed for processing information related to geometrical objects. Even in the modelling of a simple threedimensional scene, vectors and matrices play an important role in specifying an objectâ€™s position, orientation and transformations. Methods for lighting, intersection testing, projections, etc., use a series of vector operations. Parametric […]

## Mathematical Preliminaries (Advanced Methods in Computer Graphics) Part 2

Lines and Planes Lines and planes form integral parts of three-dimensional models and virtual worlds. A good understanding of line and plane equations and their analytical properties is essential for the development of many applications. For example, even a simple ray tracing application requires the computation of several line-plane intersections. A straight line segment can […]

## Mathematical Preliminaries (Advanced Methods in Computer Graphics) Part 3

Curves In Sect. 2.3, we came across the equation of a straight line expressed in terms of linear polynomials of a single parameter t (Eq. 2.12). Polynomials of a higher degree in t can be used to define curves in three-dimensional space. In the most general form, a curve can be represented as P(t) = […]

## Mathematical Preliminaries (Advanced Methods in Computer Graphics) Part 4

Barycentric Coordinates The barycentre of a rigid body is its centre of mass. For a triangle, the barycentre is its centroid. Given vertices P1, P2, P3 of a triangle, the centroid C can be easily computed as the average of the vertex coordinates (P1 + P2 + P3)/3. Thus C can be represented as a […]

## Scene Graphs (Advanced Methods in Computer Graphics) Part 1

Overview A scene graph is a data structure commonly used to represent hierarchical relationships between transformations applied to a set of objects in a three-dimensional scene. It finds applications in a variety of acceleration and rendering algorithms. A scene graph could also be used to organize visual attributes, bounding volumes, and animations as a hierarchy […]

## Scene Graphs (Advanced Methods in Computer Graphics) Part 2

A Planetary System As the third example, we consider a simple planetary system consisting of the Sun, the Earth and the Moon. The translational and rotational parameters used in modelling the system are shown in Fig. 3.8. The rotation angles 9E, 9M represent the spin of the Earth and the Moon respectively about vertical axes, […]

## Scene Graphs (Advanced Methods in Computer Graphics) Part 3

Sample Implementation In this section, we will discuss the design of a set of classes that implement the functionality of a scene graph with transformation matrices attached to its nodes. Internal nodes that can store a list of children, and also a transformation matrix, are represented by the class GroupNode. All transformation matrices are assumed […]

## Skeletal Animation (Advanced Methods in Computer Graphics) Part 1

Overview This topic discusses concepts such as vertex blending, vertex skinning and keyframing that are fundamental to the animation of articulated character models. Vertex blending is the process of constructing blending surfaces between two different parts that move relative to each other, in order to create the appearance of a single deformable object. Vertex blending […]

## Skeletal Animation (Advanced Methods in Computer Graphics) Part 2

Vertex Skinning In order to define the hierarchical nature of a skeleton, the parent-child relationship between every two connected bones must be shown. We could represent a bone using a point with arrow(s) pointing to its child node(s), as in Figs. 4.7a, c. Another common representation of a bone uses triangles. Fig. 4.7b shows the […]