纳金网
标题:
unity3d建筑玻璃shader代码
[打印本页]
作者:
晃晃
时间:
2011-9-8 08:31
标题:
unity3d建筑玻璃shader代码
Shader "Building/Glass" {
Properties {
_Lightmap ("Lightmap (RGB) Reflectiveness (A)", 2D) = "black" {}
_Color ("Main Color", Color) = (1,1,1,1)
_Cube ("Reflection Cubemap", Cube) = "" { TexGen CubeReflect }
}
Category {
Tags { "Queue" = "Transparent-110" }
Blend SrcAlpha OneMinusSrcAlpha
Lighting Off
Colormask RGB
// ---- fragment program cards
SubShader {
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_fog_exp2
#pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc"
struct v2f {
V2F_POS_FOG;
float3 normal;
float3 viewDir;
float3 rotNormal;
float2 uv;
};
uniform float4x4 _RotMatrix;
uniform float4 _Lightmap_ST;
v2f vert (appdata_tan v)
{
v2f o;
PositionFog( v.vertex, o.pos, o.fog );
o.normal = mul( (float3x3)_Object2World, v.normal );
o.rotNormal = mul( (float3x3)_RotMatrix, o.normal );
o.viewDir = mul( (float3x3)_Object2World, ObjSpaceViewDir(v.vertex) );
o.uv = TRANSFORM_TEX(v.texcoord, _Lightmap);
return o;
}
uniform samplerCUBE _Cube;
uniform float4 _Color;
uniform sampler2D _Lightmap;
float4 frag (v2f i) : COLOR
{
float3 normal = i.normal;
i.viewDir = normalize(i.viewDir);
half nsv = saturate(dot( normal, i.viewDir ));
// calculate reflection vector in world space
half3 r = reflect(-i.viewDir, i.rotNormal);
half4 lightmapColor = tex2D(_Lightmap, i.uv);
half4 reflcolor = texCUBE(_Cube, r);
half fresnel = 1 - nsv*0.5;
half fresnelAlpha = 1 - nsv * (1 - _Color.a);
half4 c = half4( lerp( _Color.rgb, reflcolor.rgb, fresnel * lightmapColor.a ), fresnelAlpha );
c.rgb *= lightmapColor.rgb;
return c;
}
ENDCG
}
}
// ---- cards that can do cube maps
SubShader {
Pass {
SetTexture [_Cube] { matrix[_RotMatrix] constantColor(1,1,1,0.5) combine texture, constant }
}
}
// ---- cards that can't do anything
SubShader {
Pass {
Color (1,1,1,0.3)
}
}
}
}
作者:
Asen
时间:
2011-9-8 09:24
作者:
奇
时间:
2012-1-21 23:30
每年短信都很卡,今年提前一点发,就算网络再怎么忙,保准我是第一个,祝福提前到:运气顺顺顺,一切旺旺旺,一年更比一年强!收到有福啦!
作者:
菜刀吻电线
时间:
2012-1-27 23:28
得得失失平常事,是是非非任由之,恩恩怨怨心不愧,冷冷暖暖我自知,坎坎坷坷人生路,曲曲折折事业梯,凡事不必太在意,愿你一生好运气!
作者:
晃晃
时间:
2012-1-31 23:19
万事胜意,合家幸福,人强马壮,心想事成,顺理成章 步步高升。
作者:
tc
时间:
2012-3-10 23:32
百度的叫度娘,网易的叫易娘,新浪内部还在为是叫新娘还是浪娘而争论不休!……不管你们是企鹅的额娘,豆瓣的伴娘,还是华为的伪娘,都要记得,淘宝才是你们的亲娘啊!亲!!
作者:
艺术家
时间:
2012-3-16 17:49
作者:
艺术家
时间:
2012-3-16 17:49
作者:
艺术家
时间:
2012-3-16 17:49
谢谢啦
作者:
艺术家
时间:
2012-3-16 17:51
作者:
BU Secret
时间:
2012-3-16 17:57
好
作者:
彬彬
时间:
2012-3-16 18:57
学习
作者:
奇
时间:
2012-4-3 13:07
很经典,很实用,学习了!
作者:
菜刀吻电线
时间:
2012-4-3 13:12
再看一看,再顶楼主
作者:
未完结
时间:
2012-4-6 19:40
爱生活,爱纳金网,爱web3D。。。。
作者:
Eleven
时间:
2012-4-6 19:52
爱生活,爱纳金网,爱web3D。。。。
作者:
osaka
时间:
2012-4-6 20:48
作者:
C.R.CAN
时间:
2012-4-6 23:27
凡系斑竹滴话要听;凡系朋友滴帖要顶
作者:
markq
时间:
2012-4-12 22:46
不错 非常经典 实用
作者:
BU Secret
时间:
2012-4-13 20:28
顶
作者:
C.R.CAN
时间:
2012-8-13 10:13
很有心,部分已收录自用,谢谢
作者:
晃晃
时间:
2012-10-10 23:18
无聊时可以刷屏幕 灌水 也可以试试 帖子的标题究竟可以写多长
作者:
菜刀吻电线
时间:
2013-2-20 23:22
发了那么多,我都不知道该用哪个给你回帖了,呵呵
欢迎光临 纳金网 (http://old.narkii.com/club/)
Powered by Discuz! X2.5