Unity2023.1.19_ShaderGraph节点说明以及使用技巧
目录
Unity2023.1.19_ShaderGraph节点说明以及使用技巧
1. 快捷键Ctrl+G完成和UE蓝图使用快捷键C一样的蓝图分组注释效果:
2. Tiling And Offset:
3. 以下是两组URP材质渲染的效果对比:
4. 打开Frame Debugger
5. 三种Shader编程语言:
基于OpenGL的OpenGL Shading Language,缩写GLSL;
基于DirectX的High Level Shading Language,缩写HLSL;
基于NVIDIA的C for Graphic,缩写CG;
着色器渲染管线兼容性(重点就是URP、HDRP支持HLSL语言,不支持CG语言,URP项目的渲染选择最好就是HLSL):
VS Studio-ShaderlabVS插件
6. 贴段HLSL代码:
1. 快捷键Ctrl+G完成和UE蓝图使用快捷键C一样的蓝图分组注释效果:
2. Tiling And Offset:
3. 以下是两组URP材质渲染的效果对比:
左边为:unlit URP,右边为lit URP;
无光照的渲染更加均匀一致,光照渲染更加真实,可以增加修改的预设参数也更多。
4. 打开Frame Debugger
5. 三种Shader编程语言:
-
基于OpenGL的OpenGL Shading Language,缩写GLSL;
-
基于DirectX的High Level Shading Language,缩写HLSL;
-
基于NVIDIA的C for Graphic,缩写CG;
-
着色器渲染管线兼容性(重点就是URP、HDRP支持HLSL语言,不支持CG语言,URP项目的渲染选择最好就是HLSL):
-
VS Studio-ShaderlabVS插件
6. 贴段HLSL代码:
// 当前Shader在材质面板下拉列表的路径和名字 Shader "Unlit/NewUnlitShader" { Properties { //变量名(显示名称,类型) = 默认值 _MainTex ("Texture", 2D) = "white" {} _MainTexArr("TextureArr", 2DArray) = "white" {} _Color("Color", Color) = (1,1,1,1) _Int("Int",Int) = 2 //整形 _Float("Float",float) = 1.5 //浮点型 _Range("Range",range(0.0,2.0)) = 1.0 //范围值 _Vector("Vector",Vector) = (1,4,3,8) //向量 //_MainTex("Texture", 2D) = "white" {} //贴图 //_Color("Color",Color) = (1,1,1,1) //颜色 _Cube("Cube",Cube) = "white"{} //天空盒 _CubeArray("CubeArray",CubeArray) = "white"{} _3D("3D",3D) = "black"{} //3D贴图 } SubShader { Tags { "RenderType" = "Opaque" } //"Queue" = "Transparent" //渲染顺序 //"RenderType" = "Opaque" //着色器替换功能 //"DisableBatching" = "True" //是否进行合批 //"ForceNoShadowCasting" = "True" //是否投射阴影 //"IgnoreProjector" = "True" //受不受Projector的影响,通常用于透明物体 //"CanUseSpriteAltas" = "False" //是否用于图片的Shader,通常用于UI //"PreviewType" = "Plane" //用作shader面板预览的类型 LOD 100 Pass { //Name "ExamplePassName" //Tags { // "ExampleTagKey" = "ExampleTagValue" //} 此处是 ShaderLab 命令。 此处是 HLSL 代码。 HLSLPROGRAM #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" #pragma vertex vert #pragma fragment frag struct Attributes { float4 positionOS : POSITION; float2 uv : TEXCOORD0; }; struct Varyings { float4 positionCS : SV_POSITION; float2 uv : TEXCOORD0; }; float4 _Color; sampler2D _MainTex; float4 _MainTex_ST; Varyings vert(Attributes v) { Varyings o = (Varyings)0; VertexPositionInputs vertexInput = GetVertexPositionInputs(v.positionOS.xyz); o.positionCS = vertexInput.positionCS; o.uv = TRANSFORM_TEX(v.uv, _MainTex); return o; } half4 frag(Varyings i) : SV_Target { half4 col = tex2D(_MainTex, i.uv); return lerp(col, _Color, 0.8); } ENDHLSL } } Fallback "Custom/NewSurfaceShader" }
继续!!
-