700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 计算机图形学——什么是渲染管线

计算机图形学——什么是渲染管线

时间:2022-02-23 08:18:54

相关推荐

计算机图形学——什么是渲染管线

什么是渲染管线

渲染管线也叫渲染流水线,一般我们将渲染流程分成3个阶段:

应用阶段

应用阶段的功能通常由CPU负责实现,开发者具有对这个阶段的绝对控制权。应用阶段开发者由3个任务:1.准备好场景数据(摄像机,视锥体,模型,光源等)

2.为了提高渲染性能,我们在这里会做一些剔除工作

3.设置渲染状态,例如模型的颜色,纹理,使用哪个shader等

这一阶段最重要的是输出渲染所需要的几何信息

几何阶段

几何阶段处理所有和我们要绘制的几何相关的事情。决定需要绘制的图元是什么,怎么样绘制它们,在哪里绘制它们。这一阶段通常在GPU上进行。几何阶段会做哪些事情呢,如下图所示

1.顶点着色器:是流水线的第一个阶段,它的输入来自CPU。顶点着色器处理的单位是顶点,也就是说,输入进来的每个顶点都会调用一次顶点着色器。顶点着色器完成2个工作:

(1)坐标变换

就是对顶点的坐标进行某种变换。当然,必须要做的变换是将顶点坐标从模型空间转换到齐次裁剪 空间。 当然我们可以自己加入很多顶点变换,如,模拟水面的顶点扰动,布料模拟的顶点计算等

(2)逐顶点光照

2.曲面细分着色器(非必须):

3.几何着色器(非必须):

4.裁剪:由于我们场景会很大,而摄像机的视野范围很有可能不会覆盖所有的场景物体,不在视野范围内的不需要处理,裁剪就是为了完成这个目的。

5.屏幕映射:将空间坐标转换为屏幕坐标

光栅化阶段

这一阶段会使用几何阶段传递的数据来产生屏幕上的像素,并渲染出最终的图像。这一阶段也子啊GPU上运行。

1.三角形设置:计算光栅化一个三角形所需要的网格信息

2.三角形遍历: 三角形遍历阶段检查每个像素是否被一个三角形网格所覆盖。如果被覆盖的话,就会生成一个片元。

3.片元着色器:片元着色器的输入是上一个阶段对顶点信息插值得到的结果,更具体来说,是根据那些从顶点着色器中输出的数据插值得到的。而它的输出是一个或者多个颜色。这一阶段完成很多重要的渲染技术,其中最重要的技术之一就是纹理采样。为了在片元着色器中进行纹理采样,我们通常会在顶点着色器阶段输出每个顶点对应的纹理坐标,然后经过光栅化阶段对三角形网格的3个顶点对应的纹理坐标进行查之后,就可以得到其覆盖的片元的纹理。

4.逐片元操作:

(1) 决定每个片元的可见性。如深度测试,模板测试等

(2) 对片元进行着色

CPU和GPU的通信

渲染流水线的起点是CPU,即应用阶段,可以分为一下三个阶段

把数据加载到现存中设置渲染状态调用DrawCall

什么是DrawCall,GPU调用图像编程接口,如OpenGL中的glDrawElements命令或者DirectX中的DrawIndexedPrimitive命令,以命令GPU进行渲染操作。

总结

参考书籍:Unity Shader 入门精要

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。