纳金网

标题: 室外玻璃幕墙shader [打印本页]

作者: 晃晃    时间: 2011-9-2 08:20
标题: 室外玻璃幕墙shader
老外分享的一个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-9 09:13

作者: 晃晃    时间: 2012-1-29 23:20
一帆风顺,二龙腾飞,三羊开泰,四季平安,五福临门,六六大顺,七星高照,八方来财,九九同心,十全十美。

作者: tc    时间: 2012-4-25 23:25
凡系斑竹滴话要听;凡系朋友滴帖要顶

作者: 奇    时间: 2012-6-15 23:18
很有心,部分已收录自用,谢谢

作者: 菜刀吻电线    时间: 2012-10-19 23:30
无聊时可以刷屏幕 灌水 也可以试试 帖子的标题究竟可以写多长

作者: C.R.CAN    时间: 2012-10-21 23:31
百度的叫度娘,网易的叫易娘,新浪内部还在为是叫新娘还是浪娘而争论不休!……不管你们是企鹅的额娘,豆瓣的伴娘,还是华为的伪娘,都要记得,淘宝才是你们的亲娘啊!亲!!

作者: C.R.CAN    时间: 2012-11-12 23:29
我是老实人,我来也!

作者: tc    时间: 2012-12-16 23:19
不错 非常经典  实用

作者: tc    时间: 2012-12-16 23:27
心中有爱,爱咋咋地

作者: 奇    时间: 2013-1-25 12:54
百度的叫度娘,网易的叫易娘,新浪内部还在为是叫新娘还是浪娘而争论不休!……不管你们是企鹅的额娘,豆瓣的伴娘,还是华为的伪娘,都要记得,淘宝才是你们的亲娘啊!亲!!

作者: tc    时间: 2013-3-10 23:36
好`我顶``顶顶

作者: tc    时间: 2013-3-16 23:21
其实楼主所说的这些,俺支很少用!

作者: pdsmgyg    时间: 2013-4-6 13:44
顶下 不错 谢谢楼主




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