ASE相对于Shader Forge生成的代码更加干净, 用于制作特效的再合适不过,以下是使用ASE优化一个SF制作特效的经过: ## 分析美术用SF制作的Shader 懒得装SF, 直接分析代码可知这个溶解效果大致有以下部分组成: 使用Grab的扭曲 4个Step指令 + 3个lerp指令组成的溶解 时间变量控制的UV动画 2张贴图 + N个uniform变量 顶点色 沟通去掉部分功能 由于这个特效核心需求是实现刀光的溶解消失,因此可去掉一部分功能 使用Grab的扭曲 (太快看不清楚) 4个S…
原文:WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 HLSL,High Level Shader Language,高级着色器语言,是 Direct3D 着色器模型所必须的语言.WPF 支持 Direct3D 9,也支持使用 HLSL 来编写着色器.你可以使用任何一款编辑器来编写 HLSL,但 Shazzam Shader Editor 则是专门为 WPF 实现像素着色器而设计的一款编辑器,使用它来编写像素着色器,可以省去像素着色器接入…
序: 1.项目过程中不可避免的需要用到大量Shader 和 UITexture,由于Ngui对Shader支持非常糟糕,导致项目drawCall异常的高 2.Panel裁剪无法裁剪自定义shader内容,这部分暂不研究,后续再说 始: 1.本文主要解决项目中大量使用shader & UITexture 导致drawCall过高的问题(如下图),图中每个不同的图片都会导致增加一个drawCall,那么如何减少这个drawcall呢?当然只有打图集了! 步骤: 0. 将所有图片打包成图集,通过Tex…
为了让jsb也能顺利跑起滤镜效果,在手机侧折腾了2天,因为每次在真机上运行总要耗那么半分钟,而且偶尔还遇到apk文件无法删除导致运行失败的情况. 这个调试起来,实在让人烦躁加沮丧. 还好,测试上百轮,翻jsb代码+各种猜测实验之后,终于顺利的把前3个系列的例子都通通在Android上跑起来了,也算是把兼容问题调通了. 如下图所示,右上角的小图是多纹理效果,通过扩展cc.Node自行控制绘制顶点实现的:下方的两个小图是普通的cc.Sprite,对其加入了shaderProgram 总结一下,这里有…
关于Shader,在Unity里面我们一般叫做ShaderLab,只要你的职业是与渲染搭边,Unity就与ShaderLab有着直接的关联,你都应该试着去学会它,其实我们在新手未有入门的时候,我们总是认为这是个很遥远的东西,只要我们有一次理解了,我们就会发现ShaderLab其实并不难. 每一个Shader,我们从最简单的方式去着手理解,你只需要把它想象成一个无限循环执行的函数即可.可能这样也有部分同学还是很难理解.那我写个代码我们试着来理解它. public void ShaderLab(ob…
今天写shader流光效果,shader代码少了个括号,unity shader compiler卡死且不提示原因 好在找到了原因,shader 代码如下,原理是提高经过的颜色亮度 void surf(Input IN, inout SurfaceOutputStandard o) { // Albedo comes from a texture tinted by color fixed2 scrolledUV = IN.uv_MainTex; fixed xScrollValue = 5 *…
我认为这种shader能通过简单的方式呈现出不错的效果. 1.流光shader: Shader "Unlit/StreamShader" { //流光shader Properties { _MainTex ("Texture", 2D) = "white" {} _StreamTex("StreamTexture", 2D) = "white" {} _StreamColor("StreamCo…
震屏效果 Shader: //////////////////////////////////////////// ///// CameraPlay - by VETASOFT 2017 ///// //////////////////////////////////////////// Shader "CameraPlay/Shake" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {…
RFX4_Particle.shader案例 #ifdef BlendAdd UNITY_APPLY_FOG_COLOR(i.fogCoord, res, half4(0,0,0,0)); #endif #ifdef BlendAlpha UNITY_APPLY_FOG(i.fogCoord, res); #endif #ifdef BlendMul res = lerp(half4(1,1,1,1), res, res.a); UNITY_APPLY_FOG_COLOR(i.fogCoord,…
ALU: 浮点数精度 选择性降低 shader 指令数 替换一些计算减小指令sqrt, sin, cos, recip 光照 计算用lightmap(用memory sample换计算) vertex light(tbdr 不推荐 vs开销太大) look up texture Mem: 最后一段 textuer fetch bound register pressure CBV: register counts fragement shader的 变量也会成为flight的瓶颈 所以确认瓶颈很…