Unity中Shader的渲染排序Tags{“Queue“ = “Transparent“}

文章目录

  • 前言
  • [一、在Unity中渲染排序一般是固定的几个层级,透明 和 半透明是以 2500 为 分界点,渲染层级 从 低 到 高](#一、在Unity中渲染排序一般是固定的几个层级,透明 和 半透明是以 2500 为 分界点,渲染层级 从 低 到 高)
  • [二、渲染队列 可以 在 SubShader 或 Pass 中写](#二、渲染队列 可以 在 SubShader 或 Pass 中写)

前言

Unity中Shader的渲染排序


一、在Unity中渲染排序一般是固定的几个层级,透明 和 半透明是以 2500 为 分界点,渲染层级 从 低 到 高

二、渲染队列 可以 在 SubShader 或 Pass 中写

如果在 SubShader 中写,则作用于 SubShader
在 Pass 中 写,则只作用于 Pass

写法:

Queue是默认Shader暴露在外面的属性Queue

Geometry是Queue的类型

Tags{"Queue" = "Geometry"}

测试用代码:

Shader "MyShader/P0_9_2"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
    }
    SubShader
    {
        Tags{"Queue" = "Transparent"}
        //混合
        Blend One One

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"
            
            sampler2D _MainTex;
            float4 _MainTex_ST;


            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                UNITY_FOG_COORDS(1)
                float4 vertex : SV_POSITION;
            };

           

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);

                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                
                fixed4 col = tex2D(_MainTex, i.uv);
                
                return col;
            }
            ENDCG
        }
    }
}

效果:

相关推荐
神码编程4 小时前
【Unity功能集】TextureShop纹理工坊(五)选区
unity·游戏引擎·shader·ps选区
m0_7482517210 小时前
Android webview 打开本地H5项目(Cocos游戏以及Unity游戏)
android·游戏·unity
benben04410 小时前
Unity3D仿星露谷物语开发7之事件创建动画
unity·游戏引擎
林枫依依13 小时前
Unity2021.3.16f1可以正常打开,但是Unity2017.3.0f3却常常打开闪退或者Unity2017编辑器运行起来就闪退掉
unity
虾球xz13 小时前
游戏引擎学习第57天
学习·游戏引擎
异次元的归来1 天前
Unity DOTS中的share component
unity·游戏引擎
向宇it1 天前
【从零开始入门unity游戏开发之——C#篇25】C#面向对象动态多态——virtual、override 和 base 关键字、抽象类和抽象方法
java·开发语言·unity·c#·游戏引擎
_oP_i1 天前
unity webgl部署到iis报错
unity
Go_Accepted1 天前
Unity全局雾效
unity
向宇it1 天前
【从零开始入门unity游戏开发之——C#篇24】C#面向对象继承——万物之父(object)、装箱和拆箱、sealed 密封类
java·开发语言·unity·c#·游戏引擎