我有一个openGL(实际上是JOGL,但这里适用相同的概念)app,我有一个场景,在每个渲染过程中呈现大约10k个三角形.必须在每次渲染时计算三角形的比例和角度,因为三角形需要保持相对于摄像机位置的恒定大小和旋转.
我尝试使用显示列表,然后在每次调用之前进行缩放/旋转glCallList.这是有效的,但它使系统爬行.我正在研究使用顶点缓冲区,但我不确定这是否适合这样做,因为我需要在每次渲染时旋转/缩放.
有人可以帮助我指出在每个场景中渲染这么多三角形的正确方向吗?
编辑 - 这为问题提供了一些额外的背景.
该应用程序是一个地图应用程序,显示了世界的三维视图.需要在指向相对于罗盘的方向的表面上绘制某些形状,即30度.用户可以旋转三维视图,但形状必须保持平坦在地球表面上,并指向指定的方向.
谢谢,杰夫
具有GL_DYNAMIC_DRAW的顶点缓冲区和具有GL_STATIC_DRAW的Indice缓冲区将是您在简单性方面可以做的最好的.
如果可以访问着色器(GLSL或HSL),请使用带有GL_STATIC_DRAW的顶点缓冲区和带有GL_STATIC_DRAW的Indice缓冲区,并计算顶点着色器中的比例和旋转.这样你可以将一些工作转储到GPU上.(如果工作开始时CPU很重)
也许在手前做一些截头剔除?遮挡剔除?加速应用程序的最佳方法是减少渲染的三角形数量.
甚至可能使用一些线程.一个要渲染的线程,另一个用于计算比例和角度.
| 归档时间: | 
 | 
| 查看次数: | 814 次 | 
| 最近记录: |