Xray6

来源:互联网 发布:excel数据有效性自定义 编辑:程序博客网 时间:2024/05/22 12:54
Shader "Custom/XrayMatCapBumpVF"{Properties{_Color("Main Color",Color) = (0.5,0.5,0.5,1.0)_BumpMap("Normal Map",2D) = "bump"{}_MatCap("MatCap(RGB)",2D) = "white"{}[Toggle(MATCAP_ACCURATE)] _MatCapAccurate("Accurate CalCulation",Int) = 0}SubShader {Tags { "RenderType" = "Opaque" }blend One OneZWrite offPass {Tags { "LightMode" = "Always" }CGPROGRAM#pragma vertex vert #pragma fragment frag #pragma fragmentoption  ARB_precision_hint_fastest#pragma shader_feature MATCAP_ACCURATE#include "UnityCG.cginc"struct v2f{float4 pos:SV_POSITION;float2 uv_bump:TEXCOORD0 ;#if MATCAP_ACCURATEfixed3 tSpace0:TEXCOORD1  ;fixed3 tSpace1:TEXCOORD2 ;fixed3 tSpace2:TEXCOORD3 ;#elsefloat3 c0:TEXCOORD1  ;float3 c1:TEXCOORD2 ;#endif };  uniform float4 _BumpMap_ST;v2f vert(appdata_tan v){v2f o;o.pos = mul(UNITY_MATRIX_MVP,v.vertex);o.uv_bump = TRANSFORM_TEX(v.texcoord,_BumpMap);#if MATCAP_ACCURATEfixed3 worldNormal = UnityObjectToWorldNormal(v.normal);fixed3 worldTangent= UnityObjectToWorldDir(v.tangent.xyz);fixed3 worldBinormal=cross(worldNormal,worldTangent) * v.tangent.w;o.tSpace0 = fixed3 (worldTangent.x,worldBinormal.x,worldNormal.x);o.tSpace1 = fixed3 (worldTangent.y,worldBinormal.y,worldNormal.y);o.tSpace2 = fixed3 (worldTangent.z,worldBinormal.z,worldNormal.z);#elsev.normal = normalize(v.normal);TANGENT_SPACE_ROTATION;o.c0 = mul(rotation,normalize(UNITY_MATRIX_IT_MV[0].xyz));o.c1 = mul(rotation,normalize(UNITY_MATRIX_IT_MV[1].xyz));#endifreturn o;}uniform float4 _Color;uniform sampler2D _MatCap;uniform sampler2D _BumpMap;float4 frag(v2f i):COLOR{fixed3 normals = UnpackNormal(tex2D(_BumpMap,i.uv_bump));#if MATCAP_ACCURATEfloat3 worldNorm;worldNorm.x = dot(i.tSpace0.xyz,normals);worldNorm.y = dot(i.tSpace1.xyz,normals);worldNorm.z = dot(i.tSpace2.xyz,normals);worldNorm = mul((float3x3)UNITY_MATRIX_V,worldNorm);float4 mc = tex2D(_MatCap,worldNorm.xyz*0.5+0.5);#elsehalf2 capCoord = half2(dot(i.c0,normals),dot(i.c1,normals));float4 mc = tex2D(_MatCap,capCoord*0.5+0.5);#endifreturn _Color*mc*2.0;}ENDCG} }}

0 0