我需要最快的球体映射算法。就像布雷森纳姆的线条画一样。
类似于我在 Star Control 2(旋转行星)中看到的实现。
是否有任何已经发明和/或实施的技术?
我真的不想重新发明自行车。请帮忙...
问题描述。
我在 2D 表面上有一个必须出现球体的位置。球体(假设它是一个地球)必须具有精细的贴图纹理,并且必须具有自由缩放和旋转的能力。我想用地图或一些简单的坐标变换函数来实现它:球体的二维图像上的每个像素被定义为球体的圆柱地图上的多个像素。这使我能够对生成的图像进行抗锯齿处理。另外,如果结果图片上的一个像素对应于原始地图上的多个像素(例如,靠近球体的两极),我还考虑使用 mipmap 来实现映射。我内心深处觉得这可以通过一些简单的数学来实现。但所有这些想法都只是我的想法。
这个问题与这个问题有点相关:没有强烈扭曲的纹理球体 https://stackoverflow.com/questions/213147/textured-spheres-without-strong-distortion,但我的问题没有答案。
UPD:我想我没有硬件支持。我想要一个跨平台的解决方案。
进行此类映射的标准方法是立方体贴图:将球体投影到立方体的 6 个面上。现代显卡在硬件层面支持这种纹理,包括全纹理过滤;我相信 mipmap 也受支持。
另一种方法(硬件没有明确支持,但可以通过程序着色器以合理的性能实现)是抛物线映射,它将球体投影到两个相对的抛物线上(每个抛物线都映射到一个圆中间的一个圆)。方形纹理)。抛物线投影不是投影变换,因此您需要“手动”处理数学。
在这两种情况下,失真都受到严格限制。由于硬件支持,我推荐立方体贴图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)