同理也能应用到 软件优化
美术
建模阶段
面数预算 高模->低模 优化技术: 法线贴图Normal map
LOD(Level Of Details) 由摄像头远近加载模型细节(粗模到精模) 缺点:跳变破坏沉浸感
虚拟几何体 模型分为簇(cluster)按距离对每一个簇特化显示
纹理流送Textures 远距离低分辨率贴图,近距离反之
关卡流送
粒子特效
复杂行为
动画
主要为物理动画
伪物理动画 近似物理动画 代理碰撞体
硬件加速
gpu
着色器(Shader) 简化计算 降低复杂度 并行计算 优化计算
着色器≈材质
材质(material) 3d物体外观 由颜色、法线、粗糙度金属感构成
材质优化
视觉和性能的取舍
去重复感 纹理爆炸技术 运行时虚拟纹理(RVT)
好看、高校、不占内存为不可能三角
cpu
图形管线
绘制调用 程序化生成
游戏逻辑代码
Tick滥用:每帧更新执行 不合理广播事件 频繁垃圾回收
多线程
异步加载、预加载 存在更多问题 资源数据竞争和不一致性 锁机制 阻塞问题(再往下就是资深技术优化)
无锁编程
难度极高的编程模式,需要对资源调度有深度理解 无锁算法,调试困难、bug难以复现 主要体现在时序问题
面向数据设计
数据导向设计DOD(Data-oriented design)高门槛技术 进入内存,深入缓存 内存区块设计、高校调度系统设计、极致自定义内存分配策略
向量化计算(数倍性能飞跃)
更高门槛技术 CPU指令集优化 SIM指令集 研究不同硬件指令集,手写内联汇编或者编译器内置函数
游戏体积控制
手动裁剪 交付配置