CryEngine3纹理创建指南
CryENGINE的纹理通常在Adobe Photoshop中使用CryTIF插件进行创建,并保存成为TIF的文件格式。然而TIF图片并不能直接应用到游戏当中,而是用Resource Compiler转化成为更优化的格式(通常是dds)。并非所有的纹理都使用相同的设置,例如NormalMap需要一种与DiffuseMap不同的压缩格式。由于这个原因,资源编译器在保存TIF文件时是基于用户的选择设置来转换的。
一般的准则
所有纹理必须是TIF格式并必须通过CryTIF插件保存,资源编译器会自动生成最后的DDS纹理。
对于从灰度的BumpMap 创建的NormalMap过程也要使用CryTif插件,这取保了正确的Normal的朝向。
引擎并不支持在加载阶段通过Bump向NormalMap的转换,这是做的原因是可以在预处理阶段与压缩阶段更有效率。
所有纹理必须是2的幂次方(例如 128*128 512*512 1024*1024等等)。
特殊纹理的预置转换
在Photoshop中的CryTIF插件中,美术人员可以为TIF指定合适的预置转换。资源编译器会自动根据不同来源TIF的内容、文件名、和预置设定自动匹配某种设置。当没有为TIF文件指定特殊的设置,资源编译器会按下列方式操作:
后缀名为_ddn或者_bump的TIF文件会生成不压缩的RGBA或者U8V8的NormalMap的DDS文件,并把高度信息存到透明通道里。
如果TIF文件具有Alpha通道(如alpha通道并不是完全白色),他会产生DXT3格式的压缩的DDS文件。
如果TIF文件没有Alpha通道将会生成DXT1压缩格式的DDS文件。
如果TIF文件的转换时预置的,资源编译器会尝试匹配目标格式为指定的预置。
在SandBox中应用纹理
只适用于将NormalMap纹理应用于材质编辑器中BumpMap的选项槽中
当需要产生重大视觉差别的时候,使用一个单独的SpecularMap。对于SpecularMap使用的例子是如果SpecularMap是灰度色或者不需要非常好的视觉效果时,使用Diffuse Alpha,
(材质编辑器中的Diffuse alpha Shader的生成选项中的Gloss).这样可以节省纹理内存。CPU的性能,和纹理设置上的开销。并且Shader可以变得很简单,可以少读取一个纹理。另外一个例子是在材质的不同贴图选项槽中设置相同的纹理将意味着两个不同的纹理读取和着色工作,这是因为它最然相同,但不意味着可以节省其他方面的开销。一般说来,在材质编辑器里设置的纹理越少越好。使用尽量少的纹理来完成工作。
纹理制作的技巧
1. 重用NormalMap和SpecularMap,可以最大量的节省纹理内存。特别是NormalMap,因为它在内存上的开销是正常贴图的2倍。例如,如果在一个地区采用地砖,砖墙,混凝土墙等纹理。创建纹理时让他们使用相同的NormalMap和SpecularMap是一个非常好的选择。

两种不同的地表纹理使用同样的NormalMap
2. 合并纹理,规模小的通用组件,如零件,栏杆等可以合并成一个纹理,这样可以节省材质的drawcall以及纹理空间。

一个简单但的房子由墙壁纹理,屋顶纹理及所有窗户、门等细节纹理组成

3. 纹理的一致性,保证纹理上的点没有比他们出现在屏幕上的时候大的点。一个高层建筑的屋顶纹理无论是角色还是摄像机多么接近看上去都很小。而地面不使用NormalMap和SpecularMap会节省很多性能和纹理开销。
4. 提高纹理质量,为了弥补纹理内存和数量上开销带来的质量上的损失,可以通过下面的技巧来改善纹理质量。使用贴花。使用污染的或者染色的贴花是一种简单的打破造成纹理重复的方法。

下图是一个平铺的木锯厂木地板纹理,Alpha贴图中的木屑贴花打破了地板与边角处的明显边界。

下面是一个墙壁上使用贴花的例子,残破的贴花放置在了农场建筑与地表的连接处。

5. 使用顶点颜色来建立各种深度和色彩的变化。顶点的绘制和预先烘培的顶点灯光是一种即直接又廉价的增加模型深度的方法,这样可以使他们看起来更有趣,在模型上添加阴影或者小的色彩上的变化使用一些小的平铺类型的纹理
6. 使用一个单色调或者灰度纹理替代5种色彩可以节省纹理内存,上边的农舍原本是白色粉刷的纹理,这是使用颜色的调整选项把它改编成褐色。更多的东西都可以使用这个技术,比如汽车的涂料,围栏,油桶,箱子瓶子,咖啡杯等小道具。
下面是共享相同灰度纹理的汽车画面。

浙公网安备 33010602011771号