Graphics - 渲染流程

一些图形学的概念介绍,个人摘抄或整理,作为个人文章的词条引用;

渲染流程

主要工作在于,由一个三维场景出发、生成(或者说渲染)一张二维图像;换句话说,计算机需要从一系列的顶点数据、纹理等信息出发,把这些信息最终转换成一张人眼可以看到的图像;这个工作通常是由CPU和GPU共同完成;

一个渲染流程分为三个阶段(三个阶段为按照基本功能划分的概念阶段,每个阶段还有子流水线):

应用阶段(Application Stage)几何阶段(Geometry Stage)光栅化阶段(Rasterizer Stage)

图片源自《Unity Shader入门精要》

 

应用阶段应用阶段流水线),由我们的应用所主导,通常由CPU负责实现;开发者有这个阶段的绝对控制权;

这一阶段的主要任务有3个:

首先需要准备好场景数据,例如摄像机的位置、视锥体、场景中包含了哪些模型、使用了哪些光源等等;其次,为了提高渲染性能,需要做一个粗粒度剔除(culling)工作,以把那些不可见的物体剔除出去,这样就不需要再移交给几何阶段进行处理;最后,需要设置好每个模型的渲染状态(如所使用的材质、纹理、着色器等);

这一阶段最重要的输出是渲染所需的几何信息,即渲染图元,然后传递给下一个阶段——几何阶段;

几何阶段GPU流水线),用于处理所有和我们要绘制的几何相关的事情;例如,决定需要绘制的图元是什么,如何绘制,在哪里绘制等等,这一个阶段在GPU上进行;

几何阶段负责和每个渲染图元打交道,进行逐顶点、逐多边形的操作;这个阶段的一个重要任务就是把顶点坐标变换到屏幕空间中,再交给光栅器进行处理;通过对输入的渲染图元进行多步处理后,这一阶段将会输出屏幕空间的二维顶点坐标、每个顶点对应的深度值、着色等相关信息,并传递给下一个阶段;

光栅化阶段GPU流水线),这一阶段将会使用上个阶段传递的数据来产生屏幕上的像素,并渲染出最终的图像;这一阶段也是在GPU上运行;

光栅化的任务主要决定每个渲染图元中的哪些像素应该被绘制在屏幕上;它需要对上一个阶段得到的逐顶点数据(例如纹理坐标、顶点颜色等)进行插值,然后再进行逐像素处理;


 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DoomGT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值