我有大量的恒星(颗粒),几乎没有散落在太空中。我需要以某种方式可视化这个空间,包括导航。显然,我不能只用粒子的所有真实空间坐标来提供OpenGL,看起来我需要执行严格的处理并想出一些易于渲染的东西,比如纹理或OpenGL友好的少量点坐标。 所以,问题是,是否有解决此任务的常用技术,如果没有 - 你会怎么做?
答案 0 :(得分:6)
您可以非常轻松地解决深度缓冲区精度限制问题。你只需要将所有星星分成不同的距离。我不确定是否有名字,我刚看到它在几个地方描述
假设您的深度缓冲/投影矩阵在出现精度问题之前可以达到10,000,但是你的星星远远超过27,000。您可以根据它们离开的距离对星星进行分类。第一个垃圾箱中有0到10,000个星球,第二个垃圾箱中有10,000到20,000个等等,然后开始绘制它们:
由于您知道10-20箱中的所有星星都位于20-30箱中的所有星星前面,因此您可以安全地清除深度缓冲区,从而可以绕过深度缓冲区的精度限制,尽可能远地画出物品
答案 1 :(得分:0)
您可以使用分层天空立方体的方法,在其上渲染星星和物体。如果事情相对接近,你可以在立方体的“matroyshka”排列上使用视差滚动方法。