制作LightMap的重要原则.docx
《制作LightMap的重要原则.docx》由会员分享,可在线阅读,更多相关《制作LightMap的重要原则.docx(12页珍藏版)》请在冰豆网上搜索。
制作LightMap的重要原则
制作LightMap的重要原则
什么是LightMap
灯光贴图是为不可移动的或者静态的物体和bsp制作的
默认情况下在UDK中,灯光贴图是启用的,当静态物体没有第二套UV时,构建灯光后就会有“invalidLightMapCoordinateIndex”(错误的灯光贴图UV编号)提示。
所有灯光贴图都是在UDK地图文件里存储的。
除了灯光贴图,还有两种为静态物体设置照明的方法,顶点光和动态光照,但是这两种方法需要省着用,记住场景中的大部分物体都要使用灯光贴图。
顶点光使用顶点信息来为物体照明,它更加密集,并且需要物体的合理细分来接受光照和阴影。
动态光照是实时渲染的,所以非常耗资源。
灯光贴图能产生更好的灯光和阴影信息,并且不需要物体的细分或者昂贵的实时渲染。
灯光贴图能减少CPU和GPU的负担。
18项为UDK制作灯光贴图的原则
1.灯光贴图是自动设置好的
静态物体在UDK中时自动使用灯光贴图的,如果物体没有合适的关照信息,说明你没有合理的设置物体的第二套UV。
你可以再UDK中自动生成第二套UV,但是最好是在3D软件中设置好它。
在UDK的内容浏览器中打开静态物体,可以再左上角看到UV信息。
|
只有一套UV的物体:
两套UV的物体:
2.第二套UV
关于如何在Maya中设置第二套UV,略过
3.灯光贴图不能重叠
第二套UV中有重叠的情况:
构建灯光贴图后就会出现以下提示:
渲染后的错误效果:
4.0—1UV空间
灯光贴图的UV必须在0-1uv空间里。
5.不要使用UV自动展开
自动展开会浪费很多的UV空间,并且不会考虑uv的边界(padding)。
尽管有时候自动展开是有用的,但是最好是先自动展开,然后手动去焊接,留出UV间的边界空间。
6.边界和溢出:
UV块必须有边界空间
UV必须有一定的边界来防止光照/阴影的溢出。
2像素就不错,有时候还需要4像素。
你可以使用0-1UV空间的边缘,因为系统会自动为外围增加边界,但是在这个空间内部,就必须留出一定的UV边界。
下面是没有考虑UV边界的结果:
在UDK中的渲染结果:
具有2像素的边界的uv分布:
UDK中的效果:
通常你可以增加光照贴图的分辨率来“解决”这个问题,但是这样会增加内存的负担,所以这样只是在另外一个领域增加了一个新的问题,而不是真正解决了问题。
7.切分和连接UV块
在需要连续的灯光处焊接UV;
在需要不同的灯光处切分UV,例如转角或者物体的顶部。
连续的面,朝向同一方向的面在uv里都是连接在一起的,如图:
在面转角的地方,需要把uv断开,以防止灯光/阴影溢出,如图位置需要断开UV:
8.UV灯光贴图坐标序号(之前已经说过,略过)
第一套UV=Diffuse的UV
第二套UV=LightMap的UV
9.在UDK中使用自动展开(略过)
10.灯光贴图分辨率
灯光贴图的分辨率决定了灯光和阴影的精确度,就像普通的贴图分辨率一样,它也是用像素来定义的。
在UDK中,默认的灯光贴图分辨率是32。
即32x32像素。
你可以增加或减小它,但必须是2的冥,例如2,4,8,16,32…..1024等。
需要注意的是,灯光贴图分辨率一般都比Diffuse贴图分辨率小很多。
一般建议维持在8-128的范围。
可以在内容浏览器中针对静态物体设置灯光贴图分辨率,如图:
也可以在场景中针对每一个物体实例设置灯光贴图分辨率,如图:
11.接缝(略去)
12.AO
可以在世界属性里关闭AO效果。
其余略去。
13.落在网格上
制作lightmap的UV时,最理想的效果就是确定uv边缘落在网格上(注:
这个网格指的是根据lightmap的分辨率来确定的网格,即,如果lightmap分辨率是32,那么把uv空间横竖都分为32格,这些格子就是这里所说的“网格”)。
没有落在网格上的UV:
产生的接缝:
不是说所有的uv都必须这样做,只是当发现一些uv接缝时,可以看一下是不是可以通过这个方式解决。
14——18意义不大,略去