OpenGl 学习 01 概述与概念
Posted 小田田_XOW
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGl 学习 01 概述与概念相关的知识,希望对你有一定的参考价值。
OpenGL是一种API,一种可以对图形硬件设备特性进行访问的软件库。OpenGL被设计为一个现代化的、硬件无关的接口。
一个用来渲染图像的OpenGL程序需要执行的主要操作如下所示:
(1)从OpenGL的几何图元中设置数据,用于构建形状。
(2)使用不同的着色器(shader)对输入的图元数据执行计算操作,判断他们的位置、颜色,以及其他的渲染属性。
(3)将输入图元的数学描述转换为与屏幕对应位置的像素片元(fragment)。这一步也称为光栅化。
(3)最后,针对光栅化过程产生的每个片元,执行片元着色器(fragment shader),从而决定这个片元的最终颜色和位置。
(4)如果有必要,还需要对每个片元执行一些额外的操作,例如判断片元对应的对象是否可见,或者将片元的颜色与当前屏幕位置的颜色进行融合。
OpenGL使用客户端-服务端的形式实现的,我们编写的应用程序可以看做客户端,而计算机图形硬件厂商提供的OpenGL实现可以看做服务端。
渲染render:表示计算机从模型创建最终图像的过程。OpenGL只是一种渲染系统,还有许多其他的渲染系统。OpenGL是基于光栅化的系统,但是也有别的方法用于生成图像,例如光线追踪(ray tracing)。
模型(model)或者场景对象,是通过几何图元,例如点、线和三角形来构建的,而图元与模型的顶点(vertex)也存在着各种对应的关系。
着色器:它是图形硬件设备所执行的一类特殊函数,理解着色器最好的方法是把它看做专门为图形处理单元(GPU)编译的一种小型程序。OpenGL在其内部包含了所有的编译器工具,可以直接从着色器源代码创建GPU所需的编译代码并执行。在OpenGL中会用到四种不同的着色阶段(shader stage)。其中最常用的包括顶点着色器(vertex shader)以及片元着色器,前者用于处理顶点数据,后者用于处理光栅化后的片元数据。
最终生成的图像包含了屏幕上绘制的素有像素点。像素(pixel)是显示器上最小的可见单元。计算机系统将所有的像素保存到帧缓存(framebuffer)当中,后者是由图形硬件设备管理的一块独立内存区域,可以直接映射到最终的显示器上。
以上是关于OpenGl 学习 01 概述与概念的主要内容,如果未能解决你的问题,请参考以下文章
我的OpenGL学习进阶之旅介绍一下OpenGL ES的 光栅化 : 剔除多边形偏移