首页 > 网站 > 媒体动画 > 正文

Director实例剖析:在Shockwave 3D里面增加混合效果

2024-09-08 19:27:02
字体:
来源:转载
供稿:网友
在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的下一次更新能够对半透明物体提供更好的支持,这项技巧将能够实现更为复杂的可视化效果。

相关附件

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表