Brucz 2025-03-26 14:05:24 +08:00
commit 97eb4d2804
2 changed files with 100 additions and 0 deletions

View File

@ -0,0 +1,91 @@
Shader "NLD_URP/NLD_Scene_Unit_Inst_Transparent"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_MainColor ("Main Color", Color) = (1, 1, 1, 1)
_CutOff ("Alpha Clip", Range(0, 1)) = 0.5
}
SubShader
{
Tags {
"RenderType" = "Transparent"
"RenderPipeline" = "UniversalPipeline"
}
Pass
{
Tags
{
"LightMode" = "SRPDefaultUnlit"
}
ZWrite Off
ZTest LEqual
Blend SrcAlpha OneMinusSrcAlpha
HLSLPROGRAM
#pragma vertex vert
#pragma fragment frag
// gpu instancing
#pragma multi_compile_instancing
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
struct appdata {
float4 positionOS : POSITION;
float2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 positionHCS : SV_POSITION;
float2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
TEXTURE2D(_MainTex);
SAMPLER(sampler_MainTex);
// UNITY_INSTANCING_BUFFER_START(UnityPerMaterial)
//
// UNITY_DEFINE_INSTANCED_PROP(float4, _MainTex_ST)
// UNITY_DEFINE_INSTANCED_PROP(float4, _MainColor)
// UNITY_DEFINE_INSTANCED_PROP(float, _CutOff)
//
// UNITY_INSTANCING_BUFFER_END(UnityPerMaterial)
float4 _MainColor;
float _CutOff;
float4 _MainTex_ST;
v2f vert (appdata v)
{
v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
o.positionHCS = TransformObjectToHClip(v.positionOS);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}
half4 frag (v2f i) : SV_Target
{
UNITY_SETUP_INSTANCE_ID(i);
// sample the texture
half4 col = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv);
if (col.a < _CutOff)
{
discard;
}
col.xyz *= _MainColor.xyz;
col.a = _MainColor.a;
return col;
}
ENDHLSL
}
}
}

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 502cbb274d6b3434ba828a78db290dbd
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant: