OpenGL生成顶点属性

时间:2015-10-17 17:55:58

标签: opengl webgl

我想渲染几个在顶点着色器中动态计算的曲面。表面是通过存储在顶点属性缓冲区中的2d或3d网格中的顶点位移生成的。

然而,如果渲染非常大(数百万个顶点)和许多具有不同分辨率的表面,我需要生成很多"无聊的"填充内存的网格数据,如果生成大的新网格,可能会降低渲染速度,有时会中断渲染。

有没有办法动态生成简单的顶点属性网格,而无需存储它们?

1 个答案:

答案 0 :(得分:1)

您当然可以直接在顶点着色器中生成均匀网格。在相当现代的GL中,您可以完全使用无属性。着色器中的{{1}}输入将告诉您当前正在处理的顶点。通过一点整数除法和模数,您可以轻松地将其映射到2D网格。你还需要一些方法来描述位移。直观的方式似乎是使用2D纹理(并且您可以轻松地从网格中的坐标中获取texcoords),但有不同的选项。您甚至可以通过某种数学模型在程序上生成它。