图形学基础知识(渲染管线)

https://blog.csdn.net/poem_qianmo/article/details/41923661
浅墨大神讲渲染管线的,下面偷一张图

在这里插入图片描述

流水线

图元:点、线、多边形。(primitives)

片元:二维图象上每个点都包含了颜色、深度和纹理数据。将该点和相关信息叫做一个片元(fragment)

大概流程: 顶点着色器 >> 图元装配 >> 几何着色器 >> 光栅化 >> 片元着色器 >> aplha混合

硬盘 -> CPU -> RAM ->显卡
http://candycat1992.github.io/unity_shaders_book/unity_shaders_book_images.html

  1. 几何阶段
  2. 光栅化阶段

Draw Call

是一个命令 发起方是CPU,接受方是GPU

提交大量很小的Drawcall会造成cpu性能瓶颈

减小Drawcall开销

  1. 避免使用大量很小的网格。尽量合并他们
  2. 避免使用过多的材质。尽量在不同的网格之间公用同一个材质

FallBack

如果所有的subshader都使用不了 那么就使用最低级的unity shader

空间变换

模型空间世界空间观察空间裁剪空间屏幕空间
local space摄像机空间正交投影
透视投影
视椎体

OpenGL 对象

帧缓冲对象FBO 相当于Unity 的RenderTexture,FBO可以让不渲染到屏幕当中去,而是渲染到离屏的buffer中

关于Clip

在这里插入图片描述

问答


问: 请说明深度测试的作用和在渲染流水线的实施位置?

答: 在现代的渲染流水线中,深度测试执行在每个片元着色器程序被调用之前,深度测试失败,则丢弃该片段,原因是片元着色器程序,是GPU上的主要瓶颈,而深度测试可以避免不必要的昂贵的片元着色器的程序调用。


问:以OpenGL为例,说出片元处理程序阶段做的处理?
答:处理对象是,把三角面经过光栅化得到的一个个小格子(像素),
在像素真是使用pixelshader前,需要对于这个像素进行一系列测试。
模板测试(更好的翻译是为蒙版测试)->深度测试(这里之前测试通不过就都被抛弃)->片元着色器->alpha混合。如何处理光、阴影、遮挡、环境等等对物体表面的影响,最终生成一副图像的小程序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值