【Shader】人物选中高亮状态
2016-06-15 14:38
423 查看
Shader
"OutLine/RedOutLine"
{
Properties
{
_Switch("Value",Range(0,1)) = 0
_MainTex("Texture",2D) = "white"{}
_BumpMap("Bumpmap",2D) = "bump" {}
_RimColor("RimColor",Color) = (0.26,0.19,0.16,0.0)
_RimPower("RimPower",Range(0.5,8.0)) = 3.0
}
SubShader
{
Tags{
"RenderType" = "Opaque"
}
CGPROGRAM
#pragma surface surf Lambert
struct
Input {
float2 uv_MainTex;
float2 uv_BumpMap;
float3 viewDir;
};
sampler2D _MainTex;
sampler2D _BumpMap;
float4 _RimColor;
float _RimPower;
float _Switch;
void
surf(Input IN, inout SurfaceOutput o) {
o.Albedo =
tex2D(_MainTex, IN.uv_MainTex).rgb;
o.Normal =
UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
half rim = 0;
if (_Switch != 0)
{
rim = 1.0 - saturate(dot(normalize(IN.viewDir), o.Normal));
}
//saturate
//限制值于[0,1]之间
o.Emission = _RimColor.rgb * pow(rim, _RimPower);
}
ENDCG
}
Fallback "Diffuse"
}
"OutLine/RedOutLine"
{
Properties
{
_Switch("Value",Range(0,1)) = 0
_MainTex("Texture",2D) = "white"{}
_BumpMap("Bumpmap",2D) = "bump" {}
_RimColor("RimColor",Color) = (0.26,0.19,0.16,0.0)
_RimPower("RimPower",Range(0.5,8.0)) = 3.0
}
SubShader
{
Tags{
"RenderType" = "Opaque"
}
CGPROGRAM
#pragma surface surf Lambert
struct
Input {
float2 uv_MainTex;
float2 uv_BumpMap;
float3 viewDir;
};
sampler2D _MainTex;
sampler2D _BumpMap;
float4 _RimColor;
float _RimPower;
float _Switch;
void
surf(Input IN, inout SurfaceOutput o) {
o.Albedo =
tex2D(_MainTex, IN.uv_MainTex).rgb;
o.Normal =
UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
half rim = 0;
if (_Switch != 0)
{
rim = 1.0 - saturate(dot(normalize(IN.viewDir), o.Normal));
}
//saturate
//限制值于[0,1]之间
o.Emission = _RimColor.rgb * pow(rim, _RimPower);
}
ENDCG
}
Fallback "Diffuse"
}
相关文章推荐
- Redis介绍 && Java客户端操作Redis
- 应用RecyclerView实现Gallery相册效果——注意引入recyclerview-v7的版本
- TS流格式(转)
- .Net StackFrame
- leetcode 之 Longest Increasing Subsequence
- shell写多行到文件中
- 更新svn地址
- 贪心算法 活动安排问题
- hdu 1254(dfs+bfs+优先队列)
- 相机跟随主角移动,并带有延迟效果
- [资源] Visual Studio 2015正式版离线iso及在线下载,附专业版和企业版可用key!
- 做项目时一个listview 里面嵌套ediTtext 滑动之后 保存数据
- JAVA书写规范、命名规范
- 面试题29 数组中超过一半的数字
- 移动开发(webapp)过程中的小细节总结
- Postman 安装 & 资料
- 基础理解2:CSS3按钮动画
- python开发总结
- gridview易忘点集合
- LightOJ 1403 Air Raid 最小路径覆盖