当前位置:软件学习 > Director >>

在Shockwave 3D中添加混合效果

在Shockwave 3D中添加混合效果
   原著:Malachy Duffin
   翻译:alphachi

   如果想要在3D场景中创建类似透视和光影这样的炫目效果,那么就不能忽略物体间的“添加混合”特性。许多顶级游戏经常利用这一特性来增强相应范围内图形的表现方式,例如武器的发射和爆炸。虽然许多Texture的附加选项都能够模拟各种材质的混合,但是Shockwave 3D的当前版本对此并不支持。

   幸运的是,我们可以通过另一种方法来“实现”这一特性。由于得到了大多数渲染引擎的支持,本文所描述的这项技巧已经被许多商业程序所使用,而你也只需对样本影片中的“additive blending”行为进行少许改动,就能够将其使用在自己的Shockwave 3D世界中。

观看演示


播放,以上示例,需下载此插件。 点击下载插件

使用方法

   首先,把“additive blending”行为复制到自己的影片中,然后将其拖拽到相应的3D角色上。

   如果现在播放影片,将不会有任何事情发生,因为并没有标记相应的Shader。我们应该给需要使用的Shader重命名,注意其名称必须包含“Additive”字样,这样才能够被行为识别并转换成为“additive blending”。

   现在播放影片,检测其能否正常工作。如果不行的话,先检查一下样本影片能否正常工作。如果还不行的话,非常不幸,你的机器可能不支持这项技巧。

工作原理

   虽然Shockwave 3D的当前版本并不支持物体间的“添加混合”,但却支持Shader Texture层之间的“添加混合”。因此为了能够实现物体间的“添加混合”,我们可以使用一个包含alpha通道的Texture,同时保持包含需要混合的Texture的那一层下为空。

   由于许多3D图形卡都支持多通道Textrue,为了实现上述功能,应该使用空白Texture,以利于低层Shader的显示;其效果取决于3D图形卡能够同时处理的Texture的数目,并可以根据渲染模式进行调整。

   下面的Lingo代码用于检测3D图形卡能够处理的Texture的数量,此命令的含义请参考程序里的相关注释。

getrendererServices (). gethardwareinfo ()[ # textureUnits]

补充说明

   1. 这项技巧在某些图形卡上无法正常工作(例如DirectX 7模式下的Radeon 9700)。在这些图形卡上将会看到红色Texture的效果非常不好。为了避免这一点,应该确保alpha通道为“fallback”状态,并给图形卡提供一个能够使用的alpha通道(至少能够提供类似的效果)。注意,这项技巧支持非正式的“nextShader”命令。

   2. 由于使用的是“Texture Reference”而非“Shader Reference”,因此这项技巧无法与粒子系统一起使用。

   3. 因为需要3D图形卡在屏幕上进行额外的绘制,所以影片本身的速度会受到一些影响。

   4. 由于Shockwave 3D本身对半透明物体的处理问题,这项技巧需要渲染一些额外覆盖物。如果Shockwave的下一次更新能够对半透明物体提供更好的支持,这项技巧将能够实现更为复杂的可视化效果。

相关附件

[1]

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,