SphericalMapping和CubeMapping之间的区别在于OpenGL中的环境反射?

时间:2012-07-26 09:37:42

标签: opengl geometry glsl shader

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

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

我基本上找到了两种方法,一种叫做SphericalMapping,另一种叫做CubeMapping。

它们在着色器代码中有所不同,但实际上并不了解它们之间的区别。

显然,对于立方体贴图着色器,我有6个图像打印在立方体上,片段着色器看起来需要正确的像素,而对于我的Spheric贴图着色器,单个图像使用照片修饰软件扭曲或通过拍摄镜面反射球的照片。

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

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

在您看来,两者中最好的两个是什么,特别是对于头部跟踪的实时模拟?

1 个答案:

答案 0 :(得分:1)

Spheremaps通常用于小型,低质量的产品。

  

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

我们在这里讨论计算机图形;没有真正的相机,也没有真人。尝试使用imagegoogling“spheremap”,你不会在图片中看到任何人。

  

采样不均匀

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

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