光照模型

3D渲染中, 物体表面的光照计算公式为:

I = 环境光(Iambient) + 漫反射光(Idiffuse) + 镜面高光(Ispecular);

其中,环境光(ambient)计算公式为:

Iambient = Aintensity * Acolor ;             (Aintensity表示环境光强度,Acolor表示环境光颜色)

漫反射光(diffuse)计算公式为:

Idiffuse = Dintensity*Dcolor*N.L ;                   (Dintensity表示漫反射强度,Dcolor表示漫反射光颜色,N为该点的法向量,L为光源向量)

镜面光照(specular)计算公式为:

Ispecular = Sintensity*Scolor*(R.V);         (Sintensity表示镜面光照强度,Scolor表示镜面光颜色,R为光的反射向量,V为观察者向量)

综上所得:整个光照公式为:

I = Aintensity * Acolor + Dintensity*Dcolor*N.L + Sintensity*Scolor*(R.V)n ;

将一些值合并,并使用白色作为光照颜色,则上述公式可简化为:

I = A + D*N.L + (R.V)n

转载于:https://www.cnblogs.com/wonderKK/archive/2012/04/10/2441425.html

(转)基本光照模型公式相关推荐

  1. (转)光照模型及cg实现

    经典光照模型(illumination model) 物体表面光照颜色由入射光.物体材质,以及材质和光的交互规律共同决定. 由于环境光给予物体各个点的光照强度相同,且没有方向之分,所以在只有环境光的情 ...

  2. 兰伯特光照模型(Lambert Lighting)和半兰伯特光照模型(Half-Lanbert)

    关于漫反射 光打到凹凸不平的平面上,光线会被反射到四面八方,被称为漫反射 关于这种模型,由于光线由于分散,所以进入人眼的光线强度和观察角度没有区别 在A点和B点接收到的光线强度是一样的 在漫反射下,光 ...

  3. WebGL光照模型渲染立方体

    WebGL光照渲染立方体 本文是WebGL电子书的1.9节内容 本节课对WebGL光照的介绍主要目的是让你对WebGL光照,以及如何在代码层面实现WebGL光照算法有个大致的轮廓认知,计算机图形学中关 ...

  4. Unity Shader漫反射光照模型与半兰伯特光照模型

    文章目录 一.基础光照模型中漫反射部分的计算公式 二.逐顶点光照实现 逐顶点代码 逐顶点效果图 三.逐像素光照模型实现 逐像素代码 逐像素效果图 四.半兰伯特光照模型实现 广义半兰伯特光照模型公式 半 ...

  5. Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照

    转自冯乐乐的<Unity Shader入门精要> 通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象. 首先,光线从光源中被发射出来. 然后,光线和场景中的一些物体相交 ...

  6. 7.Phong 和 BlinnPhong

    Lambert漫反射光照模型,这是一个用来模拟粗糙表面对光线的漫反射现象的经验模型,对于纸张.粗糙墙壁等等来说,这个模型或许够用,但对于金属这样的光滑表面来说,我们就需要使用Phong模型来模拟光滑表 ...

  7. OpenGL 的渲染流水线

    一.渲染:计算机根据模型创建图象.模型(或物体)是由几何图元构成的,而几何图元是通过顶点来指定的.最终渲染的图象由屏幕像素组成.像素(pixel)是显示硬件能够放置到屏幕上的最小的可视元素.有关像素的 ...

  8. 【GAMES101】作业3 Pipeline and Shading

    [GAMES101]作业3 Pipeline and Shading 一.作业描述 二.作业解析 **1. blinn-phong模型** **漫反射光** **高光** **环境光** **漫反射+ ...

  9. Three.js基础探寻七——Lamber材质与Phong材质

    材质(Material)是独立于物体顶点信息之外的与渲染效果相关的属性.通过设置材质可以改变物体的颜色.纹理贴图.光照模式等. 本篇将介绍基本材质以及两种基于光照模型的材质(Lamber与Phong) ...

最新文章

  1. 每日算法练习之下落的小球
  2. Domain Driven Design
  3. 考虑 PHP 5.0~5.6 各版本兼容性的 cURL 文件上传
  4. 公共界面_小区公共区域广告收益究竟归谁?
  5. nodeJS 事件绑定
  6. C和指针笔记 3.8 static关键字
  7. 为Mac安装homebrew
  8. TCP三次握手及四次挥手详解
  9. 打包node服务端_如何基于NodeJS从零构建线上自动化打包工作流?
  10. 月薪3W+,人才缺口高达19W,行业大牛5天带你零基础入门数据分析!
  11. Ubuntu 使用 Cron 实现计划任务
  12. 氨基-peg2000-水溶CulnS/ZnS量子点|NH2-PEG-CulnS/ZnSQDS的透射电镜(TEM)和高分辨透射电镜(HRTEM)图片
  13. 二值图像快速细化算法
  14. 国庆假期微信大数据报告
  15. WiFi共享精灵文件传输新功能:金币话费领不停
  16. 在html中frame标签的作用,HTML中的frame标签常见的6大属性,新手一定要悉知!
  17. python爬虫从入门到实践pdf百度云_PYTHON网络爬虫从入门到实践.pdf
  18. ubuntu中创建新用户并添加管理员权限
  19. 杠杆炒股的两种操作方法
  20. [Violet]蒲公英(分块)

热门文章

  1. 如何在重装SAV10.1/SCS3.1服务器后继续管理原来的客户端
  2. c++ qt获取电脑的内存_QT开发(十四)——QT绘图系统
  3. geany配置python3.8_Parrot security 4.10-amd64
  4. java stub_Java Stub 研究学习(2)
  5. 批量文件替换_CAD图形文件中如何快速批量替换文字?【AutoCAD教程】
  6. 3-29Pytorch与autograd梯度与机器学习
  7. php 什么情况下加异常,PHP中的异常
  8. java中复制图片_如何在Java中实现复制图片
  9. SpringCloud Consul Config 配置中心(一)
  10. 鸿蒙服务卡片-哔哩哔哩弹幕姬