Files
PrinceOfGlory/Assets/Editor/x64/Bakery/ftShowPreview.shader
kridoo 6e91a0c7f0 111
2025-09-15 17:32:08 +08:00

69 lines
1.6 KiB
Plaintext

Shader "Hidden/ftShowPreview"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Standard vertex:vert noinstancing noshadow noforwardadd noambient
sampler2D _ftPreviewTexture;
float4x4 _ftPreviewViewProj;
struct Input
{
float4 projUV;
};
struct vinput
{
float4 vertex : POSITION;
// needed for Unity
float2 texcoord1 : TEXCOORD1;
float2 texcoord2 : TEXCOORD2;
float3 normal : NORMAL0;
float2 texcoord : TEXCOORD0;
float4 tangent : TANGENT;
};
void vert (inout vinput v, out Input o)
{
UNITY_INITIALIZE_OUTPUT(Input,o);
float4 worldPos = mul(unity_ObjectToWorld, v.vertex);
o.projUV = mul(_ftPreviewViewProj, worldPos);
}
void surf (Input IN, inout SurfaceOutputStandard o) {
o.Albedo = 0;
o.Smoothness = 0;
o.Occlusion = 0;
o.Metallic = 1;
float4 color = 0;
float2 uv = IN.projUV.xy / IN.projUV.w;
if (uv.x < -1 || uv.x > 1 || uv.y < -1 || uv.y > 1)
{
color = 0;
}
else
{
color = tex2D(_ftPreviewTexture, uv * 0.5 + 0.5);
}
o.Emission = color;
}
ENDCG
}
FallBack "Diffuse"
}