1

我正在使用 OpenGL+GLSL 中的环境反射。

我想以最准确的方式反映物体周围的环境。

我发现基本上有两种方法可以做到这一点,一种称为 SphericalMapping,另一种是 CubeMapping。

它们在着色器代码上有所不同,但真的不明白它们之间有什么区别。

显然,对于立方体贴图着色器,我在一个立方体上打印了 6 张图像,片段着色器需要这些图像才能看到正确的像素,而对于我的球面贴图着色器,我有一张使用照片修饰软件扭曲或通过拍照获得的图像镜面反射球体。

球面映射的缺点似乎是相机(以及持有它的人)总是显示在图像中并且采样不均匀。这个最新的声明是什么意思?球面映射中的“黑洞”效应是什么意思?

我想找到这两种方法的差异和缺点的交互式演示,看起来立方体贴图是最好的,但不知道为什么。

在您看来,两者中哪一个最好,尤其是对于带有头部跟踪的实时模拟?

4

1 回答 1

1

Spheremaps 通常用于小型、低质量的东西。

球面映射的缺点似乎是相机(以及持有它的人)总是显示在图像中

我们在这里谈论计算机图形;没有真正的相机,也没有真正的人。尝试使用图像谷歌搜索“spheremap”,您不会在图片中看到任何人。

抽样不均匀

这意味着球体贴图的中心对于相对较小的区域有很多像素,而在边界附近,对于相对较大的区域,您只有很少的像素。

立方体贴图几乎总是更好:您可以在运行时轻松生成它们,对硬件进行采样更快,即使您有 6 个纹理而不是 1 个,您也可以使用较低的分辨率并仍然获得相同的质量。

于 2012-07-26T10:01:40.247 回答