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

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

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

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

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

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

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

Alpha 示例