0xAA55 发表于 2014-8-30 22:36:00

【3D】SphereMap的生成器

SphereMap用于简单的环境效果。典型的例子请看下面这张截图:

图中的这个茶壶看起来很有金属光泽。它把周围环境映照进去了。
不过别以为它真的把周围环境映照进去了。它的原理是将一张球面纹理(Sphere map)以一种特定的方式贴到物体表面的。
也就是物体表面的纹理坐标是这样计算的:

反射方向 =物体表面法线×(视线方向·物体表面法线)×2 + 视线方向;
反射方向.z +=1;
反射方向 = 取单位向量(反射方向);
纹理坐标.x = 反射方向.x
纹理坐标.y = 反射方向.y

其中的球面纹理是这个样子的:

知道了吧?它并没有真的把周围环境映照进去,而是用一张这样的图“蒙混过关”。不过这种方法优点是效率高、运算快、编写简单。
很多不需要特别在意细节的地方(比如某人物胸部一个闪闪发光的纽扣)就可以用这种方式来渲染,而不必使用动态的Cube map。
那么这样的球面图是怎么制作的呢?当然要借助工具。

我这个工具用法很简单,只需把上下左右前后六张图分别拖入左上角的各个框,就能看到效果。

然后看左下的那个滚动条,那是调整你要保存的文件的尺寸。最大支持16384x16384(768 MB的一张位图)
选好尺寸后点“导出为位图”就可以导出了。

看,我导出的这张Sphere map比DXSDK自带的好多了!不仅清楚,而且四个角落也被妥善处理了。
这个程序用VB编写,使用了OpenGL达到了显卡加速的效果,因此不出意外的话导出图像是很快的。
BIN:
SRC:

SANDO 发表于 2017-12-9 16:52:03

怎么下载啊

SANDO 发表于 2017-12-9 16:55:14

下载不到啊 没界面

JhonKkk 发表于 2019-12-15 11:33:06

看起来不错。!!

JhonKkk 发表于 2019-12-15 11:37:21

点击下载没反应好像..

JhonKkk 发表于 2019-12-15 11:59:52

好像可以下载了。。应该是需要等待一段时间..

Rex_Wang 发表于 2020-3-18 11:23:46

打开报错53,说找不到glew32vb.dll,但这个文件就在文件夹里
页: [1]
查看完整版本: 【3D】SphereMap的生成器