法1:使用mrtk自带的shader
使用MRTK中自带的shader
法2:自定义shader
a2v 中添加 UNITY_VERTEX_INPUT_INSTANCE_ID
v2f 中添加 UNITY_VERTEX_OUTPUT_STEREO
vert 中添加
UNITY_SETUP_INSTANCE_ID(v); //Insert
UNITY_INITIALIZE_OUTPUT(v2f, o); //Insert
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); //Insertdemo
Shader "JaffHan/Wireframe" {
Properties {
_Color("Color",Color)=(1.0,1.0,1.0,1.0)
_EdgeColor("Edge Color",Color)=(1.0,1.0,1.0,1.0)
_Width("Width",Range(0,1))=0.2
}
SubShader {
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 3.0
#include "UnityCG.cginc"
struct a2v {
half4 uv : TEXCOORD0 ;
half4 vertex : POSITION ;
UNITY_VERTEX_INPUT_INSTANCE_ID //Insert
};
struct v2f{
half4 pos : SV_POSITION ;
half4 uv : TEXCOORD0 ;
UNITY_VERTEX_OUTPUT_STEREO //Insert
};
fixed4 _Color;
fixed4 _EdgeColor;
float _Width;
v2f vert(a2v v)
{
v2f o;
UNITY_SETUP_INSTANCE_ID(v); //Insert
UNITY_INITIALIZE_OUTPUT(v2f, o); //Insert
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); //Insert
o.uv = v.uv;
o.pos=UnityObjectToClipPos(v.vertex);
return o;
}
fixed4 frag(v2f i) : COLOR
{
fixed4 col;
float lx = step(_Width, i.uv.x);
float ly = step(_Width, i.uv.y);
float hx = step(i.uv.x, 1.0 - _Width);
float hy = step(i.uv.y, 1.0 - _Width);
col = lerp(_EdgeColor, _Color, lx*ly*hx*hy);
return col;
}
ENDCG
}
}
FallBack "Diffuse"
}
版权声明:本文为qq_37350725原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。