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

什么是渲染管线

渲染管线也叫渲染流水线,一般我们将渲染流程分成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 入门精要

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值