Difference between revisions of "Transform Feedback"

From OpenGL.org
Jump to: navigation, search
(General outline.)
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox feature
+
{{stack
 +
|{{Infobox feature
 
| core = 3.0
 
| core = 3.0
| core_extension = [http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt ARB_transform_feedback2], [http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt ARB_transform_feedback3],
+
| core_extension = {{extref|transform_feedback2}},
[http://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt ARB_transform_feedback_instanced]
+
{{extref|transform_feedback3}},
| ext_extension = [http://www.opengl.org/registry/specs/EXT/transform_feedback.txt EXT_transform_feedback]
+
{{extref|transform_feedback_instanced}}
| vend_extension = [http://www.opengl.org/registry/specs/NV/transform_feedback.txt NV_transform_feedback]
+
| ext_extension = {{extref|transform_feedback|EXT}}
 +
| vend_extension = {{extref|transform_feedback|NV}}
 +
}}
 +
|{{pipeline float}}
 
}}
 
}}
  
 
'''Transform Feedback''' is the process of altering the rendering pipeline so that primitives processed by a [[Vertex Shader]] and optionally a [[Geometry Shader]] will be written to [[Buffer Objects|buffer objects]]. This allows one to preserve the post-transform rendering state of an object and resubmit this data multiple times.
 
'''Transform Feedback''' is the process of altering the rendering pipeline so that primitives processed by a [[Vertex Shader]] and optionally a [[Geometry Shader]] will be written to [[Buffer Objects|buffer objects]]. This allows one to preserve the post-transform rendering state of an object and resubmit this data multiple times.
 +
 +
== Overview ==
 +
 +
{{note|Mention will be made of various functions that deal with multiple stream output. Feedback into multiple streams requires access to OpenGL 4.0 or {{extref|transform_feedback3}} and {{extref|gpu_shader5}}. So if that is not available to you, ignore any such discussion.}}
 +
 +
== Shader setup ==
 +
 +
=== Advanced interleaving ===
 +
{{infobox feature
 +
| name = Advanced Feedback Interleaving
 +
| version = 4.0
 +
| core_extension = {{extref|transform_feedback3}}
 +
}}
 +
 +
=== Multi-stream output ===
 +
{{clear float}}
 +
{{infobox feature
 +
| name = Multi-Stream Output
 +
| version = 4.0
 +
| core_extension = {{extref|transform_feedback3}}
 +
}}
 +
 +
== Buffer binding ==
 +
 +
== Feedback process ==
 +
 +
== Feedback objects ==
 +
{{infobox feature
 +
| name = Transform Feedback Objects
 +
| core = 4.0
 +
| core_extension = {{extref|transform_feedback2}}
 +
}}
 +
 +
=== Feedback rendering ===
 +
 +
=== Feedback pausing and resuming ===
  
 
== Reference ==
 
== Reference ==

Revision as of 16:14, 16 October 2012

Transform Feedback
Core in version 4.5
Core since version 3.0
Core ARB extension

ARB_transform_feedback2, ARB_transform_feedback3,

ARB_transform_feedback_instanced
EXT extension EXT_transform_feedback
Vendor extension NV_transform_feedback

Transform Feedback is the process of altering the rendering pipeline so that primitives processed by a Vertex Shader and optionally a Geometry Shader will be written to buffer objects. This allows one to preserve the post-transform rendering state of an object and resubmit this data multiple times.

Overview

Note: Mention will be made of various functions that deal with multiple stream output. Feedback into multiple streams requires access to OpenGL 4.0 or ARB_transform_feedback3 and ARB_gpu_shader5. So if that is not available to you, ignore any such discussion.

Shader setup

Advanced interleaving

Advanced Feedback Interleaving
Core in version 4.0
Core ARB extension ARB_transform_feedback3

Multi-stream output


Multi-Stream Output
Core in version 4.0
Core ARB extension ARB_transform_feedback3

Buffer binding

Feedback process

Feedback objects

Transform Feedback Objects
Core in version 4.5
Core since version 4.0
Core ARB extension ARB_transform_feedback2

Feedback rendering

Feedback pausing and resuming

Reference