材质说明
命名规则
- 材质创建后必须给一个有明确意义的名称(例如树木/玻璃/金属),以便于在编辑器材质列表中选择;材质可以用中文命名;
- 不同的材质严禁重名。同一类型的材质可以通过加编号或使用位置区分,例如树木01,玻璃窗户02,玻璃隔断03等;
- 注意尽量保证在同一个模型前后版本时材质命名的一致性。
材质类型
用于 Babylon.js 导出的模型,可使用 3ds Max 标准材质或物理材质。 标准材质支持的纹理类型:
物理材质支持的纹理类型:
纹理格式
Babylon.js 支持的纹理格式为 jpg 和 png,另外也支bmp、gif、tga、tif、dds格式,但这些格式会被自动转换为 jpg 和 png。纹理可以为中文名,但不要有特殊符号或空格。
纹理尺寸
纹理尺寸宽和高最好是2的整数次幂,例如1024x1024或1024x512等。
注意事项
不要在材质的纹理属性中修改纹理坐标重复次数等;应该在模型的 UVW Map 或 Unwrap UVW 修改器中修改。
不要修改材质面板里这些参数
性能优化
由于纹理是占用显存最多的资源,所以对纹理的优化非常重要。以下是纹理优化的一些参考:
- 根据要贴图的模型的尺寸,尽量减小纹理尺寸。模型中尺寸小的部件用小尺寸纹理。一般情况下贴图大小不要超过2048x2048。
- 尽量使用可重复的小尺寸无缝纹理来表现表面上比较均匀一致的纹路。
- 对于中、低细节级的模型,尽量将模型的同一类材质的纹理合并为单张纹理,减小模型整体使用的纹理数量和子材质数量。这样十分有利于渲染效率的提升。注意在排布UV坐标时尽量减小空隙,充分利用纹理像素。
- 对于建筑来说,一栋普通的楼房材质数量最好不要超过30个,对于一片小区来说,由于很多材质都可以重复使用,总材质数最好不要超过100个。对于整个场景,总材质数量最好不要超过200个。
- 如果使用 3ds Max 自动展开 UV 烘焙纹理,则需要注意调整 UV 分片间隙以达到纹理有效面积的最大化。
如上图所示,自动展开 UV 时的间隔参数。此参数为间隔距离占整个纹理的百分比。如果纹理尺寸是1024x1024,则按照图中所示设置,间隔距离像素数=1024x0.004=4.096像素 下表为一些纹理尺寸的间隔设置标准数值:
纹理边长 | 间隔距离参数 |
---|---|
4096 | 0.001 |
2048 | 0.002 |
1024 | 0.004 |
512 | 0.008 |