Unity2023.1.19_ShaderGraph节点说明以及使用技巧

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"

}

 继续!!

相关推荐

  1. LOD1-Unity中模型LOD技术原理以及使用

    2024-02-22 05:26:01       42 阅读
  2. LOD2-Unity中Shader LOD技术原理以及使用

    2024-02-22 05:26:01       33 阅读
  3. Unity自带的WebSocket使用说明

    2024-02-22 05:26:01       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 05:26:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 05:26:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 05:26:01       87 阅读
  4. Python语言-面向对象

    2024-02-22 05:26:01       96 阅读

热门阅读

  1. 个人搭建部署gpt站点

    2024-02-22 05:26:01       47 阅读
  2. 大白话解析LevelDB: Block Iterator

    2024-02-22 05:26:01       44 阅读
  3. 谈谈你对Seata的理解

    2024-02-22 05:26:01       59 阅读
  4. linux 测试网络速率

    2024-02-22 05:26:01       45 阅读
  5. mysql:给查询的数据增加序号1,2,3...

    2024-02-22 05:26:01       50 阅读
  6. git学习

    git学习

    2024-02-22 05:26:01      57 阅读
  7. 回溯法去重需要先排序

    2024-02-22 05:26:01       57 阅读
  8. MySQL中varchar 和 char的区别

    2024-02-22 05:26:01       52 阅读
  9. [AIGC] JVM内存结构中的方法区主要存储哪些信息?

    2024-02-22 05:26:01       50 阅读
  10. hbuilder运行不了php文件是什么原因?

    2024-02-22 05:26:01       53 阅读