Blinn-Phong模型像素着色原理
Shading着色
定义:对不同物体定义不同材质的过程
Ambient lighting 环境光
定义一个像素点
Diffuse Reflection 漫反射
漫反射原理
接收光
Lambert’s余弦定律:接收到的能量和光照方向与法线方向的余弦值成正比
反射光
如下图,在密封的求壳,若对第一个壳(半径为1)中任意点光照强度为l,则总能量应为4πI,根据能量守恒,越外层的点,光照强度最低,对于最外层的壳(半径为r),则点能量应为:I'=4πI/4πr2=I/r2
根据接收光和反射光原理,最终光照结果应该为如下公式
反射率×接收到的光照×反射的光照
式中:
Kd是指一个反射率,当吸收所有光时,反射率为0,应该是黑色,当反射所有光时,反射率为1,应该为白色
I/r2是接收光
n·L是Lambert’s余弦定律反射的光,当小于0时没有物理意义
高光
当镜面反射R与实际反射V足够接近时,就会产生高光(R为镜面反射,V为实际反射)
演化为镜面反射法线n与实际反射法线h足够接近时,就会产生高光
演化的原因是h好算,只要向量相加除模长即可
如下图,Ks与高光亮度成正比,p与高光大小成反比
环境光
环境光因为过于复杂,所以通常用常量来表示
Ka为颜色,Ia为一个光照的常量
blinn phong模型三种光相加后的结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器