Unity3d 初识渲染管线 计算机图像学

6 篇文章 0 订阅
6 篇文章 0 订阅

渲染管线即

  • 图形数据在GPU上经过运算处理,最后输出到屏幕的过程

具体流程图为:
在这里插入图片描述
CPU的分工:

  • CPU在游戏中识别哪些物体需要渲染,需要渲染的物体即在游戏Camera的视图内,但不包括Camera Culling Mask 排除的Layer,即物体在Camera视图范围内,Layer在Culling Mask没有勾选,Camera是看不到该物体的
    在这里插入图片描述
  • CPU将识别要渲染的物体交给图形API,然后图形API交给显卡,显卡将图形的数据给GPU;
  • 这些数据包括 “视点、三维物体、光源、照明模型、纹理”等元素

Draw Call(绘制调用): 每次引擎准备数据被通知GPU的过程;通俗的说,就是每帧调用显卡渲染物体的次数。
有多少个Draw Call,每帧就要渲染多少次
Draw Call 在Unity stats中可以查看,(一个物体对应一个Draw Call, 但光照在要渲染的物体上会影响Draw Call的值,光照挺复杂的,暂时还没接触太多)
下图的Batches的值 等于Draw Call的值,多少个batches每帧要渲染多少次
在这里插入图片描述

GPU的工作

1.顶点处理

  • 接收模型顶点数据
  • 坐标系转换

2.图元装配

  • 组装面:连接相邻的顶点,绘制为三角形。
    在这里插入图片描述

3. 光栅化

  • 计算三角面上的像素,并为后面着色阶段提供合理的插值
    在这里插入图片描述

4. 像素处理

  • 对每个像素区域进行着色
  • 写入到缓存中

5. 缓存

  • 一个存储像素数据的内存块,最重要的缓存是帧缓存深度缓存
  • 帧缓存:缓存每个像素的色彩,即渲染后的图像。帧缓存常常在显存中,显卡不断读取并输出到屏幕中
  • 深度缓存 z-buffer : 存储像素的深度信息,即物体到摄像机的距离。光栅化时便计算个像素的深度值,如果新的深度值比现有值更接近,则像素颜色被写入到帧缓存,并替换深度缓存。(这里的深度指的是,物体到摄像机的距离)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值