我有一个3D应用程序,我将地形渲染为一个高度图。离摄像机越远,分辨率就越低。除了为每个分辨率创建顶点缓冲区对象/显示列表之外,还有其他选择,还是有办法在最高分辨率下创建一个,并以某种方式告诉GPU仅使用一些数据?不同的分辨率需要多个VBO/DL吗?
1
A
回答
1
您需要实施详细程度(LOD)算法。具有彩色图片的算法的完整列表可以在here找到。我建议geomipmapping作为一个简单的起点。还有一些有趣的implementations,你可能可以重用或学习。
在大多数简单的实现中,通常有几个索引缓冲区用于不同细节层次和一个或多个地形不同部分的顶点缓冲区。除了镶嵌着色器之外,GPU本身不能降低几何图形的细节水平,镶嵌着色器也用于使用顶点纹理进行地形渲染(地形数据在纹理中而不在VBO中,粗糙度由不同的控制tesselation级别)。
0
你必须用本地位置坐标创建你的VBO。将此坐标发送给着色器,并将该变换应用于着色器上的世界坐标,并带有分辨率的特殊视图,您可以将其作为统一信息绑定到着色器。
还有一件事:“绝不要触摸现有的VBO!” ;-)
相关问题
- 1. nanosleep - 需要低分辨率
- 2. ArrayIndexOutOfBoundsException:需要分辨率
- 3. UIImage.size与像素分辨率不同吗?
- 4. 不同分辨率对不同分辨率
- 5. CSS不同的分辨率
- 6. 在不同的分辨率
- 7. 多分辨率/分辨率C++容器
- 8. 多分辨率
- 9. 不同分辨率(统一)
- 10. android分辨率需要帮助
- 11. 是否需要低分辨率图像
- 12. setContentView为多个分辨率
- 13. 在这个环节不同分辨率
- 14. SpriteKit iPhone/iPad的不同分辨率,需要相同的物理效果
- 15. 设置favicon时需要添加分辨率吗?
- 16. 需要针对Android多分辨率设计的建议
- 17. 多屏分辨率
- 18. 头不是在不同的分辨率
- 19. 不同屏幕分辨率的多个资产文件
- 20. 内部图像需要很多分辨率?
- 21. 不同的屏幕分辨率的CSS?
- 22. 不同的分辨率vs dpi
- 23. Android - canvas drawBitmap和不同的分辨率?
- 24. Android游戏的不同分辨率
- 25. 不同的屏幕分辨率在css
- 26. 不同分辨率的文字大小
- 27. 不同的绘制分辨率
- 28. 围绕在不同的分辨率
- 29. Android的布局不同分辨率
- 30. JasperReports的分辨率不同于72dpi
除了许多地形渲染算法动态地将数据传输到VBO,完全是这样(触摸现有的VBO)。这是必须的,特别是如果地形不适合GPU(全部细节)的内存。 –