火灾、耀斑和爆炸 (Direct3D 9)

可以使用 Microsoft Direct3D 模拟涉及能量释放的自然现象。 例如,应用程序可以通过将火焰状纹理应用于一组广告牌来生成火的外观。 如果应用程序使用一系列火质纹理来对火灾中每个广告牌上的火焰进行动画处理,这尤其有效。 将动画播放速度从广告牌更改为广告牌会增加真实火焰的外观。 通过分层广告牌和广告牌上的纹理,可以实现混杂的 3D 火焰的相似性。

可以通过将连续更亮的光线贴图应用于场景中的所有基元来模拟耀斑和闪光。 尽管这是一种计算高开销技术,但它允许应用程序模拟本地化的耀斑或闪存。 也就是说,耀斑或闪光起源的场景部分可以先变亮。

另一种方法是将广告牌放置在场景前,以便覆盖整个呈现目标区域。 应用程序会连续对广告牌应用更白的纹理,并随时间推移降低透明度。 随着时间的流逝,整个场景会淡化为白色。 这是创建耀斑的低开销方法。 但是,使用此方法时,很难从单点光源生成亮闪的外观。

爆炸可以在 3D 场景过程中显示,类似于用于火灾、闪光和耀斑的过程。 例如,发生爆炸时,应用程序可能会使用广告牌显示冲击波和上升的烟雾。 同时,应用程序可以使用一组广告牌来模拟火焰。 此外,它可以在场景前放置单个广告牌,以向整个场景添加耀斑光。

可以使用广告牌模拟能量光束。 应用程序还可以使用定义为行列表或线条带的基元来显示它们。 有关详细信息,请参阅 行列表线条带

应用程序可以使用广告牌或定义为三角形列表的基元创建强制字段。 若要从三角形列表创建力字段,请在三角形列表中定义一组不连续三角形,这些三角形与受力字段覆盖的区域相等。 三角形之间的间隙允许用户查看三角形后面的场景,就像查看力场时所期望的那样。 将纹理应用于三角形列表,使三角形看起来具有能量发光的外观。 有关详细信息,请参阅 三角形列表

Alpha 示例