使用Amplify Shader Editor优化特效Shader
ASE相对于Shader Forge生成的代码更加干净, 用于制作特效的再合适不过,以下是使用ASE优化一个SF制作特效的经过:
## 分析美术用SF制作的Shader
懒得装SF, 直接分析代码可知这个溶解效果大致有以下部分组成:
- 使用Grab的扭曲
- 4个Step指令 + 3个lerp指令组成的溶解
- 时间变量控制的UV动画
- 2张贴图 + N个uniform变量
- 顶点色
沟通去掉部分功能
由于这个特效核心需求是实现刀光的溶解消失,因此可去掉一部分功能

使用Grab的扭曲(太快看不清楚)- 4个Step指令 + 3个lerp指令组成的溶解 (需要精简)
时间变量控制的UV动画(可以用动画组件做UV动画)- 2张贴图 + N个uniform变量 (酌情精简)
顶点色(有A通道,不需要)
在ASE中重新创建Shader
1 Sahder Forge会生成很多实际不使用的代码,先要手动清理掉这部分代码
2 清理后的代码可读性依然很差,花时间在ASE重建如下:

优化节点
ASE可视化Shader编程的最大优点就是能实时看到当前节点的运算结果,下面开始优化:
首先使用新旧练个shader调成一样,用作优化是做对比,保证优化完后效果基本一致

首先是4个step,这样互换AB,结果其实就是反向,使用OneMinus代替

继续, 乘法的结果总是黑色的,这些节点都浪费了

另一组Lerp的结果也一样是浪费的↓

修复bug, 改用合适的混合模式

最后效果跟原来美术做的一样, 但性能提升极大!

跟原Shader相比
- 去掉了grab
- 2个Step指令 + 0个lerp指令组成的溶解
- 动画控制UV
- 2张贴图 + N个uniform变量 (酌情精简)
- 去掉了顶点色和法线语义等无用的代码
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
使用Amplify Shader Editor优化特效Shader的更多相关文章
- WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码
原文:WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 HLSL,High Level Shader Language,高级着色器语言,是 Di ...
- 关于NGUI Shader 和 Draw Call的优化 & 模糊shader
序: 1.项目过程中不可避免的需要用到大量Shader 和 UITexture,由于Ngui对Shader支持非常糟糕,导致项目drawCall异常的高 2.Panel裁剪无法裁剪自定义shader内 ...
- cocos2d-js Shader系列4:Shader、GLProgram在jsb(native、手机)和html5之间的兼容问题。cocos2d-js框架各种坑。
为了让jsb也能顺利跑起滤镜效果,在手机侧折腾了2天,因为每次在真机上运行总要耗那么半分钟,而且偶尔还遇到apk文件无法删除导致运行失败的情况. 这个调试起来,实在让人烦躁加沮丧. 还好,测试上百轮, ...
- UnityShader之Shader格式篇【Shader资料1】
关于Shader,在Unity里面我们一般叫做ShaderLab,只要你的职业是与渲染搭边,Unity就与ShaderLab有着直接的关联,你都应该试着去学会它,其实我们在新手未有入门的时候,我们总是 ...
- 今天写shader流光效果,shader代码少了个括号,unity shader compiler卡死且不提示原因
今天写shader流光效果,shader代码少了个括号,unity shader compiler卡死且不提示原因 好在找到了原因,shader 代码如下,原理是提高经过的颜色亮度 void surf ...
- 流光shader 和 流光+扭曲shader
我认为这种shader能通过简单的方式呈现出不错的效果. 1.流光shader: Shader "Unlit/StreamShader" { //流光shader Properti ...
- Shader 屏幕后期特效 Shake(震屏)&Wave(波纹)
震屏效果 Shader: //////////////////////////////////////////// ///// CameraPlay - by VETASOFT 2017 ///// ...
- 特效Shader对雾的处理
RFX4_Particle.shader案例 #ifdef BlendAdd UNITY_APPLY_FOG_COLOR(i.fogCoord, res, half4(0,0,0,0)); #endi ...
- fragment shader的优化
ALU: 浮点数精度 选择性降低 shader 指令数 替换一些计算减小指令sqrt, sin, cos, recip 光照 计算用lightmap(用memory sample换计算) vertex ...
随机推荐
- [MongoDB]------windos下的安装部署与基础使用
1.安装 首先前往官网进行下载,这里贴个地址https://www.mongodb.com/download-center#community 点击大大的原谅色的DOWNLOAD(msi)按钮进行下载 ...
- Java8新特性 -- Lambda基础语法
Lambda 表达式的基础语法: Java8引入了一个新的操作符 “->” 该操作符称为箭头操作符或Lambda操作符, 该操作符将Lambda表达式拆分为两部分: 左侧: Lambda表达式 ...
- 加密算法--->对称加密与非对称加密算举例说明
目前主流的加密方式有:(对称加密)AES.DES (非对称加密)RSA.DSA 对称加密例子:des对称加密 des对称加密,对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用 ...
- 【从源代码看Android】02MessageQueue的epoll原型
版权声明:本文为博主原创文章,欢迎转载.请注明原文链接 https://blog.csdn.net/ashqal/article/details/31772697 1 开头 上一讲讲到Looper,大 ...
- 4199. [NOI2015]品酒大会【后缀数组+并查集】
Description 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品 酒家”和“首席猎手”两个奖项,吸引了众多品酒师参加.在大会的晚餐上,调酒师 ...
- P2607 [ZJOI2008]骑士
题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里, ...
- BZOJ2694:Lcm——包看得懂/看不懂题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2694 Description 对于任意的>1的n gcd(a, b)不是n^2的倍数 也就是说 ...
- redis 使用案例
1.使用redis消息列队发布信息 在一些用户创造用户的应用中(如SNS,微博),可能出现1秒有上千万个用户同时发布消息的情况,此时如果使用mysql可能出现‘too many connections ...
- jenkins pipeline 配置
pipeline { agent any stages { stage('Checkout') { steps { echo 'Checkout' checkout([$class: 'GitSCM' ...
- Sequelize-nodejs-7-Associations
Associations关联性 This section describes the various association types in sequelize. When calling a me ...