和 《光荣使命》 DX11 PhysX 中的高级图形特性 唐江俊 杨雪青 黄馥霖 朱嘉元 巨人铁马工作室 英伟达 gameworks.nvidia.com 1 程序与优化 PhysX & APEX gameworks.nvidia.com 2 演讲的目的 • 《光荣使命》特效背后的制作故事 • 分享给其他程序员在自己引擎里实现这 些效果 • 分享优化的过程 gameworks.nvidia.com 3 工作流程 PhysX SDK • PhysX 工作流程 更新物理场景状态 – 异步模拟 开始异步模拟 – 支持多线程 • PhysX相关的游戏场景 同时做其他如渲染,AI等 工作 状态 拿到模拟结果 – 位置 – 速度 更新相应的游戏场景 状态 – 碰撞法线 – …… gameworks.nvidia.com 4 流体 粒子 PhysX / • 《光荣使命》场景节选 gameworks.nvidia.com 5 粒子创建 PhysX • 创建方式 – 直接创建粒子的初始状态(位置,速度) • 一次性创建所有粒子 • 逐帧创建、删除粒子 – 使用 NxFluidEmitter 自动喷射粒子 • 粒子创建的主要属性 – 碰撞半径和碰撞属性 – 运动属性 – 流体专有的属性, 如 粘度、表面张力等 gameworks.nvidia.com 6 使用硬件加速 • 为了使用更多的粒子 – GPU物理粒子模拟 (NX_FF_HARDWARE) – 使用Instancing渲染 UE3 material setting gameworks.nvidia.com 7 共享 粒子例子 PhysX gameworks.nvidia.com 8 共享 粒子 PhysX • Max Particles – 一个Fluid System(也 即ParticleSystem)最 大的粒子个数 • Particle Reserve – 先生成的粒子会被删 除为新粒子让路 (FIFO) – 在达到粒子数达到最 大的时候,每一帧能 够喷出的粒子数 gameworks.nvidia.com 9 布料 PhysX • 《光荣使命》实例 gameworks.nvidia.com 12
Description: