纳金网

标题: 一个透明shader,Fake Transcluency [打印本页]

作者: 晃晃    时间: 2011-8-26 08:43
标题: 一个透明shader,Fake Transcluency
先看效果:





Shader "Aubergine/Fake Transcluency" {
Properties {
_MainTex ("Texture", 2D) = "white" {}
_MatThickness ("Material Thickness", Range(0.1,1.0)) = 0.5
_Coeff ("Extinction", Vector) = (0,0,0,0)

}
SubShader {
Tags { "RenderType" = "Opaque" }
CGPROGRAM
#pragma surface surf Transcluent

sampler2D _MainTex;
float _MatThickness;
float4 _Coeff;

half4 LightingTranscluent (SurfaceOutput s, half3 lightDir, half3 viewDir, half atten) {
float halfLambert = (dot(lightDir, s.Normal) * 0.5 + 0.5);
float4 dotLN = float4(halfLambert * atten * 2);
dotLN *= float4(s.Albedo, 1.0);

float3 indirectLight = float3(_MatThickness * max(0.0, dot(-s.Normal, lightDir)));
indirectLight += _MatThickness * (dot(-viewDir, lightDir) * 0.5 + 0.5);
indirectLight *= atten;
indirectLight.x *= _Coeff.x;
indirectLight.y *= _Coeff.y;
indirectLight.z *= _Coeff.z;

float3 rim = float3(1.0 - max(0.0, dot(s.Normal, viewDir)));
rim *= rim;
rim *= max(0.0, dot(s.Normal, lightDir));

half4 c = dotLN + half4(indirectLight, s.Alpha);
c += (float4(rim * atten * c.a, c.a));
return c;
}

s***ct Input {
float2 uv_MainTex;
};

void surf (Input IN, inout SurfaceOutput o) {
o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
}
ENDCG
}
Fallback "Diffuse"
}
作者: Asen    时间: 2011-8-26 11:06
这个有点意思哈~

作者: Mr.cai    时间: 2011-8-27 10:30
这是?
作者: 难骑    时间: 2011-9-3 08:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: C.R.CAN    时间: 2012-1-6 19:48
你们都躲开,我来顶

作者: 晃晃    时间: 2012-4-24 23:31
心中有爱,爱咋咋地

作者: C.R.CAN    时间: 2012-6-20 23:20
很经典,很实用,学习了!

作者: C.R.CAN    时间: 2012-8-4 01:36
心中有爱,爱咋咋地

作者: 奇    时间: 2012-8-17 00:02
心中有爱,爱咋咋地

作者: tc    时间: 2012-10-7 23:18
不会吧,太恐怖了

作者: C.R.CAN    时间: 2012-10-11 23:26
已阵亡的 蝶 随 风 舞 说过  偶尔按一下 CTRL A 会发现 世界还有另一面

作者: 菜刀吻电线    时间: 2013-1-27 23:24
响应天帅号召,顶





欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5