找回密码
 立即注册
查看: 241|回复: 4

Unity 图形渲染知识三大块

[复制链接]
发表于 2023-2-5 11:23 | 显示全部楼层 |阅读模式
众所周知图形渲染是一个庞大而复杂的知识体系,让很多刚接触的同学望而却步,造成了学习门槛比较高的现象。本篇文章当然不能解决轻松学习的问题,学习还是得一点一滴脚踏实地的学,写这个文章主要还是想帮助想学习的同学脑袋里建立一套框架,从而对后面的学习有所帮助。

想要学好图形学,要了解很多的基础知识,比如光学,数学,线性代数,微积分,计算机相关知识等,这些都不是我想表达的重点,之后有机会再聊。

那我们从哪几方面来开始概况总结呢?

想要学好图形渲染,很多人一想到的就是渲染管线,说的没错,但不全面,我总结为三个方面:渲染模型、渲染管线、GPU架构。

一、渲染模型


渲染模型为什么要单独提出来呢,因为它决定了你渲染出来的东西是什么样子的。这就好比厨房给准备好了,但要渲染出来什么东西,就得看菜单了,这个渲染模型就像是菜单一样。

那这个菜单具体指的是什么呢?

1、标准光照模型 如 兰伯特模型,Blinn-Phong模型
2、BRDF模型
3、BSDF模型
4、次表面散射模型

等等。

不同的模型应用场景不同,渲染出来的效果也不同,需要的代价也不同。

我们如何用好、用对、那就不得不对其进行研究学习。就好比厨师不能只会炒土豆片,还得会鱼香肉丝,烧茄子等。

二、渲染管线


学习过的同学对渲染管线是再熟悉不过了,如图所示:



对于渲染管线的理解,我们还是拿厨房来举例子:
一道菜从原材料到上桌需要经过下面这些步骤
采购 -> 洗菜 ->  切菜 -> 加调料 -> 翻炒 -> 成品

这就非常像我们讲的渲染管线,图形从无到有也要经过上图的步骤。我们需要弄清楚每个步骤才知道

1、怎么去控制它。   (土豆切几个,形状切成什么样,大小如何)
2、出问题了怎么查找它 (菜没熟是块切大了吗,味道太咸是盐加多了吗)
3、以及怎么优化它。  (土豆切成合适的形状、盐适量)

上面的例子虽然牵强,但能增强我们对渲染管线的理解,同时体现了管线对于我们学习的重要性

三、GPU架构



第三方面就想聊聊关于GPU架构方面的事情了,我为什么觉得它也要单独提出来讲呢

还是拿炒菜来举例,炒菜你可以在饭店炒,也可以大街上炒。

在饭店炒你不需要考虑城管来找你的问题,你可以安安心心的炒,灶台你可以弄的宽敞些,洗菜池子大些,再配上油烟机。

在大街炒你就不要那么多家伙事,一个煤气罐,和一口锅就行了,来了城管你就跑。

那同样的道理,PC端你不需要考虑功耗的问题,放到移动端就不行了,功耗是移动端必须要考虑的问题,玩家玩了2分钟游戏就关机了肯定是要骂娘的。

所以对GPU架构的理解才能帮助我们
1、考虑如何优化以及怎么优化
2、在我们脑子里形成清晰的数据走向,加深对图形渲染的理解,而不是死记硬背一些概念。
3、理解Unity提供的一些接口的作用,如图


就是由于移动端GPU架构的原因,在unity里面对rendertexture的使用也特别说明了一下,当不再使用这个RenderTexture之前,调用一次Discard()可以在某些移动设备上提高性能。

以上就是我认为比较重要的三大块,相信有了这种框架性思维对学习一定大有益处,感谢关注。

参考资料,大家可以随时学习:

1、无我:GPU渲染架构-IMR & TBR & TBDR
2、opengl渲染管线 不能再详细了
3、OpenGL Insights 阅读有感 - Tile Based架构下的性能调校 翻译
4、GPU渲染管线之旅_空空的司马的博客-CSDN博客
5、针对移动端TBDR架构GPU特性的渲染优化_leonwei的博客-CSDN博客
6、深入GPU硬件架构及运行机制 - 0向往0 - 博客园

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2023-2-5 11:28 | 显示全部楼层
最好把光照系统也加上
 楼主| 发表于 2023-2-5 11:32 | 显示全部楼层
我觉得光照系统归属于渲染模型一类,比如BRDF模型
发表于 2023-2-5 11:40 | 显示全部楼层
并不是[尴尬]
发表于 2023-2-5 11:48 | 显示全部楼层
你说的光照系统是指前向渲染、延迟渲染以及全局光照(IBL,光线追踪,路径追踪等)这些东西吧,仔细想想这么大个模块好像确实应该单独分个类出来,感谢提议
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 07:17 , Processed in 0.125648 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表