OpenGL之图形流水线中的光照计算、明暗处理

1.1 光照计算发生在图形流水线的Vertex Operations中,只计算每个顶点的颜色,而三角形内部的点的颜色在Fragment Operations阶段通计算,这样效率高,因为像素的数量远远大于顶点的数量。
在这里插入图片描述

1.2 计算三角形内每个像素的颜色的过程,称为shading,也称明暗处理、着色。几种常见处理方法有:

  • 常数明暗处理
  • Gouraud 明暗处理
  • Phong 明暗处理

1.3 常数明暗处理

每个面片内所有像素都取同样的颜色,颜色来源于某个顶点的颜色。即对每个多边形只计算一个光照强度,然后用此值作为整个多边形平面的明暗值赋给多边形的每个像素,使多边形的每个点都具有相同的明暗度。
在这里插入图片描述

1.4 Gouraud 明暗处理

采用双线性插值的方式计算面片内像素的颜色,具体为:

  • 计算出多边形各个顶点的法向(对周围面片法向进行平均求得此顶点的法向);
  • 采用光照公式计算出各顶点的光亮度值;
  • 然后再对多边形顶点的光亮度进行“双线性插值”计算出多边形内任意片元的光亮度。
    在这里插入图片描述

双线性插值发生在光栅化阶段,会对多边形进行扫描转换,此时正好就可以再扫描过程中对每个片元进行双线性插值。
在这里插入图片描述

顶点层次处理的对象是顶点,Fragment operations阶段处理的是片元(像素)

1.5 在OpenGL中,主要分为Flat ShadingSmooth Shading
在这里插入图片描述

1.6 Gouraud 明暗处理问题

  • 曲面分割过粗可能产生错误效果;
  • 高光的丢失,如下图高光部分不规则,主要是由于插值不均匀导致的;
  • 马赫带效应(即高亮度变化率不连续的边界处呈现亮带或黑带);
    在这里插入图片描述
    在这里插入图片描述

1.7 Phong 明暗处理

主要思想是不插值光亮度颜色,而是插值法向量,因此也称为“法向量插值明暗处理”。对多边形顶点处法向量做双线性插值,将插值计算得到得多边形内各片元得法向量带入光亮度计算公式,得到各片元得光亮度。

  • 计算出多边形各顶点得法向;
    在这里插入图片描述
  • 对多边形中得某个片元,双线性插值计算其法向;
    在这里插入图片描述
  • 计算出多边形内片元得光亮度。

1.8 各明暗处理方法效果

  • Phong Shading模拟得高光效果更逼真,但由于模型本身精细度不高,轮廓并不光滑。
  • Phong明暗处理得缺点是计算量大;一般采用shader来实现;
    在这里插入图片描述
    在这里插入图片描述
  • Gouraud明暗处理:直接插值得到光亮度;
  • Phong 明暗处理:先插值得到法向量,再带入光照模型计算得到光亮度颜色;
  • Phong shading处理过程中,计算顶点在CPU中,双线性插值计算其法向发生在光栅化阶段;
  • 在Fragment operation阶段计算片元得光亮度;
  • 前两者是顶点级得光照计算,而Phong shading则是像素级别得光照计算;

1.9 其他明暗处理方法

  • 可以通过凹凸纹理来指定每个像素的法向或者高度值;如下中间的凹凸纹理,作用于一个面片的效果,可以产生凹凸不平的效果;
    在这里插入图片描述

1.20 OpenGL中只支持常数明暗处理和Gouraud 明暗处理,Phong Shading需要shader编程实现。

  • GL_FLAT:常数明暗处理;
  • GL_SMOOTH:采用Gouraud明暗处理;
glShadeModel(GLenum mode);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

教学5层网络体系结构——分层之后数据的发送和接收

协议分层后数据发送过程 发送方层层封装 接收方层层解封装 唯一加尾部的是数据链路层 思考 发送方某层封装完如何知道该交给哪个下层封装? 应用层选择传输层由应用程序决定,传输层选择网络层由固定的搭配,例如因特网只有IP协议&#x…

从视觉系统的原理入手 破解VR眩晕症

来源:EETimes编译:科技行者虚拟现实技术近年来迎来一波快速发展,适用范围也扩展到更多领域,引得众多老牌巨头纷纷参与。然而,VR技术自身仍存在一些极难解决的缺陷,如果无法攻克,技术的进一步普及…

小组会谈(2019.3.14)

一:会议主题 1.确定项目的立题 2.讨论需要实现的功能 3.确定小组成员之间的分工和完成各自任务的期限 二:会议地点 逸夫楼C座一楼 三:会议时间 2018年3月14日10:00--11:20 四:会议内容 1.项目的立题&#x…

应用层相关概念

一、应用层概述 1、应用层协议基本概念 应用层的功能 应用层协议定义了应用程序需交换的报文、所需采取的动作和最终通信数据的应用应用层位于协议栈的最高层次应用层协议提供不同主机之间进程与进程之间的通信用户代理实现应用层协议 套接字 IP端口号,唯一确定…

迎来智能数据分析的新时代

来源:知乎(ID:熊墨淼)最近两星期(7月15日,7月22日),《自然》杂志连续发表两篇DeepMind写的用人工智能的方法预测蛋白质三维结构的文章和NIH Director Francis Collins 写的博客 "Artificial Intelligence Accurately P…

2019春季第三周作业

2019年春季学期第三周作业基础作业 本周没上课,但是请大家不要忘记学习。 本周请大家完成上周挑战作业的第一部分:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。 例如:[1, -2, 3…

DNS域名系统详解

一、分层次的域名结构 顶级域名、 二级域名、 三级域名、 四级域名 二、因特网的域名结构 因特网采用了层次树状结构的命名方法,称为域名,如:www.jxnu.edu.cn 三级域名:如www表示万维网 二级域名:如jxnu表示江西师…

侯世达:让机器学习思考的人

图源:GREG RUFFING来源:利维坦文:James Somers原文:www.theatlantic.com/magazine/archive/2013/11/the-man-who-would-teach-machines-to-think/309529/译文原载:《新知》杂志侯世达(Douglas Hofstadter&a…

日记——2019-03-12

感遇(其一) 张九龄 兰叶春葳蕤,桂华秋皎洁。 欣欣此生意,自尔为佳节。 谁知林栖者,闻风坐相悦。 草木有本心,何求美人折? 我的爱人快乐而且善良,但是不容易,遇见——庞德…

www万维网和HTTP协议

万维网的相关概念 万维网的客户端程序 浏览器:IE、firefox、chrome 万维网的服务器端软件 IIS,Tomcat、Apache 万维网的模式 采用C/S模式 Web页面 由文字、图片、声音、视频等多种对象组成 HTTP协议 Web页面传输方式 如何标志分布在因特网上的…

游戏中应用强化学习技术,目的就是要打败人类玩家?

来源:AI前线作者:凌敏采访嘉宾:黄鸿波2016 年,DeepMind 公司开发的 AlphaGo 4:1 大胜韩国著名棋手李世石,成为第一个战胜围棋世界冠军的人工智能机器人,一时风头无两。AlphaGo 的巨大成功开启了“人工智能元…

HTTP报文的格式

一、HTTP请求报文的格式 两个回车换行表示首部的结尾注意:HTTP协议首部使用ASCII码作为编码方式HTTP请求报文提交表单时会包含数据 二、HTTP响应报文格式

Transformer走下神坛?南加州大学教授:想解决常识问题,神经网络不是答案

来源:nextgov转自:新智元编辑:LRS如果说人工智能和真正的人脑之间的差距,那最重要的就是机器缺乏生活中的常识。一切貌似合理、理所当然的事物在计算机眼中都是不可理解的。计算机不知道「柠檬是酸的」,「只有成熟的香…

FTP协议、电子邮件系统与Telnet远程控制

一、FTP协议概述 FTP定义 文件传输协议用于因特网文件传输 FTP特性 使用客户端/服务器模式使用TCP提供可靠的传输FTP属于维护状态的协议FTP使用两条TCP连接完成数据传输 FTP的两条连接 数据连接问题 当有具体文件或目录内容传输时,临时建立数据连接主动模式下…

吴志强院士:CIM与城市未来

▲吴志强:博士,教授,中国工程院院士,德国工程科学院院士,瑞典皇家工程科学院院士,同济大学原副校长,中国城市规划学会副理事长,中国2010年上海世博会园区总规划师,北京城…

传输层协议详解

一、传输层的概念和服务 1、传输层的基本概念 传输层负责端到端之间的数据传输控制传输层依赖于网络层的服务,对应用层提供传输服务 2、传输层的功能 跟踪会话 跟踪源主机和目的主机上应用程序间的每次通信 数据分段 将数据分段,并管理每个分段 …

在后SCI时代需要什么样的人才?

来源:秦四清科学网博客。链接地址:http://blog.sciencenet.cn/blog-575926-1302503.html近些年,国家陆续出台了一系列破“五唯”举措,这标志着后SCI 时代的到来。大家知道,创新是引领发展的第一驱动力,而创…

OpenGL之纹理过滤(Texture Filtering)、MipMap方法、纹理坐标

1.1 纹理过滤 像素、片元都是具有面积的,一个像素可能对应物体上的一小块区域,而物体上这个小区域对应于纹理图像上的一个小区域,因此一个像素的颜色可能来自于纹理中的一小个不规则区域,如果纹理的分辨率比较高,则这…

OpenGL之环境映射

1.1 环境映射(Environment Mapping) 具有光滑表面的物体会反射形成周围环境的影响,是一种环境光效果。 光线跟踪等(全局光照)可以实现这种效果,但是效率太低,可以采用环境映射技术就能快速实现。 1.2 环境映射技术 …

Nature对数千篇论文提出质疑:隐藏的细菌蛋白为自然界的“电网”提供动力

隐藏在细菌中的蛋白质在缺乏氧气的时候泵出纳米线,这本质上是“呼出”电子来源:耶鲁大学Nikhil Malvankar耶鲁大学的研究人员在《自然》杂志上报告说,一种隐藏在细菌内部的毛发状蛋白质充当了自然界“电网”的某种开关,“电网”是由细菌产生的…