Vegetation Shader
1. 概述
对于所有放置的植被物体,你需要为它的材质上指定Vegetation shader.
通电点击”go to object material”打开材质对话框,大多数情况下你需要使用子材质,为你的渲染几何体指定子材质。
2. 材质设置
选择着色程序和表面类型。
Shader: 选择Vegetation Shaer: 这是为植被特殊设置的。
Surface Type : 选择mat_canopy: 这个表面类型定义了碰撞时现实粒子和声音效果。
其他设置可以保持不变。
3. 透明设置
为每张纹理设置透明通道
Alpha Test :
始终保持在50。
不透明度可以启动alpha blend,但是对于植被开启阴影的话这太昂贵了
其他设置可以保持不变。
4. 光照设置
在这里调整Diffuse 和Specular颜色
Diffuse Color:
确保Diffuse Color始终是128 128 128
取保你的纹理使用了仅可能多的颜色校正(???)
Diffuse color 只用来变化。
Specular Color: 调整高光色
Glossiness: 调整你的镜面反射的的光泽度。
5. 纹理
指定你的Diffuse,normal和specmap等纹理
Diffuse Map: 漫反射贴图中应该包含RGB颜色和Alpha透明通道(用来做Alpha Test)
NormalMap(可选的): NormalMap中包含RGB颜色和透明通道(可选的,用来包含光泽贴图),如果纹理是这样设置,会得到更好的性能同时内存方面也可以得到优化。
SpecularMap(可选的):SpecularMap包含RGB颜色,而透明通道也卡伊用做光泽贴图来做性能和内存优化。
OpacityMap(可选的):RGB通道包含不透明色用来做背光使用。这个纹理可以比其他的纹理分辨率低(例如Diffuse是1024x1024,那么OpacityMap可设置为128x128。)同时Alpha通道也可以用作其他优化用途用。
6. Shader参数
Shader参数 |
描述 |
Back View Dependency |
这个改变依赖于背面的视距的,从观察点早一点或者晚一点开始 |
Back Diffuse Color |
定义叶子背面的颜色 |
Back Diffuse Color Scale |
定义了叶子背面的着色力度 |
Blend With Terrain Amount |
是否地形与植被色的混合 |
Detail Bending frequency |
定义了复杂混合(Wind)时的混合速度。始终取保这一设置符合场景里风的设置 |
Bending Edges amplitude |
定义了在复杂混合时红色部分的移动 |
Bending Branch amplitude |
定义了在复杂混合时蓝色部分的移动 |
Detail bending phase |
设置细节混合阶段 |
Back Shadow bias |
(只用在SH球形探测上)控制背面漫反射颜色的阴影度 |
Detail tiling U |
设置细节 Diffuse_bump的U值 |
Detail tiling V |
设置细节Diffuse_bump的V值 |
Detail bump scale |
设置细节凹凸的系数 |
Detail blend amount |
设置细节混合的系数 |
7. Shader Generation参数
这里定义了如果你的物体是草或者叶子或者依附于地形的生成参数。它是一个不同的Shading
Leaves: 这意味着这个Shader只用来渲染叶子,它使用一个非常复杂的Shading(昂贵),只在渲染叶子时激活它。
Grass: 这意味着这个Shader只用来渲染草,它会使用一个非常廉价的阴影,只在渲染草时激活它,它基本上关闭了SpecularMap和Normal Map的设定,只用DiffuseMap来着色。
Fit to Terrain: 这应用对大面积的草,让这些物体适应地形的表面。
8. 优化植被素材
这个技术是为了开发PC游戏时使用,但在主机游戏中应用优化的也很好。
最好的做法:
合并资源的非正方形贴图,让相同的组属于一个正方形纹理,调整资源的UV让他们匹配。
使用合并的纹理-这是Vegetation Shader的一个功能,用来降低纹理查找
这个shader在在指定的文件中查找Specular和Opacity通道,并且在两种特殊性框下使用:透明部分(Transparent)(叶子)和不透明部分(Opaque)(树干)
Transparent: Diffuse Texture Map下的Diffuse + Opacity通道的选项槽;Specular Texture Map下的Specular 通道选项槽。
Opaque: Diffuse Texture Map下的Diffuse + Spectualr通道的选项槽。
移除不需要的Detail bump map(删除叶子保存大的树干)
如果不需要不进行植被混合
移除交出的叶子(或者通过命令行关闭)
使用LODs细节
如果需要以最低层级的LOD创建X-Tree
为远距离的复杂对象创建梯代替平面
推荐的材质ID方式
2个 IDs针对于树(拥有树干树叶,)
1个IDs针对于没有树干的植物
推荐的纹理大小:
512x512
对于一些小型植被物体(少于300-400个多边形)。使用LOD可能看上去很糟糕。为它们提供单一的LOD并小心的调整精灵距离范围(sprite distance ratio)来获得好的质量和性能会更好。
当创建植被资源时,推荐经常检查他们是如何在Sandbox里是如何被放置的。通过调整Distance radio参数来使他们出现跳跃闪烁的情况最好。