
Shader
两水先木示
有时候,你不知不觉就完成了一个BUG!
展开
-
【Shader案例】大地图迷雾实现思路
场景布局:地板Scale(40,1,40) 云层Cloud平面Scale(40,1,40) 保持一样大小,将云层平面X和Z值保持与地板一样,Y值拉大,让云层平面正位于地板上空。新建1个层级:Cloud,云层物体Layer层级设置为Cloud,射线检测只检测这一层的。其他代码部分相当简单了,就是射线检测拿到uv转局部坐标(x,y)去设置动态生成的遮罩纹理Texture2D(x,y)的像素R通道为0,就达到了裁剪这一个格子效果。原创 2025-01-10 19:49:51 · 606 阅读 · 0 评论 -
【Shader】漫反射、高光反射案例
【代码】【Shader】漫反射、高光反射案例。原创 2025-01-08 23:19:37 · 202 阅读 · 0 评论 -
【Unity3D】3D渲染流水线总结
场景数据从硬盘HDD加载到内存RAM,网格和纹理等数据会再次加载到显存VRAM,显卡对显存访问速度更快。1、顶点着色器:能够对网格的单个订单进行操作,必须实现将顶点坐标从模型空间转换到齐次裁剪空间。三角形设置:使用几何阶段输出的三角形顶点屏幕坐标进行插值运算得出三角边界坐标点。②通过测试的片元颜色值和颜色缓冲区的颜色进行合并(混合),再放回颜色缓冲区。通过片元的纹理坐标对纹理进行采样得到颜色值,可以对这个颜色值进行修改输出。①模板测试、深度测试,决定每个片元是否可见,通过测试才可见。原创 2025-01-02 22:54:17 · 360 阅读 · 0 评论 -
【Unity3D】实现UGUI高亮引导点击
【代码】【Unity】实现UGUI高亮引导点击。继承ICanvasRaycastFilter接口实现IsRaycastLocationValid函数实现局部射线穿透,传递UGUI坐标系的Rect矩形到Shader,利用UnityGet2DClipping函数裁剪图片,实现引导黑幕高亮效果。原创 2024-12-15 02:06:38 · 309 阅读 · 0 评论 -
【Unity】URP屏幕后处理UI模糊效果实现
主要以上内容,实际上就是因为Render Pass Event是只能After Rendering Transpanrets在透明物体渲染完成后进行屏幕后处理模糊,导致无法实现置顶UI高清,底下UI模糊的需求,如果可以控制这个后处理时机是在置顶UI渲染之前进行后处理,等后处理完成后再渲染指定UI 那就可以,然而...1个Canvas和2个摄像机。Shader代码实现模糊。原创 2023-09-01 15:50:08 · 4969 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列二十五——努努冰球材质复刻
Wenli模型的图不好,需要你自己换成冰的贴图,大致调成如上结果即可,暗部分可以根据个人喜好调吧,视频是用粒子发射器的,我直接模型(5个物体)做Animation旋转。原创 2022-09-04 21:57:34 · 609 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列二十四——轴向溶解
我的动画是模仿教程的,先进行LineRange显示出来一部分(到一半)然后开始渐变整体亮度从1到0,接着渐变花纹亮度1到0,最后渐变溶解程度0到1,完全溶解后刚好达到粒子播放时间,我动画整体是3秒,粒子会提前0.2秒播放即2.8秒播放。其中自发光第二部分和第三部分的UV节点纹理采样的是UV2(第二套纹理),模型Mesh的第二套UV会映射成以Y轴展开的一个UV图。值得注意的是这个以Mesh作为播放点的要经过旋转后才是正常的播放方向(因为我模型旋转了)开始说明透明度部分(一共2个)所有属性设置如下全部图所示。.原创 2022-08-28 13:18:54 · 1147 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列二十三——顶点偏移
核心思路:利用裁剪图和噪声图进行一个Sin滚动,对白色区域进行一个顶点Z值偏移,其中网格的地面三角网格顶点的透明度是0,所以底部是不会进行偏移的,只有顶部的三角网格会进行偏移,而偏移的不规则是由噪声图定义,其中HeightScale参数控制偏移程度,Height参数控制整体高度,网格Mesh的UV是放在UV2的,所以采样UV的SetUV必须选为2才能正确生效。...原创 2022-08-27 22:59:41 · 1000 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列二十二——故障干扰、通道偏移
上面有2个映射,第一个[0,1]到[-0.5,0.5]是为了不让UV偏移整体往一个方向进行,从而改变成[-0.5,0.5]会从中心开始偏移。最后加上一个定时循环故障干扰是用到了Time + Sin + Saturate进行对NoiseScale进行控制轮转变化。思路:在扰动基础上进行对其中2个通道再加上一个偏移值,完成故障干扰效果。二、在这个基础上,分别对R和B通道进行Add处理,如下图。一、实现对三个通道进行扰动效果如下图。...原创 2022-08-27 15:54:59 · 593 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列二十一——ASE Function(方法文件)、Remap软溶解
第二个建议点则是制作ASE Function时,不要一开始就用Function Input作为输入参数,直接用原本对应的类型输入节点,不然无法调整输入参数看中间效果,Function Input节点是无法调整参数的,有一些可以但还是很不方便,最好是做完整个Function节点后再最后把所有输入换成Function Input(Function Input有类型,Function Output好像是动态识别最后给它的数据类型的)创建ASE Function文件进行编辑。...原创 2022-08-27 11:27:52 · 1001 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列二十——flowmap
flowmap图制作是简单的使用ps进行弄R通道和G通道,B通道全黑。其中R通道从0到1左到右渐变,G通道从下到上0到1渐变。得到一张如下图之后进行液场修改后导出即可。可见上图的做法会存在留白边,原因未知,可以加一个遮罩进行处理,下面是不增加遮罩贴图情况下进行处理的办法(自定义遮罩) 用它去参与最后的Alpha混合即可。导出即可作为我们的flowmap图进行做各种骚操作了。发现又觉得太暗了,又加了个pow提亮度。滤镜-液化 ctrl shift +x。利用flowmap进行扭曲效果。.........原创 2022-08-26 23:20:20 · 850 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列十九——自定义函数Custom Expression
例如:间隔5秒,函数体是speedY%5-1,当speedY由Time递增到5的时候会将结果输出为-1,注意并不是改变speedY变成-1哦,speedY就是我们传入进去的AddSpeedY(它被Time一直递增不会改变的),之后从-1继续递增到3.999...时,当speedY又达到5时,回到-1,也就是这个数一直在[-1,4)范围进行轮转。效果就是每隔AddJianGe秒进行重新让Add纹理UV变化值Y从-1开始递增。custom expression 自定义函数体。......原创 2022-08-26 21:32:00 · 1410 阅读 · 1 评论 -
【ASE入门学习】ASE入门系列十八——UI通用流光材质
Sprite Texture节点 新版需输入:Template Parameter 搜索出来。它会传递我们Image、Sprite Renderer的贴图纹理,上例子则是简单的扰动叠加纹理。原创 2022-08-23 14:14:44 · 953 阅读 · 3 评论 -
【ASE入门学习】ASE入门系列十七——公开材质模板设置
Unity自带的公开材质模板设置如上所示,比如第一个CullMode可以使用这样进行交给用户设置属性。在材质设置Inspector面板上就可以进行直接设置我们的Cull Mode属性了!参数命名为:ZTestWrite,用它进行控制深度写入是否开启,0是off未开启,1是on开启。选中我们定义好的变量名称CullMode(我自定义的)原创 2022-08-23 00:37:22 · 1754 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列十六——色相与自动变色荧光棒
新节点:RGB to HSV 、 HSV to RGB,反射探针Reflection Probe。这个环境搭建是需要修改环境光照颜色的不然无法构造出如此深谙的黑~原创 2022-08-22 14:00:58 · 614 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列十五——面具(正反面)
看似很多其实就是在菲涅尔边缘光+面具作为正面,反面则是扰动一个星光图。下图是菲涅尔边缘光+面具。原创 2022-08-22 10:24:58 · 554 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列十四——扭曲(Grab)
需要注意的是这个着色器的渲染Queue必须大于所有你想要扰动的物体Queue,比如上图的底图BG是在3000层的,那么这个物体就至少要设置到3001层。Grab节点会对屏幕整个进行采样,所以很耗,每一帧都会这样子操作,只要这个着色器存在在场景上可见。粒子效果可以做一个冲击波效果(由小变大 核心是Mask图要选冲击波形状的)新知识:Grab节点,加上之前学的扰动,遮罩完事了。原创 2022-08-21 22:34:25 · 829 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列十三——控边溶解
虽然下面的也是设置TEXCOORD0.zw了,但是UV2不是我们粒子系统所控制的UV。而且Custom1必须选.xy的,因为TEXCOORD0只剩下zw通道给我们使用了,如果选用其他的会有问题。在软溶解基础上,使用SmoothStep制作出一个可控边,上例就是大于0.5的全为1,得到这个新的控边溶解图,它会作为Lerp第三参数插值权重,为1的会显示出主纹理图,为0的显示出渐变色图。最后将插值出来的颜色图作为输出RGB,而输出Alpha是以主纹理、主纹理颜色、顶点颜色以及控边溶解图的透明度相乘得来。原创 2022-08-21 19:37:56 · 800 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列十二——Ramp采样(渐变采样)
RampY是控制渐变分层的(即渐变图可能包含多种形式的渐变色)根据渐变因子是X还是Y来确定分量控制,上例子是以边缘光颜色作为采样渐变色的X值,Y固定为0。其中Distance是深度渐变的控制值,当它为0.42时如下图,这个值越大光球接触面光亮范围越大。RampY改成0.8,将会采样(x,0.8)范围内的渐变颜色区域,X是用边缘光颜色分量值控制的。因为我目前选的这张渐变图有点特殊,X和Y都是渐变,所以我改下RampY也能是另一套渐变色。涵盖知识:边缘光、软粒子、渐变采样。原创 2022-08-21 16:42:26 · 870 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列十一——软溶解
上图是我尝试使用smoothstep实现软溶解,比较容易理解,但是参数不好调整,比如Dissolve的最大值和最小值是依托噪声图最大值最小值定的,如果设定的数值不对,可能消融无法完全或默认状态就已经开始消融了,好处是容易控制软边宽度,也就是Smooth Min和Smooth Max。按道理是一样的,公式是一种渐变手段,和我使用smoothstep进行控制差不多,只是公式不太好理解。原教程的方法是使用如下图,使用了一个公式:对噪声+1加上[0,-2]数值作为噪声值。原创 2022-08-21 15:05:02 · 1129 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列十——粒子CustomData
由这个UV节点选中UV Set为2,也就是我们粒子CutomData的custom1.xyzw数据,其中X,Y用于控制移动UV,W控制扰动权重,Z控制消融程度。CustomData的数据可以用Curve曲线操作,注意Curve曲线是动态的,变化因子应该是粒子生命周期(lifttime)。涵盖知识点:粒子系统CustomData、Curve曲线、控制UV、扰动、消融。删掉Color,添加UV2和Cutom1.xyzw即可。原创 2022-08-21 13:36:57 · 1355 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列九——软粒子与顶点着色
开启深度写入以及无软粒子(深度渐变)效果如上图,自身遮挡自身情况是开启深度写入导致,粒子与其他物体(地面)造成的切割感是没有实现深度渐变(非软粒子)表现。假设我们在制作了一个深度写入的粒子(红色骷髅头)我们会看到并不会遮挡住之前深度写入关闭的(白色骷髅头),观察说明只会在自身粒子之间进行遮挡。涵盖知识点:Depth Fade(软粒子)、粒子顶点着色、粒子消融、 扩展——软粒子消融、深度图、深度写入、透明通道渲染顺序。关闭深度写入后,自身粒子贴图不会遮挡其他自身粒子贴图了。额外知识:消融+粒子。原创 2022-08-21 11:46:30 · 1539 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列八——深度渐变
之后则是简单的加颜色 加贴图,其中 贴图的UV值是采用了屏幕坐标Screen Position节点并且使用了一个Float2进行加权,其X,Y加权比例是屏幕分辨率比例,其实就是UV的tiling系数。核心 Depth Fade节点:模型深度和深度缓冲区对比插值渐变出一个值,越靠近深度缓冲区的区域会呈现黑色,反之白色,若单纯使用Depth Fade会看到如下图。如果发生这种全屏白色现象,TM的我也不知道怎么回事,反之要将这个Depth Fade输出时使用saturate节点进行映射回[0,1]值。原创 2022-08-21 00:42:23 · 2183 阅读 · 2 评论 -
【ASE入门学习】ASE入门系列七——URP后处理
shader变体数量少于shader graph(可通过观察) 比如创建ASE的build-in util和ShaderGraph的build-in util着色器变体分别为。在下篇文章基础上的ASE代码转成URP后的处理操作以及URP后处理操作。1:16,ASE牛逼!原创 2022-08-20 15:46:57 · 1539 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列六——塞尔达扰动火焰
使用3张噪声图进行扰动UV的Y值,最后进行采样输出。原创 2022-08-20 12:10:23 · 390 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列五——边缘光
利用fresnel节点进行实现边缘光,使用屏幕后处理Boom可能会出现闪烁现象,因为fresnel菲涅尔函数中存在一个pow求幂,求幂操作可能会得到一个溢出值(溢出1)会导致这个闪烁问题,解决思路是自己封装fresnel,在pow后进行saturate即可。菲涅尔会出现的闪烁问题gif图如上。原创 2022-08-20 11:01:14 · 905 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列四——扰动
使用一个噪声图(色差变化不会剧烈变化的)对正常UV进行偏移(偏移方法使用Lerp进行),使用一个NoiseIntensity参数Float作为扰动强度(Lerp的第三个值)最终得到的UV进行采样贴图输出。原创 2022-08-20 09:54:05 · 813 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列三——光边消融
核心思路活用2个Step得到小消融图和大消融图,大减去小得到光边,然后光边图加颜色与原图透明度相乘得到原图的光边颜色图,用光边颜色图与原图进行Lerp插值,插值值是使用光边图(注意插值A图和B图不能反过来,黑色输出原图,白色输出光边)插值得到一张带有光边效果的原图,最后加上大消融图的Alpha消融效果,即大消融图乘以原图Alpha得到最终Alpha值(白色会显示),最终混合原图输出。答:因为大消融图包含(可见)光边,而小消融图不包含(不可见)光边区域(包含是光边在图片的透明度为1时,即可见状态)。原创 2022-08-20 01:02:09 · 697 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列二——硬边溶解
利用Step处理float与一张噪声图的R值进行获取消融图去对贴图的Alpha值进行相乘输出结果即为硬边消融。原创 2022-08-20 00:04:00 · 630 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列一——遮罩
快捷键使用:按住快捷键不放,鼠标左键点击ASE编辑区域,例如:按住T,鼠标左击出现贴图节点(Texture Sample)采样2个贴图并利用Panner节点控制UV速度去采样,混合一个Color自定义颜色输出,完成遮罩效果。U:纹理坐标,T:采样纹理。原创 2022-08-19 16:10:38 · 1240 阅读 · 0 评论 -
【ASE入门学习】ASE入门系列——序章
ASE材质工具介绍、基础学习节点原创 2022-08-19 10:45:20 · 9851 阅读 · 1 评论 -
【Unity】MaterialPropertyBlock(MPB) GPUInstancing SRPBatch个人见解
MPB GPU Instancing SRPBatch讲解原创 2022-02-22 23:57:38 · 8147 阅读 · 0 评论 -
GAMES202 作业4 笔记
Emu_ISEavg_ISEmu_MCEavg和Emu都是计算BRDF项fms所需的参数,上面四幅图则是输出。其中_MC和_IS区别是噪声程度,注意IS是反转过后的图像,IS会经历一个重要性采样使得噪声变少。上面的一排是Kulla-Conty BRDF近似模型的,下面是Microfacet BRDF模型的。可见近似解决了因BRDF忽略微表面反射多次的能量,导致能量损失变暗的问题。...原创 2022-01-24 19:13:07 · 739 阅读 · 0 评论 -
GAMES202 作业3 笔记
直接光+间接光,基于SSR原创 2022-01-24 18:27:25 · 584 阅读 · 1 评论 -
GAMES202 作业2笔记
环境贴图原创 2022-01-24 18:25:58 · 787 阅读 · 0 评论 -
【GAME101】作业 物体倒立、镜像问题
GAMES101课程的作业会产生三角形或物体镜像问题的解决方法原创 2022-01-19 10:36:40 · 675 阅读 · 2 评论 -
【Shader】模拟体积云效果
链接:https://pan.baidu.com/s/1DgXSYWA0wNCQ89C9OOLexQ提取码:i77e--来自百度网盘超级会员V5的分享原创 2022-01-06 01:44:00 · 1417 阅读 · 0 评论 -
【Shader】使用几何着色器渲染草地Grass效果
链接:https://pan.baidu.com/s/1TAEZg_I6Wzd_IadgTujGLw提取码:34ti参考:【Unity Shader】使用Geometry Shader进行大片草地的实时渲染_流朔的博客-优快云博客_unity 草地shader转载 2021-12-31 22:44:08 · 606 阅读 · 0 评论 -
【Shader】图集UV错乱问题&支持MeshRenderer显示图集图片
shader 图片渲染问题 UV错乱原创 2021-12-30 11:50:14 · 3262 阅读 · 0 评论 -
【Shader】变体keyword的声明
unity shader 变体 multi_compile,shader_feature等声明方法区别。原创 2021-12-29 21:20:11 · 3426 阅读 · 0 评论