摘要: 每个游戏都是由种类繁多的资源构成,例如:网格、材质、纹理、着色器、动画、音频等。导入并管理这些资源文件,是游戏引擎必备的能力。资源管理包含两部分:离线管理和运行时管理。 在 Unity 2019 LTS 中,对应的解决方案分别是 Asset Import Pipeline v2(下文简称 AIP v 阅读全文
posted @ 2020-07-21 23:12 何三思 阅读(3677) 评论(0) 推荐(1) 编辑
摘要: 通常受限于:填充率、内存带宽、顶点处理 填充率 定义:GPU每秒输出到屏幕上的像素数(在游戏开发中,周期可细化到每帧)。 判别标准:降低分辨率,导致性能提升 优化方法: 1)优化片元着色器 2)使用消耗更低的官方着色器(比如用 Mobile 着色器替代 Standard 着色器) 3)如果需要 St 阅读全文
posted @ 2020-07-21 22:54 何三思 阅读(793) 评论(0) 推荐(0) 编辑
摘要: CPU在渲染管线中的工作 1)检测需要被绘制的对象 2)准备发送给GPU的指令 3)向GPU发送指令 多线程渲染 0)Unity 包含三种线程类型:主线程、渲染线程、工作线程 1)主线程:大部分的CPU工作,和部分渲染任务 2)渲染线程:专门用于CPU向GPU发送指令 3)工作线程:执行单独的任务( 阅读全文
posted @ 2020-07-21 22:53 何三思 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 图形优化没有银弹,与具体游戏、目标硬件和操作系统有关。 三步:发现、定位、优化。 渲染管线 1)CPU搜集需要被渲染的对象,及其渲染状态 2)CPU向GPU发送渲染指令 3)GPU处理渲染指令 CPU流程 1)搜集场景中需要被渲染的对象;不被渲染的对象被剔除(culled) 2)获取对象的信息(网格 阅读全文
posted @ 2020-07-21 22:50 何三思 阅读(515) 评论(0) 推荐(0) 编辑
摘要: Garbage:内存被“不再使用的数据”占据。 Garbage collection:使上述内存被重新分配。 两种类型代码:核心引擎代码、用户代码(托管代码) 1)核心引擎代码:使用手动内存管理,不使用垃圾回收。 2)用户代码:使用自动内存管理,不需要知道内存管理细节 自动内存管理中的垃圾回收 1) 阅读全文
posted @ 2020-07-21 22:47 何三思 阅读(1145) 评论(0) 推荐(1) 编辑
摘要: CPU每帧需要处理数百万条指令,如果没有按时处理完,就会导致游戏卡顿。 打包过程 Untiy将代码编译为 CIL(Common Intermediate Language) ① AOT:CIL在打包时编译为机器码 ② JIT:CIL在运行前编译为机器码 源码与机器码的关系 没有被编译的代码称为源码, 阅读全文
posted @ 2020-07-21 22:46 何三思 阅读(497) 评论(0) 推荐(0) 编辑
摘要: IL2CPP 与 Mono 1)IL2CPP 优缺点 ① 可以调试C++代码 ② 可以使用 Engine code stripping 减少代码大小 ③ 编译慢 ④ 只支持 AOT(Ahead of Time) 2)Mono优缺点 ① 编译快 ② 支持JIT(Just In Time compila 阅读全文
posted @ 2020-07-21 22:43 何三思 阅读(1302) 评论(0) 推荐(1) 编辑
摘要: 作用:针对不同的运行时环境,使用不同的内容。 一、变体 1、使用举例 1)不同目标平台,简化对应AB加载 举例:一个AB包含用于PC平台的高清纹理,另一个AB包含用于安卓手机的低清纹理,但是他们使用相同的AB名和资源名,只有变体名不同。于是在运行时,不需要更改加载代码,就可以加载对应的AB变体。 2 阅读全文
posted @ 2020-07-21 22:40 何三思 阅读(1514) 评论(0) 推荐(1) 编辑
摘要: 1、资源重复 1)资源打包进哪个AB,由三种方式决定 ① 在Editor中被明确指定AB名称:只打进指定名称AB中 ② 通过BuildPipeline方法指定AB名称:只打进指定名称AB中,且覆盖方法① ③ 没有指定AB名称:任何引用该资源的AB包,都将包含一份该资源的复制 2) 没有指定AB名称细 阅读全文
posted @ 2020-07-21 22:38 何三思 阅读(547) 评论(0) 推荐(1) 编辑
摘要: 综述 1)一个AB通过 LoadFromFile 被加载时,只有头信息被加载到内存,因此只占用几千字节。但是如果需要加载大量AB,则会产生一定影响。 2)管理AB及其资源,最重要的是要理解 AssetBundle.Unload 使用 true 还是 false 参数,以及何时调用。 ① Unload 阅读全文
posted @ 2020-07-21 22:37 何三思 阅读(711) 评论(0) 推荐(2) 编辑