高光反射的Shader(Phong)----逐顶点
公式:Cspecular=(Clight*Mspecular)MAX(0,v,r)的m(gloss)幂
Clight:入射光线的颜色和强度
Mspecular:高光反射系数
v:视角方向
n:反射方向
函数:reflect(i,n)

可由反射方向r和表面法线n求得入射方向的l
*** r=l-2(n·l)n***
???怎么求得???
看一下这个
添加链接描述
https://blog.youkuaiyun.com/yinhun2012/article/details/79466517
优快云
Shader "Unlit/specular vertex"
{
Properties {
_Diffuse ("Diffuse", Color) = (1, 1, 1, 1) //漫反射的颜色
_Specular ("Specular", Color) = (1, 1, 1, 1)//反射颜色
_Gloss ("Gloss", Range(8.0, 256)) = 20//高光区域的大小
}
SubShader {
Pass {
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;
}

这篇博客探讨了Unity中基础光照的实现,特别是聚焦于高光反射的Shader。文章详细介绍了Phong光照模型的逐顶点计算,包括公式Cspecular=(Clight*Mspecular)*MAX(0,v,r)^m(gloss),并解释了如何从反射方向r和表面法线n求得入射方向l。此外,还讨论了逐像素的高光处理,并引入了Blinn-Phong光照模型,该模型通过Cspecular=(Clight*m(specular))*MAX(0,n,h)^m(gloss)的公式简化了高光计算,给出了不同光照模型的视觉效果。"
137128675,5653805,TypeScript深入学习:类的访问修饰符解析,"['typescript', '类的访问修饰符']
最低0.47元/天 解锁文章
558

被折叠的 条评论
为什么被折叠?



