I mentioned today an excellent book on the primitive "graphics" techniques used by Renaissance (and older) artists to produce very realistic paintings. Here it is, highly recommended: Here
Rasterization: process triangles in parallel (smaller memory)
Ray Tracing: allow recursion, but computation intensive
For ray-plane, ray-triangle intersection, see 15-462.
Triangle List or Face Set (STL)
Face: 3 vertex positions
4 Bytes/coordinate (using 32-bit floats)
36 Bytes/face
many wasted space due to duplication
Indexed Face Set (OBJ, OFF, WRL)
Vertex: position
Face: vertex indices
12 Bytes/vertex
12 Bytes/face
Besides mesh geometry, we often store other information: color, sharpness, continuity and discontinuities.
Vertex Data: surface normal, texture coordinates, positions
Piecewise planar approximation converges pretty quickly O(h^2) to the smooth geometry as the number of triangles increase, but surface normal converges with O(h). So we need interpolate face normal.
Ray Tracing Cost: n_{xy} \times n_o where n_{xy} is the number of pixels and n_o is the number of triangles.
Spatial sorting/subdivision (e.g. grid, kd-tree, ochre): Decompose space into disjoint regions & assign objects to regions
Object sorting/subdivision (bounding volume hierarchy): Decompose objects into disjoint sets & bound using simple volumes for fast rejection
Table of Content