mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
Fix transparency. Now, it is handled correctly, which does break support with sketchup and google earth, but that's a bug in those tools.
This commit is contained in:
parent
15af6c3ac5
commit
b510dc1fb2
@ -367,11 +367,11 @@ convert_blend(FCDEffectStandard::TransparencyMode mode, Colorf transparent, doub
|
|||||||
|
|
||||||
// Now figure out the operands.
|
// Now figure out the operands.
|
||||||
if (mode == FCDEffectStandard::RGB_ZERO) {// || mode == FCDEffectStandard::A_ZERO) {
|
if (mode == FCDEffectStandard::RGB_ZERO) {// || mode == FCDEffectStandard::A_ZERO) {
|
||||||
blend->_operand_a = EggGroup::BO_constant_color;
|
|
||||||
blend->_operand_b = EggGroup::BO_one_minus_constant_color;
|
|
||||||
} else if (mode == FCDEffectStandard::A_ONE) {// || mode == FCDEffectStandard::RGB_ONE) {
|
|
||||||
blend->_operand_a = EggGroup::BO_one_minus_constant_color;
|
blend->_operand_a = EggGroup::BO_one_minus_constant_color;
|
||||||
blend->_operand_b = EggGroup::BO_constant_color;
|
blend->_operand_b = EggGroup::BO_constant_color;
|
||||||
|
} else if (mode == FCDEffectStandard::A_ONE) {// || mode == FCDEffectStandard::RGB_ONE) {
|
||||||
|
blend->_operand_a = EggGroup::BO_constant_color;
|
||||||
|
blend->_operand_b = EggGroup::BO_one_minus_constant_color;
|
||||||
} else {
|
} else {
|
||||||
daeegg_cat.error() << "Unknown opaque type found!" << endl;
|
daeegg_cat.error() << "Unknown opaque type found!" << endl;
|
||||||
blend->_enabled = false;
|
blend->_enabled = false;
|
||||||
@ -380,18 +380,18 @@ convert_blend(FCDEffectStandard::TransparencyMode mode, Colorf transparent, doub
|
|||||||
|
|
||||||
// See if we can optimize out the color.
|
// See if we can optimize out the color.
|
||||||
if (blend->_operand_a == EggGroup::BO_constant_color) {
|
if (blend->_operand_a == EggGroup::BO_constant_color) {
|
||||||
if (blend->_color[0] == blend->_color[1] == blend->_color[2] == blend->_color[3] == 0) {
|
if ((blend->_color[0] == 0) && (blend->_color[1] == 0) && (blend->_color[2] == 0) && (blend->_color[3] == 0)) {
|
||||||
blend->_operand_a = EggGroup::BO_zero;
|
blend->_operand_a = EggGroup::BO_zero;
|
||||||
}
|
}
|
||||||
if (blend->_color[0] == blend->_color[1] == blend->_color[2] == blend->_color[3] == 1) {
|
if ((blend->_color[0] == 1) && (blend->_color[1] == 1) && (blend->_color[2] == 1) && (blend->_color[3] == 1)) {
|
||||||
blend->_operand_a = EggGroup::BO_one;
|
blend->_operand_a = EggGroup::BO_one;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (blend->_operand_b == EggGroup::BO_one_minus_constant_color) {
|
if (blend->_operand_b == EggGroup::BO_one_minus_constant_color) {
|
||||||
if (blend->_color[0] == blend->_color[1] == blend->_color[2] == blend->_color[3] == 0) {
|
if ((blend->_color[0] == 0) && (blend->_color[1] == 0) && (blend->_color[2] == 0) && (blend->_color[3] == 0)) {
|
||||||
blend->_operand_b = EggGroup::BO_one;
|
blend->_operand_b = EggGroup::BO_one;
|
||||||
}
|
}
|
||||||
if (blend->_color[0] == blend->_color[1] == blend->_color[2] == blend->_color[3] == 1) {
|
if ((blend->_color[0] == 1) && (blend->_color[1] == 1) && (blend->_color[2] == 1) && (blend->_color[3] == 1)) {
|
||||||
blend->_operand_b = EggGroup::BO_zero;
|
blend->_operand_b = EggGroup::BO_zero;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user