65 lines
1.2 KiB
Plaintext
65 lines
1.2 KiB
Plaintext
|
Shader "Hidden/WorldPosInputsNode"
|
||
|
{
|
||
|
CGINCLUDE
|
||
|
#pragma vertex vert_img
|
||
|
#pragma fragment frag
|
||
|
#include "UnityCG.cginc"
|
||
|
#include "Preview.cginc"
|
||
|
ENDCG
|
||
|
|
||
|
SubShader
|
||
|
{
|
||
|
// Object
|
||
|
Pass
|
||
|
{
|
||
|
CGPROGRAM
|
||
|
float4 frag( v2f_img i ) : SV_Target
|
||
|
{
|
||
|
float3 positionOS = PreviewFragmentPositionOS( i.uv );
|
||
|
return float4( positionOS, 1 );
|
||
|
}
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
// World
|
||
|
Pass
|
||
|
{
|
||
|
CGPROGRAM
|
||
|
float4 frag( v2f_img i ) : SV_Target
|
||
|
{
|
||
|
float3 positionOS = PreviewFragmentPositionOS( i.uv );
|
||
|
float3 positionWS = mul( unity_ObjectToWorld, positionOS );
|
||
|
return float4( positionWS, 1 );
|
||
|
}
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
// Relative World
|
||
|
Pass
|
||
|
{
|
||
|
CGPROGRAM
|
||
|
float4 frag( v2f_img i ) : SV_Target
|
||
|
{
|
||
|
float3 positionOS = PreviewFragmentPositionOS( i.uv );
|
||
|
float3 positionWS = mul( unity_ObjectToWorld, positionOS );
|
||
|
float3 positionRWS = positionWS - preview_WorldSpaceCameraPos.xyz;
|
||
|
return float4( positionRWS, 1 );
|
||
|
}
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
// View
|
||
|
Pass
|
||
|
{
|
||
|
CGPROGRAM
|
||
|
float4 frag( v2f_img i ) : SV_Target
|
||
|
{
|
||
|
float3 positionOS = PreviewFragmentPositionOS( i.uv );
|
||
|
float3 positionVS = UnityObjectToViewPos( positionOS );
|
||
|
return float4( positionVS, 1 );
|
||
|
}
|
||
|
ENDCG
|
||
|
}
|
||
|
}
|
||
|
}
|