131 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Pass
 | 
						|
{
 | 
						|
    $splice(PassName)
 | 
						|
    Tags
 | 
						|
    {
 | 
						|
        $splice(LightMode)
 | 
						|
    }
 | 
						|
 | 
						|
    // Debug
 | 
						|
    $splice(Debug)
 | 
						|
 | 
						|
    // --------------------------------------------------
 | 
						|
    // Pass
 | 
						|
 | 
						|
	Lighting Off
 | 
						|
	Blend One Zero
 | 
						|
 | 
						|
	HLSLPROGRAM
 | 
						|
	#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
 | 
						|
	#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
 | 
						|
	#include "Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomTexture.hlsl"
 | 
						|
	#include "Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomTextureGraph.hlsl"
 | 
						|
	#include "Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl"
 | 
						|
 | 
						|
	#pragma vertex CustomRenderTextureVertexShader
 | 
						|
	#pragma fragment frag
 | 
						|
	#pragma target 3.0
 | 
						|
 | 
						|
    // Pragmas
 | 
						|
    $splice(PassPragmas)
 | 
						|
 | 
						|
    // Keywords
 | 
						|
    $splice(PassKeywords)
 | 
						|
    $splice(GraphKeywords)
 | 
						|
 | 
						|
	struct SurfaceDescriptionInputs
 | 
						|
	{
 | 
						|
		// update input values
 | 
						|
		float4	uv0;
 | 
						|
		float4	uv1;
 | 
						|
		uint	primitiveID;
 | 
						|
		float3	direction;
 | 
						|
 | 
						|
		// ShaderGraph accessors:
 | 
						|
		float3 WorldSpaceViewDirection;
 | 
						|
		float3 ObjectSpaceViewDirection;
 | 
						|
		float3 ObjectSpacePosition;
 | 
						|
		float3 TimeParameters;
 | 
						|
		float3 WorldSpaceNormal;
 | 
						|
		float3 ObjectSpaceNormal;
 | 
						|
		float2 NDCPosition;
 | 
						|
		float4 ScreenPosition;
 | 
						|
	};
 | 
						|
 | 
						|
	SurfaceDescriptionInputs ConvertV2FToSurfaceInputs( v2f_customrendertexture IN )
 | 
						|
	{
 | 
						|
		SurfaceDescriptionInputs o;
 | 
						|
		
 | 
						|
		o.uv0 = float4(IN.localTexcoord, 0);
 | 
						|
		o.uv1 = float4(IN.globalTexcoord, 0);
 | 
						|
		o.primitiveID = IN.primitiveID;
 | 
						|
		o.direction = normalize(IN.direction);
 | 
						|
 | 
						|
		// other space of view direction are not supported
 | 
						|
		$SurfaceDescriptionInputs.WorldSpaceViewDirection:					o.WorldSpaceViewDirection = o.direction;
 | 
						|
		$SurfaceDescriptionInputs.ObjectSpaceViewDirection: 				o.ObjectSpaceViewDirection = o.direction;
 | 
						|
		$SurfaceDescriptionInputs.ObjectSpacePosition:						o.ObjectSpacePosition = o.direction;
 | 
						|
		$SurfaceDescriptionInputs.TimeParameters:							o.TimeParameters = float3(_Time.y, _SinTime.x, _CosTime.y);
 | 
						|
		$SurfaceDescriptionInputs.WorldSpaceNormal:                         o.WorldSpaceNormal = o.direction;
 | 
						|
		$SurfaceDescriptionInputs.ObjectSpaceNormal							o.ObjectSpaceNormal = o.direction;
 | 
						|
		$SurfaceDescriptionInputs.NDCPosition:                              o.NDCPosition = o.uv0.xy;
 | 
						|
		$SurfaceDescriptionInputs.ScreenPosition:                           o.ScreenPosition = float4(o.uv0.xy, 0, 1);
 | 
						|
 | 
						|
		// Unsupported properties:
 | 
						|
		$SurfaceDescriptionInputs.WorldSpaceBiTangent: #error 'WorldSpaceBiTangent' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.ViewSpaceNormal: #error 'ViewSpaceNormal' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.TangentSpaceNormal: #error 'TangentSpaceNormal' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.WorldSpaceTangent: #error 'WorldSpaceTangent' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.WorldSpaceBiTangent: #error 'WorldSpaceBiTangent' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.ObjectSpaceTangent: #error 'ObjectSpaceTangent' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.ViewSpaceTangent: #error 'ViewSpaceTangent' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.TangentSpaceTangent: #error 'TangentSpaceTangent' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.ObjectSpaceBiTangent: #error 'ObjectSpaceBiTangent' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.ViewSpaceBiTangent: #error 'ViewSpaceBiTangent' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.TangentSpaceBiTangent: #error 'TangentSpaceBiTangent' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.ViewSpaceViewDirection: #error 'ViewSpaceViewDirection' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.TangentSpaceViewDirection: #error 'TangentSpaceViewDirection' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.ViewSpacePosition: #error ViewSpacePosition'' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.TangentSpacePosition: #error 'TangentSpacePosition' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.WorldSpacePositionPredisplacement: #error 'WorldSpacePositionPredisplacement' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.ObjectSpacePositionPredisplacement: #error 'ObjectSpacePositionPredisplacement' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.ViewSpacePositionPredisplacement: #error 'ViewSpacePositionPredisplacement' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.TangentSpacePositionPredisplacement: #error 'TangentSpacePositionPredisplacement' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.AbsoluteWorldSpacePositionPredisplacement: #error 'AbsoluteWorldSpacePositionPredisplacement' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.uv2: #error 'uv2' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.uv3: #error 'uv3' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.VertexColor: #error 'VertexColor' is not available in Custom Render Textures.
 | 
						|
 | 
						|
		// We can't fake the positions because we can't differentiate Cube and 2D custom render textures
 | 
						|
		$SurfaceDescriptionInputs.WorldSpacePosition: #error 'WorldSpacePosition' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.ObjectSpacePosition: #error 'ObjectSpacePosition' is not available in Custom Render Textures.
 | 
						|
		$SurfaceDescriptionInputs.AbsoluteWorldSpacePosition: #error 'AbsoluteWorldSpacePosition' is not available in Custom Render Textures.
 | 
						|
 | 
						|
		return o;
 | 
						|
	}
 | 
						|
 | 
						|
	// --------------------------------------------------
 | 
						|
	// Graph
 | 
						|
 | 
						|
	// Graph Properties
 | 
						|
	$splice(GraphProperties)
 | 
						|
 | 
						|
	// Graph Includes
 | 
						|
	$splice(GraphIncludes)
 | 
						|
 | 
						|
	// Graph Functions
 | 
						|
	$splice(GraphFunctions)
 | 
						|
 | 
						|
	// Graph Pixel
 | 
						|
	$splice(GraphPixel)
 | 
						|
 | 
						|
	float4 frag(v2f_customrendertexture IN) : SV_Target
 | 
						|
	{
 | 
						|
		SurfaceDescriptionInputs surfaceInput = ConvertV2FToSurfaceInputs(IN);
 | 
						|
		SurfaceDescription surface = SurfaceDescriptionFunction(surfaceInput);
 | 
						|
 | 
						|
		return float4(surface.BaseColor, surface.Alpha);
 | 
						|
	}
 | 
						|
	ENDHLSL
 | 
						|
}
 |