首页 > 其他 > 详细

OpenGL入门术语和概念

时间:2020-09-19 09:32:09      阅读:56      评论:0      收藏:0      [点我收藏+]

想学OpenGL,先把这些概念搞清楚,搞不清楚,你根本无从下手,边学边更新。

模型(model):或者叫场景对象,就是根据几何图元创建的物体。

渲染(render):就是计算机根据模型创建最终图像的过程。

着色器(shader):图形硬件(显卡)设备所执行的一类特殊函数。打个比方说,画画的时候我们经常有这么一个过程,先用铅笔打线稿,再上色。着色器就是这个工作过程。着色器通常分两种:
(1)顶点着色器(vertex shader)这个是告诉电脑如何打线稿的——如何处理顶点、法线等的数据的函数。
(2)片面着色器(fragment shader)这个是告诉电脑如何上色的——如何处理光、阴影、遮挡、环境等等对物体表面的影响,最终生成一副图像的小函数。

光栅化(Rasterize):是把顶点数据转换为片元的过程,具有将图转化为一个个栅格组成的图象的作用,特点是每个元素对应帧缓冲区中的一像素。就是把矢量图形转化成像素点儿的过程。我们屏幕上显示的画面都是由像素组成,而三维物体都是点线面构成的。要让点线面,变成能在屏幕上显示的像素,就需要Rasterize这个过程。

渲染管线:他是一系列处理过程,并将应用程序的数据转换到最终渲染的图像,说白了,就是流水线,来吧,我按流水线一步步处理。

顶点(vertexs):点是一切的基础。OpenGL提供了一系列函数画一个点。

图元(primitives):点、线、面等,采用glPointSize(), glLineWidth(), glLineStipple()和 glPolygonStipple()函数可以选择图元的光栅化维数和模式。另外,还可以用glCullFace(), glFrontFace()和glPolygonMode()控制多边形正反面不同的光栅化效果。

片元(fragments,又叫片断):图元被适当的裁剪,颜色和纹理数据也相应作出必要的调整,相关的坐标被转换为窗口坐标。最后,光栅化将裁剪好的图元转换为片元

像素:就是屏幕可刷出的像素点,有几个函数实现象素保存和转换。函数glPixelStore系列函数用于内存中的象素是如何保存的。glPixelTransfer系列函数 and glPixelMap系列函数用于象素在写入帧缓冲区前是如何处理的。glDrawPixels()定义了一个象素矩形。用glPixelZoom()实现象素的缩放。

顶点、图元、片元的关系:几何顶点被组合为图元(点,线段或多边形),然后图元被合成片元,最后片元被转换为帧缓存中的像素数据。图元被适当的裁剪,颜色和纹理数据也相应作出必要的调整,相关的坐标被转换为窗口坐标。最后,光栅化将裁剪好的图元转换为片元。

裁剪:进行修修补补,在裁剪时点,线段和多边形处理略微不同。对于点,要么保留原始状态(在裁剪体内部),要么被裁掉(在裁剪体外部)。对于线段和多边形来说,如果部分在裁剪体外部,则需要在裁剪点生成新的几何顶点。对于多边形,还需要在新增的顶点间增加完整的边。不论裁剪了线段还是多边形,都需要给新增几何点赋予边界标志、法线、颜色和纹理坐标信息。

位图:位图是具有特定片元模式的0和1的矩形。每个片元有相同的相关数据。可以用glBitmap()定义。

纹理存储:纹理贴图是将指定的部分纹理图象映射到每个图元上。每个片元(fragment)具有的纹理坐标属性,该坐标与纹理图象坐标对应,得到纹理图象该位置的颜色值来修改片元的RGBA颜色,从而完成这个映射过程。

雾:已经光栅化的片元具有纹理贴图修正后颜色,可以采用融合因子再融合雾颜色,该融合因子大小根据视点和片元间的距离来定。

OpenGL入门术语和概念

原文:https://blog.51cto.com/14207158/2535084

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!