洞察探索如何利用兼容微信生态的小程序容器,实现跨平台开发,助力金融和车联网行业的数字化转型。
1406
2022-11-20
Gouraud 着色(双线性光强插值法)、Phong 着色、Blinn-Phong 反射模型区别
openGL系列文章目录
文章目录
openGL系列文章目录前言一、Gouraud 着色(双线性光强插值法)二、phong着色三、Blinn-Phong反射模型总结源码-
前言
openGL光照模型有三种:
Gouraud 着色(双线性光强插值法)Phong 着色Blinn-Phong 反射模型有什么区别呢?
3.Blinn-Phong 反射模型效果
一、Gouraud 着色(双线性光强插值法)
Gouraud 着色过程如下。 (1)确定每个顶点的颜色,以及光照相关计算。 (2)允许正常的光栅化过程在插入像素时对颜色也进行插值(同时也对光照进行插值)。 在OpenGL 中,这表示大多数光照计算都是在顶点着色器中完成的,片段着色器仅做传 递并展示自动插值的光照后的颜色。
二、phong着色
Bui Tuong Phong 在犹他大学的研究生期间开发了一种平滑的着色算法,在1973 年的论 文[PH73]中对其进行了描述,并在[PH75]中发表。该算法的结构类似于Gouraud 着色的算法,其 不同之处在于光照计算是按像素而非顶点完成。由于光照计算需要法向量N 和光向量L, 但在模型中仅顶点包含这些信息,因此Phong 着色通常使用巧妙的“技巧”来实现,其中N 和L 在顶点着色器中进行计算,并在光栅化期间插值。
三、Blinn-Phong反射模型
虽然Phong 着色有着比Gouraud 着色更真实的效果,但这是建立在增大性能消耗的基础 上的。James Blinn 在1977 年提出了一种对于Phong 着色的优化方法[BL77],被称为Blinn-Phong 反射模型。这种优化是基于观察到Phong 着色中消耗最大的计算之一是解出反射向量R。 Blinn 发现向量R 在计算过程中并不是必需的——R 只是用来计算角φ 的手段。角φ 的 计算可以不用向量R,而通过L 与V 的角平分线向量H 得到。如图1 所示,H 和N 之 间的角α 刚好等于1⁄2(φ)。虽然α 与φ 不同,但Blinn 展示了使用α 代替φ 就已经可以获得 足够好的结果。 角平分线向量可以简单地使用L+V 得到(见图2),之后cos(α)可以通过•) )H N的点积计算。
总结
openGL三种光照模型 1.Gouraud 着色 2.phong着色 3.Blinn-Phong反射模型 这三种光照程序中都有,主程序是一样的,只有着色器不一样
源码-
源码-
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~