资源下载链接:https://download.csdn.net/download/zhang1461376499/13192871
资源包含37中植被,玛雅,3dsmaxk, blender也可用,包括树木,草地,花卉,岩石,每种植被拥有mesh, 贴图,以及效果图。其中部分资源拥有现成的材质。
用到的资源如下:两张纹理,两张法线贴图
材质表达式如下:(可以加上金属度和粗糙度,效果会更好)
TextureSample(材质节点 类型:Material Sample): 对纹理进行采样,输出纹理的通道的5种组合
Multiply(材质节点 乘法): 此节点会自动适配传入的参数,如果传入两个矢量 就是执行矢量的运算, 如果是标量就普通的代数乘法计算。此材质图中,使用乘法的原因是美术软件制作花的时候本来就使用了两张纹理叠加,其实直接一张纹理也能做出来,只是效果不太逼真。
需要说明一点就是,两张纹理采样后进行乘法,会变得比乘法之前的任何一张纹理都要更暗,因为纹理采样后的通道值的范围是(0-1), 两个小于1的小数相乘后得到的值会比两个乘数更小。
如果是用加法节点(Add) 则加之后的颜色会变得更白,甚至会出现之前不同的颜色区域全部变得一样的白,因为加法会导致结果大于1,而采样器最大只能取1,所以大于1的部分被舍掉按1处理。
SimpleGrassWind(材质节点 类型:Material Function):用于模拟草被风吹动的效果, 参数分别是:
属性 | 类型 | 描述 | 用途 |
WindIntensity | 标量S | 风的密度 | 控制风影响网格的程度。值越大植被摇晃的频率就越高。 |
WindWeight | 标量S | 风的强度 | 这是一个灰阶贴图,用于控制网格顶点对风产生反应的程度。值越大,摇晃的幅度就越大。 |
WindSpeed | 标量S | 风的速度 | 控制风速。值越大,偏移越厉害 |
AdditionalWPO | 矢量V3 | 需要偏移的参数 | 世界位置偏移网络或函数, 直接把其中一张纹理传入该参数就行了。 |
输出:世界偏移位置(World Postion Offset)
效果:
为了使风吹更加逼真,植物的根部就不应该晃动,所以这里引入一个渐变处理。将SimpleGrassWind节点输出的结果做如下计算
result = result * ((1- uv.v) ^ power)
解析:LinearGradient 线性渐变节点输出纹理坐标的U和V坐标。晃动从上到下渐变只与 V 坐标有关,又因为UV坐标的原点在左上角。所以从植物的枝叶到根部的V坐标是越来越大,是增函数,则 1-x 就是减函数。power是幂计算让函数越陡峭,晃动衰减越快。
这样计算出来的植物晃动幅度从顶到底(根部)越来越小,更加逼真。
讨论请加 qq群:657935453
学习请关注 微信公众号: