有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java OpenGL超大网格裁剪

对于我的工作,我最近不得不进入OpenGL 3d渲染,我承认我对这个话题很陌生

在不涉及太多细节的情况下,我必须处理大量数据(顶点),从中我需要绘制一个形状。基本上,想象一个三维空间中形状非常奇怪的平面。此形状正在动态添加到中。想象一辆汽车在飞机上行驶,并在它后面画出它的轨迹——但不只是一条简单的轨迹,而是有洞、废弃的部分等,它每秒生成一个新的部分,持续数小时

所以,很明显,你最终得到的是很多顶点,它们确实得到了一些优化,但还不够。数以百万计。 显然,我不能把它作为vertex VBO输入嵌入式系统的GPU。 所以我一直在读关于剔除和剪裁的书,据我所知,我只需要显示这个数组的可见三角形,而不需要渲染其他所有内容

现在,我该如何正确地做到这一点

最简单的蛮力解决方案是遍历所有三角形,如果它们位于平截头体之外,就不要绘制它们。生成一个缓冲区,将我绘制的内容传递给GPU

我的一个想法是将世界空间划分为正方形,一种块,基本上在它们之间分割“轨迹”网格。所以每个方块都会保存它的轨迹数据,然后我可能会使用截头体剔除来决定哪些方块要渲染,哪些方块要跳过。 但我不认为这是一个很好的解决方案。我还读到,你应该尽可能减少GL函数调用的次数,调用数百个方块似乎并不太好

所以我决定向那些比我更了解这个问题的人寻求建议。遗憾的是,我没有太多的学习时间——我需要投入其中。 如果有人能给我一些指导性的建议,我将不胜感激


共 (0) 个答案