使用OpenGL渲染具有相同形状但坐标不同的两个图形元素的方式更有效(例如,一个对象是颠倒的)?
其他问题:是否有可能在着色器中创建一组点? (这些点将使用sin()
和cos()
函数计算)
答案 0 :(得分:1)
如果在第一种情况下你在OpenGL函数调用之间切换缓冲区,则可能两种解决方案都同样糟糕。如果你在一个缓冲区中持有两个形状并在一次调用中绘制所有形状,那么它将比解决方案2更快,但它需要两倍的内存,这也是不好的。
(你应该有一个缓冲区用于形状,另一个缓冲区用于转换)
通常,您应该使用尽可能少的OpenGL调用。
关于第二个问题:是的。例如,您可以使用硬编码数组或从gl_VertexID派生点坐标。