HOME

TheInfoList



OR:

In
real-time computer graphics Real-time computer graphics or real-time rendering is the sub-field of computer graphics focused on producing and analyzing images in real time. The term can refer to anything from rendering an application's graphical user interface ( GUI) to ...
, geometry instancing is the practice of rendering multiple copies of the same
mesh Medical Subject Headings (MeSH) is a comprehensive controlled vocabulary for the purpose of indexing journal articles and books in the life sciences. It serves as a thesaurus of index terms that facilitates searching. Created and updated by th ...
in a scene at once. This technique is primarily used for objects such as trees, grass, or buildings which can be represented as repeated geometry without appearing unduly repetitive, but may also be used for characters. Although vertex data is duplicated across all instanced meshes, each instance may have other differentiating parameters (such as color, or
skeletal animation Skeletal animation or rigging is a technique in computer animation in which a character (or other articulated object) is represented in two parts: a polygonal or parametric mesh representation of the surface of the object, and a hierarchical set ...
pose) changed in order to reduce the appearance of repetition.


API support

Starting in
Direct3D Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware ...
version 9,
Microsoft Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
included support for geometry instancing. This method improves the potential runtime performance of rendering instanced geometry by explicitly allowing multiple copies of a mesh to be rendered sequentially by specifying the differentiating parameters for each in a separate stream. The same functionality is available in Vulkan core, and the
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
core in versions 3.1 and up but may be accessed in some earlier implementations using the EXT_draw_instanced extension.


In offline rendering

Geometry instancing in
Houdini Erik Weisz (March 24, 1874 – October 31, 1926), known professionally as Harry Houdini ( ), was a Hungarian-American escapologist, illusionist, and stunt performer noted for his escape acts. Houdini first attracted notice in vaudeville in ...
,
Maya Maya may refer to: Ethnic groups * Maya peoples, of southern Mexico and northern Central America ** Maya civilization, the historical civilization of the Maya peoples ** Mayan languages, the languages of the Maya peoples * Maya (East Africa), a p ...
or other 3D packages usually involves mapping a static or pre-animated object or geometry to particles or arbitrary points in space, which can then be rendered by almost any offline renderer. Geometry instancing in offline rendering is useful for creating things like swarms of insects, in which each one can be detailed, but still behaves in a realistic way that does not have to be determined by the animator. Most packages allow variation of the
material A material is a matter, substance or mixture of substances that constitutes an Physical object, object. Materials can be pure or impure, living or non-living matter. Materials can be classified on the basis of their physical property, physical ...
or material parameters on a per instance basis, which helps ensure that instances do not appear to be exact copies of each other. In
Houdini Erik Weisz (March 24, 1874 – October 31, 1926), known professionally as Harry Houdini ( ), was a Hungarian-American escapologist, illusionist, and stunt performer noted for his escape acts. Houdini first attracted notice in vaudeville in ...
, many object level attributes (e.g. such as scale) can also be varied on a per instance basis. Because instancing geometry in most 3D packages only references the original object, file sizes are kept very small and changing the original changes all of the instances. In many offline renderers, such as Pixar's PhotoRealistic RenderMan, instancing is achieved by using delayed load render procedurals to only load geometry when the bucket containing the instance is actually being rendered. This means that the geometry for all the instances does not have to be in memory at once.


Video cards that support geometry instancing

* GeForce 6000 and up (NV40 GPU or later) * ATI Radeon 9500 and up (R300 GPU or later). * PowerVR SGX535 and up (found in Apple iPhone 3GS and later)


References


External links


EXT_draw_instanced documentation

A quick overview on D3D9 instancing on MSDN


{{Compu-graphics-stub 3D computer graphics