![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Shader
文章平均质量分 61
Shader代码使用,工具和案例
iukam
3D开发工程师
展开
-
Unity Shader — UnityShaderVariables.cginc介绍
UnityShaderVariables.cginc介绍一、空间变换矩阵二、时间变量UnityShaderVariables.cginc文件中,Unity提供了一些内置大的全局变量,例如:变换矩阵、灯光参数、时间变量等。一、空间变换矩阵矩阵说 明UNITY_MATRIX_MVP模型-观察-投影矩阵,用于将顶点/向量从模型空间变换到裁剪空间UNITY_MATRIX_MV模型-观察矩阵,用于将顶点/向量从模型空间变换到摄像机空间UNITY_MATRIX_V观察矩阵,用原创 2022-01-02 18:40:09 · 1137 阅读 · 0 评论 -
Unity Shader — UnityCG.cginc介绍
UnityCG.cginc介绍一、顶点着色器输入结构体二、顶点变换函数三、向量变换函数四、灯光辅助函数五、视角向量函数六、其他辅助函数和宏七、宏的介绍UnityCG.cginc是Unity内置的Shader包含文件,它是Unity中代码量最多,文件最大的包含文件。UnityCG.cginc中声明了很多内置的辅助函数和数据结构体,可避免大量重复编码工作。一、顶点着色器输入结构体Unity在包含文件中声明了大量的结构,其中UnityCG.cginc文件包含的结构体如下://appdata 基础结构体原创 2021-12-29 23:20:59 · 3041 阅读 · 0 评论 -
Unity Shader — 结构体
Shader结构体一、结构体介绍二、结构体语法一、结构体介绍在实际编写过程中,着色器通常需要输入输出多个参数。结构体的作用在于可以同时将顶点坐标、法线向量和第一套UV等传入到顶点着色器,然后再同时输出裁切空间的顶点坐标、世界空间顶点坐标、世界空间法线向量和纹理坐标到片段着色器。由于函数有多个输入输出,结构体可以让代码编写更加方便,且美观。二、结构体语法结构体允许存储多个不同类型的变量,并且将多个变量包装成为一个整体进行输入或者输出。结构体语法如下:struct Type{ //变量};原创 2021-12-29 22:06:24 · 729 阅读 · 1 评论 -
Unity Shader CG属性变量的使用
CG属性变量的使用1、CG中声明属性变量2、在Shader中使用颜色3、在Shader中使用贴图4、在Shader中使用立方体贴图1、CG中声明属性变量Shader通过Properties代码块声明开放出来的属性,如果想要在Shader程序中访问这些属性,则需要在CG代码块中再次进行声明。示例:Shader "Custom/CG Properties"{ Properties { _MyFloat ("Float Property", Float) = 1 // 浮原创 2021-12-23 22:58:33 · 824 阅读 · 0 评论 -
Unity Shader 顶点-片段着色器(一)
Shader 顶点-片段着色器一、Unity Shader基础二、CG语法基础1、编译指令(1) 编译目标等级(2) 渲染平台2、着色器函数(1) 无返回值函数(2) 有返回值的函数3、语义(1) 顶点这着色器的输入语义(2) 顶点这着色器输出和片元着色器输入语义(3) 片元着色器输出语义一、Unity Shader基础1、创建和使用Shader在Unity中Shader一般由两种用途:指定给材质,用于物理渲染;指定给脚本,用于图像处理,比如后期处理(Post Processing);2原创 2021-12-22 00:33:49 · 815 阅读 · 0 评论 -
Unity ShaderLab语法基础
ShaderLab语法基础一、Shader基本介绍二、Properties(属性)1、数值类属性2、颜色和向量类属性3、纹理贴图类属性4、所有类型属性汇总三、SubShader1、SubShader的标签2、Pass的渲染状态3、Fallback一、Shader基本介绍shader的大致结构如下:Shader "Name"{ Properties { //开放到材质面板的属性 } SubShader { //顶点-片段着色器 //或者表面着色器 //或者固定函数着色器 }原创 2021-12-08 00:02:46 · 1609 阅读 · 0 评论 -
Unity Shader ASE——输出面板详情
目录一、基本配置1、General通用设置2、BlendMode混合模式3、Stencil Buffer模板缓冲4、Tessellation镶嵌5、Outline轮廓6、Billboard广告牌7、Depth深度8、RenderingOptions 渲染选项9、Rendering Platforms渲染平台10、Additio...翻译 2019-12-28 11:29:32 · 9739 阅读 · 0 评论 -
Unity ASE案例解析—CustomLightingToon(自定义光照影响贴图效果)
效果图目录1、 基础配置2、Half Lambert—半兰伯特光照模型3、Attenuation and Ambient-环境光和光的衰弱效果4、Rim Light-轮廓光1、 基础配置只有在General中选择自定义光照类型(LightModel-CustomLighting)才会在输出面板显示,Custom Lighting。所以创建自定...原创 2020-01-18 23:57:38 · 4313 阅读 · 0 评论 -
Unity ASE案例解析—CubemapReflections(3D贴图反射效果)
效果图主要是处理高光贴图World Reflection Node“世界反射”(World Reflection )节点通过表面法线(N)在摄像机视点矢量(V)的世界坐标中输出反射结果(R),并通过以下表达式R = V-2 x(V. N)x N进行计算。也可以通过将每个像素法线贴图连接到法线输入端口来计算反射。该节点通常与立方体贴图一起使用以创建环境贴图效果。...原创 2020-01-18 18:49:12 · 3270 阅读 · 0 评论 -
Unity ASE案例解析—AnimatedUVDistortion(动画贴图扭曲效果)
效果图贴图:贴图交叉融合效果1、基础配置2、整体图PS:案例制作过于简单,没啥好分析的。https://img-blog.csdnimg.cn/20200117104306971.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6...原创 2020-01-17 10:43:52 · 2245 阅读 · 0 评论 -
Unity ASE案例解析—AnimatedFire(火焰动画效果)
效果图目录1、基础配置2、Emission—自发光处理3、其他处理火焰效果,主要是处理自发光效果,其他的不做特殊处理。1、基础配置Opaque 不透明模式 ZTestMode Less or Equal :开启深度测试。2、Emission—自发光处理为了方便使用可以用Amplify Shader Function,自带函数处理。效...原创 2020-01-15 10:29:07 · 1475 阅读 · 0 评论 -
Unity ASE案例解析—Volumetric Pixelization(马赛克效果)
效果图目录一、利用摄像机渲染像素1、ScreenAndMask屏幕遮罩效果(1)基础配置(2)Volumetric Sphere 用于马赛克区域的shader函数2、CombineLayers合并多个层级(1)基础配置(2)合并层级函数Gamma To Linear Node二、控制区域范围一、利用摄像机渲染像素在摄像机下添加一个Pi...原创 2020-01-14 15:49:51 · 1680 阅读 · 0 评论 -
Unity ASE案例解析—Skybox Cubemap Extended(天空盒子三维贴图效果)
效果图目录1、基础配置2、BUILT-IN FOG—内置Fog配置3、CAMERA MODE—切换相机4、CubeMap设置5、Cubemap Mix6、Emission MixShader主要处理三个效果:cubemap(三维贴图色彩值)、Rotation(天空盒子旋转,云彩飘动)、Fog(蒙蒙雾效果)。这三个效果都应用于自发光。1、基础...原创 2020-01-14 14:04:36 · 3482 阅读 · 0 评论 -
Unity ASE案例解析—SingleChannelMasking(单通道屏蔽效果)
效果图按图片分割色值,并自定义色值。目录1、Masking Function(遮罩函数)2、Albedo(处理贴图效果)单通道屏蔽效果,主要是对贴图(Albedo)色值进行分割产生色值划分块效果。1、Masking Function(遮罩函数)自定义一个遮罩函数。利用ASE编辑器(Amplify Shader Function),可以创建自定义函数。...原创 2020-01-13 12:10:22 · 1659 阅读 · 0 评论 -
Unity ASE案例解析—Melting(融化溶解效果)
效果图目录一、输出基本配置1、General2、Blend Mode 混合模式二、Albedo—主贴图处理三、Normal—法线四、Emission—自发光五、Metallic六、Smoothness七、Loacl Vertex Offset八、动画效果融化溶解效果主要是对Albedo(贴图),Emission(自发光)和Local Ver...原创 2020-01-12 15:48:56 · 6169 阅读 · 2 评论 -
Unity ASE案例解析—LowPolyWater(聚合水波纹效果)
效果图目录一、Normal—法线处理二、Emission—自发光处理播放动画Panner NodeRotator NodeDepth Fade Node三、Local Vertex Offset—本地顶点偏移Vertex Normal NodeVertex Position Node四、Albedo和Opacity配置1、Albedo—只配颜...原创 2020-01-11 13:27:37 · 5819 阅读 · 0 评论 -
Unity ASE案例解析—Hologram(全息动画效果)
效果图目录1、动态的光晕效果—Rim(1)时间动画(2)光晕效果2、扫描线效果—Scan Lines(1)通过物体表面世界坐标Y轴,制作扫描线(2)通过物体表面世界坐标z轴,添加噪音动画效果(3)通过Lerp做颜色插值输出扫描效果3、Emission混合,并输出由于全息效果基本和Emission(自发光)部分有关,所以只需要关心自发光部分效果...原创 2020-01-10 12:04:12 · 2917 阅读 · 0 评论 -
Unity ASE案例解析—Highlight Animated(高亮动画效果)
效果图:目录一、贴图部分二、自发光部分1、高亮动画—Highlight Level (Ping pong animation)2、高亮光晕效果—Highlight (Rim)(1)View Dir节点(2)Normalize节点(3)Saturate节点2、自发光效果混合—Emission Mix & Highlight S...原创 2020-01-10 10:56:18 · 2280 阅读 · 0 评论 -
Unity ASE案例解析—ForceShield(光盾被击打时效果)
效果图目录一、Shader部分1、从整体上,光盾效果只针对自发光(Emission)部分2、Albedo和Normal对接3、自发光(Emission)部分(1)制作时间动画—Animation Speed(2)制作外色值光波效果(类似海浪)—Shield Wave Effect(3)制作外图案纹理光波效果(类似(2))—Shield Main Pa...原创 2020-01-10 09:58:24 · 2991 阅读 · 2 评论 -
Unity ASE案例解析—Environment Gradient(环境渐变效果)
效果图:环境渐变效果主要是对贴图(Albedo)进行处理,改变它的纹理和色值。目录1、获取世界坐标Y轴矢量遮罩(Mask)2、利用 1、中的Y轴遮罩做物体 顶部 颜色渐变的插值计算3、利用 1、中的Y轴遮罩做物体 底部 颜色渐变的插值计算4、创建世界场景下渐变效果5、根据世界梯度来做底部和顶部颜色的插值6、自定义贴图(红色通道上的环境光遮挡,...原创 2020-01-10 09:58:37 · 2825 阅读 · 0 评论 -
Unity ASE案例解析—Dissolve Burn(消融效果—镂空、自发光)
效果图:一、消融镂空遮罩效果设置环境:在混合模式(BlendMode)选择遮罩(Masked),这样渲染类型(RenderType) 自动选择透明切口(TransparentCutout),渲染队列(RenderQueue) 自动选择透明度测试(AlphaTest)遮罩值(MaskClipValue) 0.5(可手动调节)解析:...原创 2020-01-08 14:10:41 · 2999 阅读 · 0 评论 -
Unity ASE案例解析—2Sided(镂空效果,内外颜色分开效果)
效果图:一、Cube内外部颜色外形分开渲染效果1、正面效果:2、背面效果3、拆分 正反面Dot结点计算两个向量A和B之间的点/内积。它在几何上表示两个向量之间形成的角度的余弦值乘以彼此的长度。换句话说,它输出每个向量通道的乘法和。Pe如果A和B是Vector3,则结果为Ax * Bx + Ay * By + Az * Bz。如果A和B的频道数...原创 2020-01-08 11:38:36 · 2169 阅读 · 2 评论 -
Unity Shader ASE——快捷键
热键彩色线模式按[W]进行切换。节点预览按[P]切换节点预览多行模式按[CTRL + W]激活多行模式。完整的快捷键清单编辑[双击电线]:创建电线控制点。 [F1]:打开“选定节点Wiki”页面 [C]:创建评论 [F]:专注于选择 [B]:新的主节点 [空格]:打开节点面板 [W]:切换彩色线模式 [Control + ...翻译 2019-12-30 10:20:53 · 6071 阅读 · 0 评论 -
Unity Shader ASE——Shader Function
着色器功能着色器功能(简称SF)是单个节点网络,可用于构建可重用的功能。它们易于设置且非常灵活,它们的工作方式是直接从着色器接收输入值,处理该信息并将其输出回以进行进一步更改或直接使用。SF资产没有绑定到任何着色器,您可以在整个项目中,同一着色器中,其他着色器功能内部甚至在其他用户之间共享使用它们。从简单到复杂的图形,着色器功能都是通过将复杂的网络打包到单个节点中来减少画布混乱的好方...翻译 2019-12-30 10:11:54 · 3337 阅读 · 0 评论 -
unity shader 2D火焰流动特效
效果图:/**author:maki火焰流动效果*/Shader "Custom/FireLiner"{ Properties { _Albedo("Albedo", 2D) = "white" {}//底图 _Normals("Normals", 2D) = "bump" {}//法线tietu _Mask("Mask", 2D) = "white" {}//...原创 2019-12-19 16:09:12 · 2213 阅读 · 0 评论 -
Unity Shader 实现图片像素翻转
实现图片像素翻转只要实现图片UI翻转即可,主要代码如下: float4 frag(v2f vert) : COLOR //COLOR是输出数据 { float2 OffsetUV = vert.uv; OffsetUV.x = OffsetUV.x * _RotateX;//x轴翻转 OffsetUV.y = OffsetUV.y * _RotateY;//y轴翻转...原创 2019-12-02 14:19:59 · 2349 阅读 · 1 评论 -
Unity Shader 实现流动虚线效果
使用Linerender制作虚线Shader "Custom/Pipe"{ Properties { _Cutoff( "Mask Clip Value", Float ) = 0.5 _Speed("Speed", Range( 0 , 150)) = 0.01 _MainTex("MainTex", 2D) = "white" {} _Number("Number"...原创 2019-12-02 13:49:35 · 5252 阅读 · 2 评论