着色 Shading,漫反射,高光,环境光,Blinn-Phong 反射模型,Flat Shading,Gouraud Shading,图形管线 Graphics Pipeline渲染总结
着色 Shading
shading:The darkening or coloring of an illustration or diagram with parrel lines or a block of color.
用平行线或色块使插图或图表变暗或上色
着色:对不同物体应用不同材质(material)的过程。
基本定义
着色点
计算某一着色点(shading point)对于相机的光照。
输入(v,n,l,长度都是1):
- 观察方向,v
- 表面法线,n
- 光照方向,l
- 物体表面的参数(颜色、shiniess…)
注意:
着色具有局部性(不用考虑阴影)。
漫反射
当一束平行的入射光线射到粗糙的表面时,表面会把光线向着四面八方反射,所以入射线虽然互相平行,由于各点的法线方向不一致,造成反射光线向不同的方向无规则地反射,这种反射称之为“漫反射”或“漫射”。对于漫反射,所有观测方向颜色是相同的
高光
高光,指画面调子最亮的一个点,表现的是物体直接反射光源的部分,多见于质感比较光滑的物体。
环境光
环境光为场景提供恒定照明。 它会无差别地点亮所有对象顶点。 环境光在所有方向都是恒定的,并且会无差别地为某个对象的所有像素上色。 这是一种快速计算,但会让对象看上去扁平且不逼真。
注意:
分析出漫反射、高光、环境光就可以定义出材质。
计算shading point能接收多少光
shading point法线角度的不同,会使得吸收的光照不同
根据点距光源距离求光强
光的能量会随着距离衰减,如下图所示。
获取漫反射(Diffuse)的反射光
下面的公式是到达的能量乘接收的能量,即为最终反射的能量。(着色与观测方向无关)
计算出一个三维向量表示颜色。漫反射与观察的方向没有关系。
光照方向比较亮,接收的能力较多,背面接收的能力少相对较暗。
高光项(Specular Term)
入射光通过反射进入人眼就会形成高光,为了方便表示,使用法线与半程向量(入射光和反射光的中线)的夹角余弦来表示高光的强弱。
用夹角余弦不合适,变化的太慢,高光面积太大。
镜面反射系数是亮度,p增大,高光点变小。
环境光项 Ambient Term
环境光很复杂,所以假设任何一个点接收的环境光都是相同的为Ia
环境光其实是一个常数
Blinn-Phong 反射模型
将三项相加,得到反射模型的结果。
着色频率 Shading Frequency
色频率
着色模型(频率)就是如何运用(也可以不用)光照模型计算的结果显示由多边形表示的曲面。就是说着色应用在哪些点上。
这三个球几何构造完全相同,着色频率不同。第一个着色应用在平面上,第二个着色应用在顶点上,第三个着色应用在像素上。
Flat Shading —— 对每一个三角形着色
一个三角形面一个颜色(三角形的法线通过两边的叉积获得)
Gouraud Shading —— 对每个顶点着色
求出每个顶点的法线后,构成三角形,对三角形内部的颜色做插值。
常使用周围平面法线的加权平均来计算顶点的法线。
获得逐像素的法线
通过重心坐标获得法线
三种渲染的结果
三种着色模型没有最好的,对于点比较密集的图像,使用Face着色效果也不错,而且计算量小。
图形管线 Graphics Pipeline / 实时渲染管线 Real-time Rending
总结: 首先输入空间点信息,经过MVP变换投影到屏幕上,这些点形成三角形,但是屏幕是离散的像素点,通过光栅化将三角形离散为许多像素点(fragment),通过着色赋予颜色,最终形成一张图。这些操作已经在GPU中写好了。
顶点和三角形变换处理
MVP变换
光栅化
将三角形离散为多个像素点。
判断是否可见(深度缓存)
Shading 在顶点和像素都会发生
对顶点做shading得在第一步,对三角形,像素做着色得在第四步(即产生像素了才能着色)
shader就是控制像素和顶点如何着色的。
Shader Programs
对每个顶点和每个像素都会执行(不用写for循环)。有顶点着色器 (vertex shader)和片段着色器(fragment shader) (也称为像素着色器)
GLSL着色器例子
推荐:https://www.shadertoy.com/
着色 Shading,漫反射,高光,环境光,Blinn-Phong 反射模型,Flat Shading,Gouraud Shading,图形管线 Graphics Pipeline渲染总结相关推荐
- 问题六十八:着色模型(shading model)(1)——反射模型(reflection model)(2.2)——高光反射(specular reflection)
和diffuse reflection对应的是specular reflection.一直以来,本人都将"specular reflection"理解为"镜面反射&quo ...
- 问题六十八:Phong反射模型的C++实现
1 Phong反射模型 这一章节,我们将实现Phong反射模型. 环境光的部分:先不解释,后面来填这个坑: 漫反射光和高光反射光部分: 入射光(光源)的辐射率: 入射光和表面法向量的夹角的余弦值: 可 ...
- Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”
1,理论介绍 完整标题应该是:当"三角形网格细分后的"Bezier曲面(Utah Teapot)同时遇上"噪声纹理"和"Phong反射模型" ...
- 问题六十八:着色模型(shading model)(1)——反射模型(reflection model)(2.1)——漫反射(diffuse reflection)
68.1.2.1.1 漫反射光 前面,我们有这么一张图: 为了突出光子和表面里面的原子相互作用,还是用画得更为夸张的图好了.(注意:只关注蓝色光线.) 关于"漫反射光"(上图中的蓝 ...
- 问题六十八:BRDF——(着色模型(shading model)(1)——反射模型(reflection model)(3.2))
1 BRDF 1.1 BRDF 在前一章节,我们已经知道,在给图形着色时,反射光线的辐射率(Radiance)即为颜色值.结合之前的反射模型,我们知道:反射光线在某方向的辐射率可以根据入射光线的强度和 ...
- 问题六十八:着色模型(shading model)(1)——反射模型(reflection model)(1)——概述
"反射模型"和"光照模型" 这两个概念好像经常被等价使用.作者为了更好理解其他相关概念,对"反射模型"和"光照模型"做如 ...
- 问题六十八:着色模型(shading model)(1)——反射模型(reflection model)(3.1)——辐射学(Radiometry)
前面,我们已经学习了各种反射模型.罗列如下. 漫反射模型: 高光反射模型: 根据这些模型,我们已经可以进行编程,然后生成图形.但是,为了加强这些模型的数学基础,我们引入辐射学(Radiometry)的 ...
- Blinn-Phong反射模型
前言 在这一章中,实现光线与对象表面之间的相互作用.目的是在渲染流水线中增加着色功能,所以这里只讨论最基础的局部光照模型.与全局光照不同,在局部光照模型中,着色点的颜色值只取决于着色点表面的材质属性. ...
- 【译】【PyOpenGL教程-介绍着色器】 漫反射、环境光、平行光
漫反射.环境光.方向光 原文地址:http://pyopengl.sourceforge.net/context/tutorials/shader_5.html 本教程在以往教程的基础上添加了: 环境 ...
最新文章
- sqlite的速度_内存不够用还要速度快,终于找到可以基于 File 的 Cache 了
- X86嵌入式主板在IOT网关产品的应用
- 线程八锁,同步锁的应用
- 将数据库中一张表中数据复制到另一张表
- “云手机”是否会成为未来的主流?
- Android widget开发有感
- redies基本数据结构
- SEO小白利用老域名将2个百度指数1000+的词快速上排名的案例
- 三星手机如何通过Exchange账户同步联系人到手机中?
- 西安建筑科技大学计算机系专业怎么样,西安建筑科技大学好就业吗?附西安建筑大学就业年薪...
- python数据库-3
- TL-WR886N密码JS加密
- 前NASA气象学家洛夫洛克宣判地球死刑
- Windows电脑系统锁屏界面壁纸如何获取
- 中国重型搅拌机市场深度研究分析报告
- ubuntu 升级后无法连接wifi问题(Wireless 8265 / 8275网卡)
- WordCount操作步骤
- python渐变色代码_Python 生成纯色或渐变色图片
- ARTS Week 33
- iOS图片打马赛克的实现方式--------终极解决方案
热门文章
- python 迅雷 批量下载电影天堂电影
- 智微JMS901量产工具软件+固件,JMS901双接口U盘成功量产教程分享
- mysql创建用户名和密码
- 解决Java.lang.NoClassDefFoundError:com/lowagie/text/Elemen的问题
- idea 启动报错: Failed to create JVM.JVM.Path XXXXXXX\jbr\ 我的解决办法
- Android的数据存储之一------SharedPreferences
- 首架无人机运送移植器官 有助于克服延误状况
- 计算机基础职中,职业高中计算机基础试卷一
- 吻过你这三个地方的男人,定是对你动了真情,错不了
- 虚拟机 Centos8 服务器密码忘了