diff options
Diffstat (limited to 'Assets/Bundle/Shaders/Common/common_gbuffer.shader')
-rw-r--r-- | Assets/Bundle/Shaders/Common/common_gbuffer.shader | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/Assets/Bundle/Shaders/Common/common_gbuffer.shader b/Assets/Bundle/Shaders/Common/common_gbuffer.shader new file mode 100644 index 00000000..485a52c1 --- /dev/null +++ b/Assets/Bundle/Shaders/Common/common_gbuffer.shader @@ -0,0 +1,68 @@ +Shader "Erika/Common/GBuffer"
+{
+ Properties
+ {
+ _MainTex ("Texture", 2D) = "white" {}
+ }
+ SubShader
+ {
+ Tags { "RenderType"="Opaque" }
+ LOD 100
+
+ Pass
+ {
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+
+ #include "UnityCG.cginc"
+
+ struct appdata
+ {
+ float3 vertex : POSITION;
+ float3 normal : NORMAL;
+ float3 tangent : TANGENT;
+ float2 uv : TEXCOORD0;
+ };
+
+ struct v2f
+ {
+ float2 uv : TEXCOORD0;
+ float3 normal : TEXCOORD1;
+ float3 worldPos : TEXCOORD2;
+ float4 vertex : SV_POSITION;
+ };
+
+ struct Output
+ {
+ float4 diffuse : SV_Target0;
+ float4 normal : SV_Target1;
+ float4 position : SV_Target2;
+ float4 texCoord : SV_Target3;
+ };
+
+ sampler2D _MainTex;
+ float4 _MainTex_ST;
+
+ v2f vert (appdata v)
+ {
+ v2f o;
+ o.vertex = UnityObjectToClipPos(v.vertex);
+ o.uv = TRANSFORM_TEX(v.uv, _MainTex);
+ o.worldPos = mul(unity_ObjectToWorld, float4(v.vertex, 1)).xyz;
+ return o;
+ }
+
+ Output frag (v2f i)
+ {
+ Output o;
+ fixed4 col = tex2D(_MainTex, i.uv);
+ o.diffuse = fixed4(1,0,0,1);
+ o.normal = fixed4(1,1,0,1);
+ o.position = fixed4(i.worldPos, 1);
+ return o;
+ }
+ ENDCG
+ }
+ }
+}
|