Shader中的一些专业用语的解释

Shader中的一些专业用语的解释

此文章收录于我主页顶置的:Unity Shader入门精要文章目录,点击即可跳转。

一、什么是OPenGL/DirectX?
简单的来说,就是图像应用编程的接口,这些接口用语渲染二维和三维的图形,架起了上层应用程序和底层GPU之间的桥梁。
在这里插入图片描述
二、什么是HLSL、GLSL、Cg?
简单的来说,就是编写Shader的一些高级着色语言

三、什么是Draw Call?
本身的含义就是CPU调用图像编程接口,命令GPU进行渲染操作,Draw Call中造成性能问题的元凶是CPU,因为GPU的渲染速度往往快于CPU提交命令的速度
(1)CPU与GPU是如何实现并行工作的?
使用命令缓冲区,由CPU添加命令,GPU读取命令,两个过程相互独立。
在这里插入图片描述
(2)为什么Draw Call多了会影响帧率?
我们先来做一一 个实验:请创建10 000个小文件,每个文件的大小为1KB,然后把它们从一个文件夹复制到另一个文件夹。你会发现,尽管这些文件的空间总和不超过10MB,但要花费很长时间。现在,我们再来创建一个单独的文件,它的大小是10MB, 然后也把它从一个文件夹复制到另一个文件夹。而这次复制的时间却少很多!这是为什么呢?明明它们所包含的内容大小是一样的。原因在于,每一个复制动作需要很多额外的操作,例如分配内存、创建各种元数据等。如你所见,这些操作将造成很多额外的性能开销,如果我们复制了很多小文件,那么这个开销将会很大。
在这里插入图片描述
四、如何减少Draw Call?
使用批处理的方法,吧很多小的Draw Call合并成一个大的Draw Call进行处理。
在这里插入图片描述
游戏开发过程中,为了减少Draw Call的开销,有两点需要注意。
(1)避免使用大量很小的网格。当不可避免地需要使用很小的网格结构时,考虑是否可以合并它们。
(2)避免使用过多的材质。尽量在不同的网格之间共用同一个材质。

五、什么是固定管线渲染?
固定函数的流水线(Fixed-Function Pipeline),也简称为固定管线,通常是指在较旧的GPU上实现的渲染流水线。这种流水线只给开发者提供一些配置操作, 但开发者没有对流水线阶段的完全控制权。

固定管线通常提供了一系列接口,这些接口包含了一个函数入口点(Function Entry Points)集合,这些函数入口点会匹配GPU上的一个特定的逻辑功能。开发者们通过这些接口来控制渲染流水线。换句话说,固定渲染管线是只可配置的管线。一 个形象的比喻是, 我们在使用固定管线进行渲染时,就好像在控制电路上的多个开关,我们可以选择打开或者关闭一个开关,但永远无法控制整个电路的排布。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值