Gamebryo实例学习之六BadSushi

一、简介

      BadSushi是一个演示角色动画性能的例子,重点是NiFloodgate功能。
      在这个例子中,没有Instance,也就是说,每条鱼都有在场景图中自己的结点,自己的变形,自己的绘制,都是独立的。
      用滑动条可以控制鱼的数量和游动速度,打开惊吓可以让鱼变的膨胀,当鱼靠近枪眼的时候就可以使鱼惊吓。然后打开线框模式,可以看到每条鱼的网格。

二、解析
      DemoMode,聚合了NiActorManager,用来统计网格子模型个数和三角形个数。
      PlacementPolicy,根据一个算法将角色位置设置到三角曲线某个点上,并可以实时改变个数,位置和朝向。并且鱼的模型都是Clone的,也就是每条鱼都有它自己的Mesh。
      PerformanceOptimizing,类似实例五的做法,将模型的更新分给多处理器多线程处理。
      BadSushi,创建了一个屏幕拾取点,用到NiMeshScreenElements,并贴图。给角色贴图加上一张从Floor中获取的腐蚀性贴图,形成纹理特效NiTextureEffect。还在屏幕中心创建了拾取对象NiPick,一旦某条鱼被拾取了,就播放鱼被惊吓的动作。

你可能感兴趣的:(gb)