【Unity Shader】逐顶点高光反射
创始人
2024-11-14 03:06:11
0
Shader "Unlit/SpecularVertexLevelMat" {     Properties     {         _Diffuse("Difuse", Color) = (1, 1, 1, 1)    //漫反射颜色属性         _Specular("Specular", Color) = (1, 1, 1, 1)     //高光反射颜色         _Gloss("Gloss", Range(8.0, 256)) = 20       //控制高光区域大小     }      SubShader{         Pass{             //LightMode 定义Pass在Unity光照流水线中的角色             Tags{"LightMode" = "ForwardBase"}                          CGPROGRAM              #pragma vertex vert             #pragma fragment frag                          #include "Lighting.cginc"             fixed4 _Diffuse;             fixed4 _Specular;             float _Gloss;              struct a2v{                 float4 vertex : POSITION;                 float3 normal : NORMAL;             };              struct v2f{                 float4 pos : SV_POSITION;                 fixed3 color : COLOR;             };              v2f vert(a2v v){                 v2f o;                 o.pos = UnityObjectToClipPos(v.vertex);                 fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz;                  fixed3 worldNormal = normalize(mul(v.normal, (float3x3)unity_WorldToObject));                 fixed3 worldLightDir = normalize(_WorldSpaceLightPos0.xyz);                  fixed3 diffuse = _LightColor0.rgb * _Diffuse.rgb * saturate(dot(worldNormal, worldLightDir));                  // 反射方向 = l - 2(n · l)n ,函数reflect(i, n) i代表入射方向, n代表法线方向                 fixed3 reflectDir = normalize(reflect(-worldLightDir, worldNormal));                 //viewDir指物体表面顶点指向相机位置的方向                 fixed3 viewDir = normalize(_WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, v.vertex).xyz);                 //高光反射 = 入射光颜色强度 * 材质高光反射系数 * Max(0, 视角方向 · 反射方向)^ 光泽度                 fixed3 specular = _LightColor0.rgb * _Specular.rgb * pow(saturate(dot(reflectDir, viewDir)), _Gloss);                  o.color = ambient + diffuse + specular;                  return o;             }              fixed4 frag(v2f i) : SV_Target{                 return fixed4(i.color, 1.0);             }             ENDCG         }     }     Fallback "Specular" }  

相关内容

热门资讯

透视资料!wepoker游戏安... 透视资料!wepoker游戏安装教程,wepoker开辅助能查到吗(脚本)有挂教程(竟然是真的挂)-...
透视开挂!wpk俱乐部辅助器(... 透视开挂!wpk俱乐部辅助器(透视)wpk模拟器是什么,教程绝活儿(有挂详细)-哔哩哔哩1、不需要A...
透视绝活!wepoker怎么设... 透视绝活!wepoker怎么设置盖牌,wepoker怎么设置透视(脚本)解迷教程(一贯是有挂)-哔哩...
透视解密!wpk安卓下载辅助(... 透视解密!wpk安卓下载辅助(透视)wpk辅助购买,教程手段(有挂解密)-哔哩哔哩运wpk安卓下载辅...
透视方针!wepoker线上大... 透视方针!wepoker线上大神,we-poker靠谱吗(脚本)科普教程(一贯真的是有挂)-哔哩哔哩...
透视有挂!wpk免费辅助(透视... 透视有挂!wpk免费辅助(透视)wpk俱乐部是真的吗,教程方针(有挂透视)-哔哩哔哩1、完成wpk俱...
透视手段!wepoker有人用... 透视手段!wepoker有人用过吗,wepoker亲友圈有用吗(脚本)推荐教程(一直是真的挂)-哔哩...
透视详细!如何下载wpk透视版... 透视详细!如何下载wpk透视版(透视)wpk刷入池率脚本,教程总结(有挂方略)-哔哩哔哩1)如何下载...
透视诀窍!wepoker透视辅... 透视诀窍!wepoker透视辅助下载,wepoker透视脚本网页(脚本)有挂教程(本来是真的挂)-哔...
透视详情!wpk透视辅助靠谱吗... 透视详情!wpk透视辅助靠谱吗(透视)wpk显示有透视,教程攻略(今日头条)-哔哩哔哩在进入wpk透...