目录
一、说明
转换反馈是捕获由顶点处理步骤生成的基元的过程,并将这些基元中的数据记录到缓冲区对象中。这允许保留对象的转换后渲染状态,并多次重新提交此数据。
注意:将提到处理多个流输出的各种函数。对多个流的反馈需要访问 OpenGL 4.0 或 ARB_transform_feedback3 和 ARB_gpu_shader5。因此,如果您无法做到这一点,请忽略任何此类讨论。
二、着色器设置
为了捕获基元,包含最终顶点处理着色器阶段的程序必须与许多参数链接。这些参数必须在链接程序之前设置,而不是在链接程序之后设置。因此,如果要使用 glCreateShaderProgram,则必须使用 in-shader 规范 API,该 API 仅适用于 OpenGL 4.4 或 ARB_enhanced_layouts。
平台问题 (NVIDIA):NV_transform_feedback允许在链接后动态设置这些参数。
唯一对转换反馈很重要的程序对象是提供最后一个顶点处理着色器阶段的程序对象。这些设置可以位于单独程序中的任何其他程序上,但只会使用最后一个活动的“顶点处理”着色器阶段上的设置。