使用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;

}

}

}

下载范例程序和源代码

下载范例程序和源代码

你可能感兴趣的:(asp,Blend)