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;
}
}
}
下载范例程序和源代码



闽公网安备 35060202000074号