URP - 最简单的不受光(unlit)shader

 

复制代码
Shader "My/URP_Unlit" {
    Properties {
        _MainTex ("Texture", 2D) = "white" {}
    }

    SubShader {
        Tags {
            "RenderPipeline" = "UniversalPipeline" //这是用于URP的shader
            "RenderType" = "Opaque"
        }

        HLSLINCLUDE
        
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"

        //所有属性都要缓存到CBuffer中, 这样才能兼容SRP Batcher
        CBUFFER_START(UnityPerMaterial)
            float4 _MainTex_ST;
        CBUFFER_END

        ENDHLSL

        Pass {
            Tags { "LightMode" = "UniversalForward" } //渲染pass

            HLSLPROGRAM

            #pragma vertex vert //指定顶点着色器函数
            #pragma fragment frag //指定片元着色器函数

            struct Attributes { //程序传入顶点着色器的数据
                float4 vertex : POSITION; //用模型空间顶点坐标填充该变量
                float2 uv : TEXCOORD0; //用模型的第一套纹理坐标(uv)填充该变量
            };

            struct Varings { //顶点着色器传入片元着色器的数据
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION; //该变量存放了裁剪空间的顶点坐标
            };

            //变量
            TEXTURE2D(_MainTex);
            SAMPLER(sampler_MainTex);

            Varings vert(Attributes v) { //顶点着色器
                Varings o;
                VertexPositionInputs positionInputs = GetVertexPositionInputs(v.vertex.xyz); //顶点坐标从模型空间转裁剪空间
                o.vertex = positionInputs.positionCS;

                o.uv = TRANSFORM_TEX(v.uv, _MainTex); //应用贴图的tiling和offset
                return o;
            }

            float4 frag(Varings i) : SV_Target { //片元着色器(逐像素)
                float4 c = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv); //根据纹理坐标获取像素颜色
                return c;
            }
            ENDHLSL
        }
    }
}
复制代码

 

参考

【Unity Shader】在URP里写Shader(二):从一个Unlit Shader开始 - 知乎

URP初试 - 简书

 

posted @   yanghui01  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2023-12-19 cpp环境搭建 - vs2017编译CMakeLists项目(Box2dLite)
点击右上角即可分享
微信分享提示