您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
73 行
1.7 KiB
73 行
1.7 KiB
Shader "Perception/LocalPosition"
|
|
{
|
|
Properties
|
|
{
|
|
_Center ("Center", Vector) = (0, 0, 0, 0)
|
|
_Size ("Size", Vector) = (1, 1, 1, 0)
|
|
_Override ("Override", Color) = (0, 0, 0, 1)
|
|
}
|
|
|
|
HLSLINCLUDE
|
|
|
|
#pragma target 4.5
|
|
#pragma only_renderers d3d11 ps4 xboxone vulkan metal switch
|
|
|
|
//enable GPU instancing support
|
|
#pragma multi_compile_instancing
|
|
|
|
ENDHLSL
|
|
|
|
SubShader
|
|
{
|
|
Tags { "RenderType"="Opaque" }
|
|
LOD 100
|
|
|
|
Pass
|
|
{
|
|
Tags { "LightMode" = "SRP" }
|
|
|
|
Blend Off
|
|
ZWrite On
|
|
ZTest LEqual
|
|
|
|
Cull Back
|
|
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
|
|
#include "UnityCG.cginc"
|
|
|
|
float4 _Center;
|
|
float4 _Size;
|
|
fixed4 _Override;
|
|
|
|
struct app_to_vertex
|
|
{
|
|
float4 vertex : POSITION;
|
|
};
|
|
|
|
struct vertex_to_fragment
|
|
{
|
|
float4 vertex : SV_POSITION;
|
|
float4 vertex_object_space : COLOR;
|
|
};
|
|
|
|
vertex_to_fragment vert (app_to_vertex input)
|
|
{
|
|
vertex_to_fragment o;
|
|
o.vertex = UnityObjectToClipPos(input.vertex);
|
|
o.vertex_object_space = (input.vertex - _Center) / _Size + float4(0.5, 0.5, 0.5, 1);
|
|
o.vertex_object_space.w = 1;
|
|
o.vertex_object_space = o.vertex_object_space * _Override;
|
|
return o;
|
|
}
|
|
|
|
float4 frag (vertex_to_fragment input) : SV_Target
|
|
{
|
|
return input.vertex_object_space;
|
|
}
|
|
ENDCG
|
|
}
|
|
}
|
|
}
|