【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" }  

相关内容

热门资讯

实测分享!桃乐甘肃麻将下载辅助... 实测分享!桃乐甘肃麻将下载辅助器,飞驰娱乐科技软件,练习教程(有挂神器)该软件可以轻松地帮助玩家将桃...
我来教大家!白银胡乐亲友房,上... 我来教大家!白银胡乐亲友房,上品游戏辅助器,课程教程(有挂透明挂)1、玩家可以在上品游戏辅助器透视最...
最新研发!微信小程序蜀山四川辅... 最新研发!微信小程序蜀山四川辅助器,杭州都莱辅助,指南教程(有挂技巧)一、微信小程序蜀山四川辅助器游...
一分钟了解!潮汕雀友会辅助,创... 一分钟了解!潮汕雀友会辅助,创思维激k辅助控制器,窍门教程(有挂教学)1、下载好创思维激k辅助控制器...
玩家必看科普!麻友圈插件,微信... 玩家必看科普!麻友圈插件,微信边锋辅助,学习教程(有挂秘籍)1、很好的工具软件,可以解锁游戏的微信边...
今日科普!乐乐围棋入门辅助,途... 今日科普!乐乐围棋入门辅助,途游辅助器,法子教程(有挂方法);小薇(辅助器软件下载)致您一封信;亲爱...
玩家必备攻略!欢聚水鱼天下辅助... 玩家必备攻略!欢聚水鱼天下辅助,微友助手破解版,要领教程(发现有挂)1、欢聚水鱼天下辅助透视辅助软件...
专业讨论!白金岛跑胡子脚本,多... 专业讨论!白金岛跑胡子脚本,多乐辅助器,手册教程(有挂神器)亲,关键说明,白金岛跑胡子脚本透视脚本安...
玩家科普!皮皮辅助软件,四川家... 玩家科普!皮皮辅助软件,四川家园辅助软件,演示教程(有挂细节)所有人都在同一条线上,像星星一样排成一...
一分钟教你!随意玩脚本辅助工具... 一分钟教你!随意玩脚本辅助工具透视,川南九九辅助,步骤教程(有挂详情)1、很好的工具软件,可以解锁游...