球形环境映射之angular与latlong格式互换

时间:2023-12-23 18:15:31

这么做只是纯好奇,因为这种格式互换在实际中是没有意义的,下面映射方式互换的贴图说明了一切。

刚开始打算使用matlab进行贴图映射方式的转换,但许久不用很是生疏,而且生成图片要考虑很多事情,尤其是生成angular格式贴图,遂作罢。

使用renderman生成贴图倒是容易的很,这种渲染电影的高端工具做这种小的测试竟然也得心应手。也可能是平时用的比较多的缘故,但至少有一点不需要担心,那就是生成的图片绝对平滑,不用担心走样之类,无需手动滤波。

其中遇到了一个小插曲,求反射方向时,众所周知的公式是I-2(I.N)N,其中I是入射方向,一贯使用的都是单位向量,但是从公式可知I可以不单位化,但是N必须单位化。结果见图,sl很简单,从略。

原图(只是一张世界地图,并不是标准的latlong贴图,但我们认为它是)

球形环境映射之angular与latlong格式互换

转换成angular贴图:

球形环境映射之angular与latlong格式互换

再转回去(latlong贴图):

球形环境映射之angular与latlong格式互换

这种失真很形象的说明了,有损的压缩,解压后一些数据丢失了,越往两极压缩越厉害,失真越严重。这种失真是无可避免的。