总结管线
关键词:定点着色器, Fragment 着色器,图形基本构成 点,线,三角形
设置顶点位置,如三角形三个点 -----> assemble shape组拼形状----> 几何转换形状 ---> 之前这些是转换成要绘制的形状,用一些关系来描述或者是公示 ----> 通过栅格化将形状转换为一个个像素点 (后续要填充颜色)---> 分片着色器 着色时,要考虑的信息比较多,比如多个物体之间的位置关系造成的光照,投影,阴影等影响,进行着色。
三维转换为二维,通常我们看到的是二维物体, 因此要吧世界坐标转换为相机坐标,相机坐标要转换为屏幕坐标。
比如物体遮挡时,通常
经过透视投影得到的顶点是线性的,无法再屏幕上显示。
顶点着色器----> 图元装配--->几何着色器---> 光栅格化--->片段着色器--->混合于测试
https://www.zhihu.com/question/29163054
作者:Benjamin Hsu
链接:https://www.zhihu.com/question/29163054/answer/46695506
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
首先,光栅化(Rasterize/rasteriztion)。
这个词儿Adobe官方翻译成栅格化或者像素化。没错,就是把矢量图形转化成像素点儿的过程。我们屏幕上显示的画面都是由像素组成,而三维物体都是点线面构成的。要让点线面,变成能在屏幕上显示的像素,就需要Rasterize这个过程。就是从矢量的点线面的描述,变成像素的描述。
如下图,这是一个放大了1200%的屏幕,前面是告诉计算机我有一个圆形,后面就是计算机把圆形转换成可以显示的像素点。这个过程就是Rasterize。
</noscript>
————
渲染管线(Pipeline)
这个翻译尤其不接地气,简直就是直译(pipe管子line线路)。Pipeline是输送管道的意思。其实是指三维渲染的过程中显卡执行的、从几何体到最终渲染图像的、数据传输处理计算的过程。
————
着色器(Shader)
这个翻译的挺好。画画的时候我们经常有这么一个过程:先打线稿,再上色。着色器就是用来做这个工作的。
通常着色器分两种:
1顶点着色器(vertex shader)这个是告诉电脑如何打线稿的——如何处理顶点、法线等的数据的小程序。
2片面着色器(fragment shader)这个是告诉电脑如何上色的——如何处理光、阴影、遮挡、环境等等对物体表面的影响,最终生成一副图像的小程序。
采用了这两种着色器小程序 的 数据传输处理计算的渲染过程,称之为 可编程管线。
渲染管线其实说白就是流水线,和我们平时看到的工厂流水线差不多一个意思。就是说上个工序加工过的东西会送到下个阶段进行再次加工。比如顶点着色器处理顶点数据后,会送到光栅化阶段!那什么是光栅化呢?首先我们需要明白一个概念,就是计算机只能处理离散的数据,而我们现实世界都是连续的,所以如何将我们输入的连续数据进行离散化呢?答案就是光栅化!其实光栅化就是个离散化的过程,现在一般都是硬件来处理的,效率很高!
作者:学无止境
链接:https://www.zhihu.com/question/29163054/answer/772714280
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。