Unity3D白皮书(四) Unity3D在渲染方面都帮我们做了什么?

本文介绍了Unity3D在渲染方面的核心机制,包括从模型文件读取并处理顶点数据形成Mesh,使用ShaderLab编写自定义shader,Material作为属性配置工具,以及Renderer的封装作用。还涉及到Culling、Sorting和Batching等优化技术,揭示了Unity3D渲染流程的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

未尽和错误之处欢迎打脸……
这里写图片描述
1、顶点数据:包括顶点位置、顶点色、法线、uv等。这些数据从模型文件(例如FBX)中读取出来,组织成一个数据结构——Mesh,但最终渲染的时候还是从Mesh中将这些数据(可能会被更改)取出来传给GPU。
2、Vertex shader & Fragment shader:对Unity3D开发者来说是透明的。Unity3D开发者使用ShaderLab编写Unity3D shader,这些shader会(根据平台)被编译成Vertex shader & Fragment shader传给GPU。
3、Material:笼统上来讲,就是配置表。假设我们要直接调用OpenGL(或DirectX),就需要在代码中为Shader设置一些属性(或者说变量)。Unity3D使用Material这个“配置表”就能够动态地设置这些属性(其实还包含载入纹理的操作)。
4、Renderer:再一次封装,Unity3D渲染(在CPU阶段)的基本单位,其实还要算上Transform和针对于MeshRenderer的MeshFilter(求问:为什么要分开?)。之所以加这一次封装,应该也考虑了不同Mesh和Material之间的组合。在送进GPU之前的各种操作都是以Renderer为单位的。
5、Culling:有官方文档,不废话。https://docs.unity3d.com/Manual/OcclusionCulling.html
注:区别于渲染管线的裁剪。
6、Sorting:以Shader中的Queue和Renderer中的sortingLayerID+sortingOrder为基准(Queue的优先级更大)。
7、Batching:有官方文档,不废话。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值