Jump to content

Geometry instancing: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
added brief list of cards
Importing Wikidata short description: "Technique used in realtime rendering"
 
(50 intermediate revisions by 40 users not shown)
Line 1: Line 1:
{{Short description|Technique used in realtime rendering}}
{{Orphan|September 2006}}
In realtime computer graphics, '''geometry instancing''' refers to the practice of [[Rendering (computer graphics)|rendering]] multiple copies of the same [[polygon mesh|mesh]] 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 [[Pose (computer vision)|pose]]) changed in order to reduce the appearance of repetition.
In [[real-time computer graphics]], '''geometry instancing''' is the practice of [[Rendering (computer graphics)|rendering]] multiple copies of the same [[polygon mesh|mesh]] 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]] pose) changed in order to reduce the appearance of repetition.


== Hardware Instancing ==
== API support ==


Starting in [[Direct3D]] version 9, [[Microsoft]] included support for hardware-based 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.
Starting in [[Direct3D]] version 9, [[Microsoft]] 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]] core in versions 3.1 and up but may be accessed in some earlier implementations using the <code>EXT_draw_instanced</code> extension.


== In offline rendering ==
== Geometry Instancing in Offline Rendering ==


Geometry instancing in [[Maya (software)|Maya]] usually involves mapping a pre-animated object or geometry to particles, which can then be rendered in any renderer. Geometry instancing in Maya is useful for creating things like swarms of bees or wasps, in which each one can be detailed, but still behaves in a realisitic way that does not have to be determined by the animator. Because instancing geometry in Maya or any other 3D package only references the original object, file sizes are kept very small and changing the original changes all of the instances.
Geometry instancing in [[Houdini (software)|Houdini]], [[Maya (software)|Maya]] or other [[3D computer graphics software|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 [[Shading|material]] 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 (software)|Houdini]], 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 ==


== Video cards that support geometry instancing ==
GeForce 6000 and up
ATI 9600 and up
ATI X800 XL, ATI X1300, or greater
nVidia GeForce 6800 or greater


* [[GeForce]] 6000 and up (NV40 GPU or later)
* ATI [[Radeon]] 9500 and up (R300 GPU or later).
* PowerVR [[PowerVR#Series5 (SGX)|SGX535]] and up (found in Apple [[iPhone 3GS]] and later)<ref name="Apple_Developer_OpenGL_ES_Graphics">{{cite web
|url=https://developer.apple.com/library/ios/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/OpenGLESPlatforms/OpenGLESPlatforms.html
|title= iOS Device Compatibility Reference: OpenGL ES Graphics
|date=May 21, 2014
|url-status=dead
|archiveurl=https://web.archive.org/web/20140521144950/https://developer.apple.com/library/ios/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/OpenGLESPlatforms/OpenGLESPlatforms.html
|archivedate=May 21, 2014 }}</ref>


==References==
{{compu-graphics-stub}}
{{Reflist}}
== External links ==
* [http://www.opengl.org/registry/specs/EXT/draw_instanced.txt EXT_draw_instanced documentation]
* [http://msdn.microsoft.com/en-us/library/bb173349(VS.85).aspx A quick overview on D3D9 instancing on MSDN]
* [https://www.khronos.org/registry/vulkan/specs/1.0/html/chap21.html#VkVertexInputRate VkVertexInputRate specifies vertex or instance rate]

{{Compu-graphics-stub}}
[[Category:3D computer graphics]]

Latest revision as of 00:07, 13 March 2024

In real-time computer graphics, geometry instancing is the practice of rendering multiple copies of the same mesh 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 pose) changed in order to reduce the appearance of repetition.

API support

[edit]

Starting in Direct3D version 9, Microsoft 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 core in versions 3.1 and up but may be accessed in some earlier implementations using the EXT_draw_instanced extension.

In offline rendering

[edit]

Geometry instancing in Houdini, Maya 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 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, 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

[edit]

References

[edit]
  1. ^ "iOS Device Compatibility Reference: OpenGL ES Graphics". May 21, 2014. Archived from the original on May 21, 2014.
[edit]