Shader 遮罩纹理贴图参考代码笔记
来源:互联网 发布:linux合并两个文件夹 编辑:程序博客网 时间:2024/05/29 04:46
//遮罩纹理的基本作 用于保护某些区域使它们免于被修改。存储逐象素控制的表面属性。
Shader "wacky/s12 shader Mask Texture"{ Properties{ _Color("Color Tint",Color) = (1,1,1,1) _MainTex("Main Tex",2D) = "white"{} _BumpMap("Bump Map",2D) = "bump"{} _BumpScale("Bump Scale",Float) = 1.0 _SpecularMask("Specular mask",2D) = "white"{} _SpecularScale("Specular Scale",Float) = 1.0 _Specular("Specualr",Color) = (1,1,1,1) _Gloss("Gloss",Range(8,256))=20 } SubShader{ Pass{ Tags{"LightMode" = "ForwardBase"} CGPROGRAM #include "Lighting.cginc" #pragma vertex vert #pragma fragment frag fixed4 _Color; sampler2D _MainTex; float4 _MainTex_ST; sampler2D _BumpMap; float _BumpScale; sampler2D _SpecularMask; float _SpecularScale; fixed4 _Specular; half _Gloss; struct a2v{ float4 vertex:POSITION; float3 normal:NORMAL; float4 tangent:TANGENT; float4 texcoord:TEXCOORD0; }; struct v2f{ float4 pos:SV_POSITION; float2 uv:TEXCOORD0; float3 lightDir:TEXCOORD1; float3 viewDir:TEXCOORD2; }; v2f vert(a2v v){ v2f f; f.pos = UnityObjectToClipPos(v.vertex); f.uv.xy = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw; //乘缩放,加编移 TANGENT_SPACE_ROTATION; //切线空间转换宏 f.lightDir = mul(rotation, ObjSpaceLightDir(v.vertex)).xyz; f.viewDir = mul(rotation,ObjSpaceViewDir(v.vertex)).xyz; return f; } fixed4 frag(v2f f):SV_Target{ fixed3 tangentLightDir = normalize(f.lightDir); fixed3 tangentViewDir = normalize(f.viewDir); fixed3 tangentNormal = UnpackNormal(tex2D(_BumpMap,f.uv)); tangentNormal.xy *= _BumpScale; tangentNormal.z = sqrt(1.0-saturate(dot(tangentNormal.xy,tangentNormal.xy))); fixed3 albedo = tex2D(_MainTex,f.uv).rgb * _Color.rgb; fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.rgb * _Color.rgb; fixed3 diffuse = _LightColor0 * albedo * max(0,dot(tangentLightDir,tangentNormal)); fixed3 halfDir = normalize(tangentLightDir + tangentViewDir); fixed specularMask = tex2D(_SpecularMask,f.uv).r * _SpecularScale; fixed3 specular = _LightColor0.rgb * _Specular.rgb * pow(max(0,dot(tangentNormal,halfDir)),_Gloss) * specularMask; return fixed4(ambient + diffuse + specular,1.0); } ENDCG } } Fallback "Diffuse"}
阅读全文
0 0
- Shader 遮罩纹理贴图参考代码笔记
- Shader 渐变纹理贴图参考代码
- Shader 标准贴图代码参考笔记
- Shader 法线贴图参考代码
- Unity Shader学习笔记:遮罩纹理
- Unity Shader 学习笔记(十二) 创建程序纹理贴图
- Untiy Shader - 纹理贴图滚动
- [shader]纹理遮罩
- 立方体纹理贴图代码
- Unity Shader入门精要笔记(十五):遮罩纹理
- OPENGL 纹理贴图 过滤 mipmaps (shader)
- Shader 透明度测试参考代码笔记
- 《unity shader入门精要》学习笔记--渐变纹理与遮罩纹理
- Unity Shader 学习笔记(9) 渐变纹理、遮罩纹理
- unity shader学习笔记(七)——Unity中的基础纹理之遮罩纹理
- 【Aladdin Unity3D Shader编程】之四 贴图纹理
- Shader标准光照模型 带高光反射代码参考笔记
- Shader自学笔记 3.3.2 采样遮罩纹理 使高光部分更加柔和
- Canvas实现多个圆形进度条显示百分比,并绑定各自的click事件
- Spring mvc项目上下文启动流程解析
- js添加、移除、移动、复制、创建和查找节点
- 做表要点
- <h1>测试博客</h1><script type="text/javascript">alert(456);</script>
- Shader 遮罩纹理贴图参考代码笔记
- Dubbo架构设计详解
- socket编程之解决流协议的粘包问题(二)
- jQuery 监听修改文本框事件
- windows开机后一键启动应用程序
- C#多线程编程之线程池的使用 (ThreadPool)
- Failed to load JavaHL Library
- A
- container和container-fluid之间的区别