unity5怎么样让材质unity 自发光光

外发光材质Shader | Unity3D教程手册
当前位置 :
>> 外发光材质Shader
外发光材质Shader
游戏中我们经常会遇到需要制作外发光效果的地方,比如武器,比如坐骑要带一个牛掰的光晕。今天我找到了个好效果:
外发光材质Shader
&&&001 Shader &Faye/OutLightting&002{003
Properties004
_MainTex(&Texture (RGB)&, 2D) = &black& {}006
_Color(&Color&, Color) = (0, 0, 0, 1)007
_AtmoColor(&Atmosphere Color&, Color) = (0.5, 0.5, 1.0, 1)008
_Size(&Size&, Float) = 0.1009
_Falloff(&Falloff&, Float) = 5010
_FalloffPlanet(&Falloff Planet&, Float) = 5011
_Transparency(&Transparency&, Float) = 15012
_TransparencyPlanet(&Transparency Planet&, Float) = 1013
}014&015 SubShader016
Name &PlanetBase&020
Tags {&LightMode& = &Always&}021
Cull Back022&023
CGPROGRAM024
#pragma vertex vert025
#pragma fragment frag026&027
#pragma fragmentoption ARB_fog_exp2028
#pragma fragmentoption ARB_precision_hint_fastest029&030
#include &UnityCG.cginc&031&032
uniform sampler2D _MainTex;033
uniform float4 _MainTex_ST;034
uniform float4 _Color;035
uniform float4 _AtmoColor;036
uniform float _FalloffPlanet;037
uniform float _TransparencyPlanet;038&039
struct v2f040
float4 pos : SV_POSITION;042
float3 normal : TEXCOORD0;043
float3 worldvertpos : TEXCOORD1;044
float2 texcoord : TEXCOORD2;045
};046&047
v2f vert(appdata_base v)048
v2f o;050&051
o.pos = mul (UNITY_MATRIX_MVP, v.vertex);052
o.normal = v.normal;053
o.worldvertpos = mul(_Object2World, v.vertex).xyz;054
o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);055&056
return o;057
}058&059
float4 frag(v2f i) : COLOR060
i.normal = normalize(i.normal);062
float3 viewdir = normalize(_WorldSpaceCameraPos-i.worldvertpos);063&064
float4 atmo = _AtmoColor;065
atmo.a = pow(1.0-saturate(dot(viewdir, i.normal)), _FalloffPlanet);066
atmo.a *= _TransparencyPlanet*_Color;067
//Unity3D教程手册:http://www.manew.com068
float4 color = tex2D(_MainTex, i.texcoord)*_Color;069
color.rgb = lerp(color.rgb, atmo.rgb, atmo.a);070&071
return color*dot(normalize(i.worldvertpos-_WorldSpaceLightPos0), i.normal);072
}075&076
Name &AtmosphereBase&079
Tags {&LightMode& = &Always&}080
Cull Front081
Blend SrcAlpha One082&083
CGPROGRAM084
#pragma vertex vert085
#pragma fragment frag086&087
#pragma fragmentoption ARB_fog_exp2088
#pragma fragmentoption ARB_precision_hint_fastest089&090
#include &UnityCG.cginc&091&092
uniform float4 _Color;093
uniform float4 _AtmoColor;094
uniform float _Size;095
uniform float _Falloff;096
uniform float _Transparency;097&098
struct v2f099
float4 pos : SV_POSITION;101
float3 normal : TEXCOORD0;102
float3 worldvertpos : TEXCOORD1;103
};104
//Unity3D教程手册:http://www.manew.com105
v2f vert(appdata_base v)106
v2f o;108&109
v.vertex.xyz += v.normal*_Size;110
o.pos = mul (UNITY_MATRIX_MVP, v.vertex);111
o.normal = v.normal;112
o.worldvertpos = mul(_Object2World, v.vertex);113&114
return o;115
}116&117
float4 frag(v2f i) : COLOR118
i.normal = normalize(i.normal);120
float3 viewdir = normalize(i.worldvertpos-_WorldSpaceCameraPos);121&122
float4 color = _AtmoColor;123
color.a = pow(saturate(dot(viewdir, i.normal)), _Falloff);124
color.a *= _Transparency*_Color*dot(normalize(i.worldvertpos-_WorldSpaceLightPos0), i.normal);125
return color;126
}130&131
FallBack &Diffuse&132}
【上一篇】
【下一篇】
您可能还会对这些文章感兴趣!unity5怎么样让材质自发光_百度知道
unity5怎么样让材质自发光
我有更好的答案
一本书,Unity Shader and Effect Cookbook,但一般的Shader都可以用Shader Forge搞定。Shader Forge是一个可视化的,nose-based的shader编辑器。简单来说,就是你在图形化界面把各种effect按一定逻辑连接好,它可以自动生成shader的代码。
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)unity5.0 自发光怎么照亮周围物体_百度知道
unity5.0 自发光怎么照亮周围物体
我有更好的答案求助知道网友
加个灯光就好,本身不会照亮
你可以使用一个自发管材质或者是选择一个自发光Shader,然后将周围的物体设置为静态的,烘焙一下就可以看到效果了。不过具体效果还要具体调试。
本回答被网友采纳
1条折叠回答
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 unity自发光材质 的文章

 

随机推荐