opengl
instancing - a technique to render multiple instances of the same geometry faster by reducing the overhead of drawing multiple copies of the save vertex buffer.
http://www.gamerendering.com/2008/10/21/instancing/
mesh - collection of vertices, faces and edges that defines the shape of an object. http://en.wikipedia.org/wiki/Polygon_mesh
OpenGl's fixed pipeline does per-vertex shading. For per-pixel shading, shaders must be used.
Fragment-bound or raster-bound - characteristics of a piece of code that spends a significant amount of time rendering pixel data (textures or lighting). Lowering resolution increases performance.
dynamic mesh - collection of vertices that changes frequently during execution.
locally static mesh - certain sections of the mesh do not change during execution.
octree - a data strucure where each internal node has exactly eight children. http://en.wikipedia.org/wiki/Octree
voxel - basically, a 3D "pixel".
VBO (vertex buffer object) - buffer objects for storing vertices. Buffer object is memory allocated by OpenGL context.
Recommended batch size 500 - 2000 vertices (MS and nVidia, source: http://www.gamedev.net/topic/592146-one-big-dynamic-vbo-or-multiple-small-static-ones/)
STREAM_DRAW VBO static VBOs interleaved storage vertex arrays index arrays post-transform vertex cache
Translucency
When blending is enabled with glEnable(GL_BLEND), the color of the incoming (source) pixel is determined using the color of the pixel in the color buffer (destination) and a factor using the formula above for (R, G, B, a):
(Rs Sr + Rd Dr, Gs Sg + Gd Dg, Bs Sb + Bd Db, As Sa + Ad Da)
where
R, G, B - red, green and blue color components
S - source blend factor
D - destination blend factor
s - source
d - destination
Subscript s - source
Subscript d - destination
Uppercase S - factor
The function glBlendFunc() is used to specify how the blend factors are
calculated. A typical combination for translucency is
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
The call produces the following equation to calculate the incoming pixel colors:
(Rs As + Rd (1 - As), Gs As + Gd (1 - As), Bs As + Bd (1 - As), As As + Ad (1 - As))
Translucent objects should be drawn with the depth buffer disabled and in
reverse depth order. If the depth buffer is not disabled with
glDepthMask(GL_FALSE), even translucent fragments will prevent the fragments
behind them from being drawn. For objects not drawn in reverse depth order
(farthest from the camera first), the blending will not be correct. Some
fragments might end up blended only with the background color; others might be
blended with a few of the fragments behind them, but not all.