使用Mascot Capsule Micro3D V3 API实现透明效果

作者:mydeman  文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=810

Mascot Capsule Micro3D V3 API支持颜色掩盖和四种纹理与背景颜色混合模式。

当混合颜色时,来自背景RGB值和来自纹理的RGB颜色单独的混合。请注意,Half(一半)、Addition(相加)和Subtract(相减)模式不能同时作用于同一个多边形。

下面的表格显示了背景和纹理的颜色是如何混合在一起的。

属性

背景

纹理

Normal(正常)

0%

+100%

Half(一半)

50%

+50%

Add(相加)

100%

+100%

Sub(相减)

100%

-100%

可以使用下面命令中的一个来完成颜色混合:

Graphics3D.PATTR_BLEND_NORMAL

Graphics3D.PATTR_BLEND_HALF

Graphics3D.PATTR_BLEND_ADD

Graphics3D.PATTR_BLEND_SUB

 

// 示例命令

private final int COMMAND = Graphics3D.PDATA_NORMAL_NONE |

Graphics3D.PDATA_TEXURE_COORD |

Graphics3D.PRIMITVE_QUADS |

Graphics3D.PATTR_BLEND_HALF;

别忘了使用透明度设置效果:

     effect.setTransparency (true);

掩盖的实现同样简单。只需使用Graphics3D.PATTR_COLORKEY命令,然后结合在图片所使用的调色板中的一个给定值0,就可以掩盖出第一种颜色。

当掩盖颜色时,你不能使用透明度设置效果。

下面的Ghost图片展示了当分别使用1)Normal、2)PATTR_COLORKEY和3)PATTR_BLEND_HALF | PATTR_COLORKEY时不同的效果。

  Normal(正常,没有混合)  使用掩盖(ColorKey) 

 使用一半混合和掩盖(ColorKey

本文以及例子都比较简单,不再做分析。另外,我们可以修改keyPressed()方法,观察每一种混合属性和PATTR_COLORKEY的单独效果,修改后程序如下:

public void keyPressed(int key) {

           if (key == -6) {

                  index = index == 4 ? 0 : index + 1;

                  if (index == 0) {

                  // 去掉前一种的混合效果

                         COMMAND ^= Graphics3D.PATTR_BLEND_ADD;

// 正常模式

                         COMMAND |= Graphics3D.PATTR_BLEND_NORMAL;

                  } else if (index == 1) {

                         COMMAND ^= Graphics3D.PATTR_BLEND_NORMAL;

                 // 使用COLORKEY

                         COMMAND |= Graphics3D.PATTR_COLORKEY;

                  } else if (index == 2){

                         COMMAND ^= Graphics3D.PATTR_COLORKEY;

                 // 一半的混合模式

                         COMMAND |= Graphics3D.PATTR_BLEND_HALF;

                  } else if (index == 3){

                         COMMAND ^= Graphics3D.PATTR_BLEND_HALF;

                 // 相减的混合模式

                         COMMAND |= Graphics3D.PATTR_BLEND_SUB;

                  } else if (index == 4){

                         COMMAND ^= Graphics3D.PATTR_BLEND_SUB;

                 // 相加的混合模式

                         COMMAND |= Graphics3D.PATTR_BLEND_ADD;

                  }

           }

    }

 

下载范例程序和源代码

 

下载范例程序和源代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值