Shader 渐变纹理贴图参考代码
来源:互联网 发布:软件测试教学视频 编辑:程序博客网 时间:2024/06/06 18:18
贴图是一个渐变色
Shader "wacky/s11 shader Ramp Texture"{ Properties{ _Color("Color Tint",Color) = (1,1,1,1) _RampTex("Ramp Texture",2D) = "white"{} _Specular("Specular",Color) = (1,1,1,1) _Gloss("Gloss",Range(10,200)) = 20 } SubShader{ Pass{ Tags {"LightMode" = "ForwardBase"} CGPROGRAM #include "Lighting.cginc" #pragma vertex vert #pragma fragment frag fixed4 _Color; sampler2D _RampTex; float4 _RampTex_ST; fixed4 _Specular; float _Gloss; struct a2v{ float4 vertex:POSITION; float3 normal:NORMAL; float4 texcoord:TEXCOORD0; }; struct v2f{ float4 pos:SV_POSITION; float3 worldNormal:TEXCOORD0; float3 worldPos:TEXCOORD1; float2 uv:TEXCOORD2; }; v2f vert(a2v v){ v2f f; f.pos = UnityObjectToClipPos(v.vertex); f.worldNormal = UnityObjectToWorldNormal(v.normal); f.worldPos = mul(unity_ObjectToWorld,v.vertex); f.uv = TRANSFORM_TEX(v.texcoord,_RampTex); return f; } fixed4 frag(v2f f):SV_Target{ fixed3 worldNormal = normalize(f.worldNormal); //世界法线 fixed3 worldLightDir = normalize(UnityWorldSpaceLightDir(f.worldPos)); //世界灯光 fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz; //环境光 fixed halfLambert = 0.5 * dot(worldNormal,worldLightDir) + 0.5; //半兰波特漫反射 fixed3 diffuseColor = tex2D(_RampTex,fixed2(halfLambert,halfLambert)).rgb * _Color.rgb; //漫反射贴图 fixed3 diffuse = _LightColor0.rgb * diffuseColor; //漫反射 fixed3 viewDir = normalize(UnityWorldSpaceViewDir(f.worldPos)); //相机方向 fixed3 halfDir = normalize(worldLightDir + viewDir); //平分线 fixed3 specular = _LightColor0.rgb * _Specular.rgb * pow(max(0,dot(worldNormal,halfDir)),_Gloss); //高光反射 return fixed4(diffuse + specular + ambient,1); } ENDCG } } Fallback "Specular"}
阅读全文
0 0
- Shader 渐变纹理贴图参考代码
- Shader 遮罩纹理贴图参考代码笔记
- Shader 法线贴图参考代码
- Shader 标准贴图代码参考笔记
- Untiy Shader - 纹理贴图滚动
- 立方体纹理贴图代码
- OPENGL 纹理贴图 过滤 mipmaps (shader)
- Unity Shader学习笔记:渐变纹理
- 透明通道图纹理贴图渐变色效果
- Unity Shader 学习笔记(十二) 创建程序纹理贴图
- 【Aladdin Unity3D Shader编程】之四 贴图纹理
- Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图
- Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图
- Unity Shader入门精要笔记(十四):渐变纹理
- 纹理贴图
- 纹理贴图
- 纹理贴图
- 纹理贴图
- Yii 简明学习教程
- Git命令
- [PlantSimulation]Transporter运输工具的详细用法(三)
- merge conflicts in Git
- Andy's First Dictionary
- Shader 渐变纹理贴图参考代码
- shared_ptr基于引用计数智能指针实现
- 应对我院C++上机考试/作业的一些小技巧
- 进程 fork exec,wait/waitpid
- yum删除与回滚
- Datagridview解决列中间有空值时的排序出错问题
- 并查集详解
- laravel关闭浏览器释放session
- MPI介绍与实践——理论介绍