OpenGL中着色器,渲染管线,光栅化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OpenGL中着⾊器,渲染管线,光栅化
光栅(shan⼀声)化(Rasterize/rasteriztion)。

这个词⼉Adobe官⽅翻译成栅格化或者像素化。

没错,就是把⽮量图形转化成像素点⼉的过程。

我们屏幕上显⽰的画⾯都是由像素组成,⽽三维物体都是点线⾯构成的。

要让点线⾯,变成能在屏幕上显⽰的像素,就需要Rasterize这个过程。

就是从⽮量的点线⾯的描述,变成像素的描述。

如下图,这是⼀个放⼤了1200%的屏幕,前⾯是告诉计算机我有⼀个圆形,后⾯就是计算机把圆形转换成可以显⽰的像素点。

这个过程就是Rasterize。

百度百科的解释:
就是将图转化为⼀个个栅格组成的图象。

光栅化就是把顶点数据转换为⽚元的过程。

⽚元中的每⼀个元素对应于帧缓冲区中的⼀个像素。

光栅化其实是⼀种将⼏何图元变为⼆维图像的过程。

该过程包含了两部分的⼯作。

第⼀部分⼯作:决定窗⼝坐标中的哪些整型栅格区域被基本图元占⽤;第⼆部分⼯作:分配⼀个颜⾊值和⼀个深度值到各个区域。

光栅化过程产⽣的是⽚元。

把物体的数学描述以及与物体相关的颜⾊信息转换为屏幕上⽤于对应位置的像素及⽤于填充像素的颜⾊,这个过程称为光栅化,这是⼀个将模拟信号转化为离散信号的过程。

————————————
渲染管线(Pipeline)
这个翻译尤其不接地⽓,简直就是直译(pipe管⼦line线路)。

Pipeline是输送管道的意思。

其实是指三维渲染的过程中显卡执⾏的、从⼏何体到最终渲染图像的、数据传输处理计算的过程。

————————————
着⾊器(Shader)
这个翻译的挺好。

画画的时候我们经常有这么⼀个过程:先打线稿,再上⾊。

着⾊器就是⽤来做这个⼯作的。

通常着⾊器分两种:
1顶点着⾊器(vertex shader)这个是告诉电脑如何打线稿的——如何处理顶点、法线等的数据的⼩程序。

2⽚⾯着⾊器(fragment shader)这个是告诉电脑如何上⾊的——如何处理光、阴影、遮挡、环境等等对物体表⾯的影响,最终⽣成⼀副图像的⼩程序。

采⽤了这两种着⾊器⼩程序的数据传输处理计算的渲染过程,称之为可编程管线。

对于图形 api的使⽤者来说,为了能正确显⽰图像,往往要对整个pipeline的过程,顺序有了解。

⼀简单流程如下:
管线程序段输⼊=>顶点着⾊器=>光栅化=>⽚元着⾊器=>屏幕颜⾊
(上⼀个函数的)输出传递给=> (下⼀个函数作为)输⼊。

相关文档
最新文档