(OpenGL 3.1 - 4.2) (GLSL) 高效的统一变量?

4
我计划通过修改各种统一变量(如位置、旋转等)来渲染单个模型的多个实例。
有没有更好的方法来渲染我想要渲染的每个实例,而不是修改统一变量?
1个回答

4

对于实例化渲染,您可以使用ARB_instanced_arrays扩展。使用此扩展,您可以将非均匀变量定义为标准顶点数组,并使用glVertexAttribDivisor函数来精细调整非均匀变量的更改时间。


1
顺便提一下,实例化数组已经成为OpenGL 3.3核心的一部分。即使在此之前,您仍然可以使用实例化渲染(自GL 3.0或3.1以来就是核心功能)。您只需要将每个实例的参数存储在统一数组/缓冲区中,并使用特殊着色器变量“gl_InstanceID”访问它们。 - Christian Rau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接