近期热门
粉丝13
关注 2
获赞 23
常用的写实游戏的shader的连法和优化

[教程] 常用的写实游戏的shader的连法和优化

[复制链接]
9449 39 23 197 5年前 举报
本帖最后由 jiangqiong 于 2019-1-29 23:20 编辑

应大伙的交流欲望 新设置了个群977644160。咱可以群里讨论
憋了好久,今天终于有时间来和大伙聊聊shaderforge在游戏中的运用和优化的问题。废话不多说直接上图。
sf_shader_blend_uv_diplament_1272019.png
哎,看着有些头晕。先说说有什么作用。
material.png

这套材质用有 一次流动、循环流动、置换、mask、depth 、disslove、模型虚边等等功能,基本上瞒足了我们常见的效果。看到这很多会觉得你shader 肯定很耗程序大佬肯定不会给用的.回头我一一给大伙解答。先看看这些上面的功能怎么用。
1、这个shader上面用了hdr颜色。这个呢用新PostProcessing-2不开只要颜色值超过1,都是起作用的。
2、Desaturate 去色 数值0-1(使用一些带颜色的贴图,可以做出很多不一样的效果)3、conster (主纹理贴图的对比度,)
4、Displacement 置换贴图 (我去了rg通道两张图,这个我学习的是ue4的用法,扰动效果比只用一张图稍微好些。
    Displacement_x_intensity,x扰动强度
    Displacement_y_intensity,y扰动强度
    Dis_x_time, x 扰动速度
    Dis_y_time, y 扰动速度
我把x、y 的强度和扰动速度分开了。这个是为了调试不同的效果,大伙自己尝试下便知道它的好处。)
5、For or ones
    勾上是MainTex一次性流程,勾去掉是循环留在。需要通过custom  vertex steams添加custom1,注zw分别对应x轴y轴。
6、mask_x_speed  mask,x轴流动速度,mask_y_speed  mask,y轴流动速度。(这么做的目的是为了可以在实际制作的时候丰富动态)
7、r or alpha  
     勾上选择的是r通道作为alpha作为main tex通道, 去掉勾选用maintexalpha做为通道。
8、Depth 模型和场景融合的深度
9、Alpha_Intensity alpha的强度
10、Brightness 主纹理题图的强度(9和10 强度都会影响发光亮度,强烈建议大家用这个两个控制材质的亮度。hdr颜色上面的强度建议不要使用保持默认,方便后面boolm不开的时候调整效果)
11、Disslove 溶解启用第二套uv。注:勾上是勾开启溶解。选用的题图是扰动的贴图的r通道。需要通过custom  vertex steams添加custom2、uv2,注z为溶解强度(一般给曲线),
w为溶解的初始值大小一般给常数。通常使用的数值0.05—0.5之前。
12、shader_blend_refration_diplament 带折射的材质 blend模式 。(使用的时候如果在模型上,正反面会互相穿插,程序已经在想办法解决。这个shader使用的时候要特别注意材质比较复杂,带有refraction会比较消耗新能,经少用尽量少用。)这个用shader forge 本身的折射做的 refration,我们在项目里面前面的问题都已经得到解决。程序用我的shader 按照ue4的折射方式重新写了一个shader。这样我们就再也不用羡慕ue4里面 流动的东西上面有折射的效果了。
13、particles or mesh 这个为了在不是粒子系统上面做的。打上勾,不在粒子系统上面uv也是正常的。
14、Mesh_depth  勾上Mesh_depth_Intensity起作用。 这个是模型虚边,做这个的原因是在unity里面模型很容易出现折边,用这个可以决绝这个问题。还有一些特殊效果上面也需要用到这个。
不方便放视频,有些在项目里面使用了。但是截图可以放几张图 效果01.png 效果02.png 效果03.png 效果04.png 效果05.png 效果06.png 效果07.png

下面开始正题了。主要说说怎么让程序大佬放过我们,达到新能上的标准问题。
我们特效材质并不复杂,我总结了一些大概有几方面
1、贴图总数和采样次数 。 这个问过很多程序的大佬大部分都有公认,特效材质最贴图数量不要超过三张。这个没有办法,所以做特效材质尽量还是忍忍吧。
所以我在做贴图的时候很多贴图都合并起来了 例如置换的两张图合并成一张图、再例如 溶解图也用的是置换贴图的r通道。通过类似的合并贴图的方法,把一些能合并的题图合并成一张来介绍贴图的总量。 贴图合并.png
采样次数的问题,用shaderforge的这种工具去连。一定不要各个通道随便到处连。一张图采样个10次8次 估计程序大佬也不会给我们使用了。 连的时候尽量做模板化,一个功能一个功能的加。
2、计算量的问题。
shaderforge里面默认的节点精度用的是float。其实我们正常是用不到这样的精度的。打开设置面便勾选, 精度.png 在shaderforge里面就可以看到精度的问题了。 TIM图片20190127221648.png
有三种 float half  fixed 。
half是float的一半计算量。
fixed是half的一半。
那怎么选着呢time panner  这些流动的东西一般用float
color tex value  slider这些都用fixed。
这个大伙可以问问身边的Ta,他们对怎么使用那种精度会比我了解的清楚些。
3、变体数量。shaderforge连的特效shader基本上可以优化到变体数量为1.
特效一般是不受光照的。所以一般选择 单光源。 lighting.png   勾掉之后你会发现你的变体数量会少很多。
pass通道.png
特效材质尽量不要出现很多个pass通道。 回退也不要有吧会多出来变体,看情况而定在程序大佬允许的情况下可以有回退。
好了到这里你应该能看到你的变体数量是8个。
继续优化
//#pragma multi_compile_fwdbase是unity内置的用于前向渲染的关键字快捷方式,它包含了前向渲染光照计算需要的大多数关键字,因此会被shader带来很多的变体。
//#pragma multi_compile_fog 这个是受unity的雾影响,一般做手游是不会用后期里面的雾的太耗。所以放心去掉吧!
至此特效优化完成。
你会发现只有一个pass 计算量也不大 贴图总数也控制了  变体数量只有1。
小伙伴们可能在前面没有看到折射的连法这里一起贴出来
折射.png

下期在和大家探讨一些,其他的shader的连法。有问题的同学可以加我qq聊356813979.



灯光1.png

Shader.rar 已购买

15.48 KB 售价: 10 张CG券
下载
23
点赞
0
打赏
197
添加到收藏夹

4

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论39
您需要登录后才可以回帖 登录 | 立即注册

感谢大佬分享>_<
1年前
回复

使用道具 举报

LOOK下
1年前
回复

使用道具 举报

评论区一堆印度电工(每一个好的特效师都是一个合格的印度电工)
3年前
回复

使用道具 举报

曹容 发表于 2021-1-12 17:07
大佬,文件损坏,浪费10个卷

这个问平台了,上传了很久了。
3年前
回复

使用道具 举报

大佬,文件损坏,浪费10个卷
3年前
回复

使用道具 举报

大佬 !!感谢分享经验
4年前
回复

使用道具 举报

谢谢楼主分享
4年前
回复

使用道具 举报

感谢大佬的分享~
5年前
回复

使用道具 举报

干货
5年前
回复

使用道具 举报

        厉害了,我的哥!
5年前
回复

使用道具 举报

数据加载中....
没有更多评论了