I have tried among others removing different types of transparency, removing the transparency.
I think it is a problem of the transformation and the light. I do not have enough rendering knowledge to be sure, but I think this happens because the transformation is a mirrored transformation, so it is not just a rotation and scaling, but a multiplication by a negative value.
In my test:
Code: Select all
double trsl=0;
std::list<gp_Trsf>::const_iterator trsf = (o->second).begin();
for (unsigned int i=0; i < (o->second).size(); i++,trsf++) {
trsl+=9;
Base::Matrix4D mat;
mat.setToUnity();
mat.scale(-1.0,-1.0,-1.0);
mat.move(0,trsl,0);
//Part::TopoShape::convertToMatrix(*trsf,mat);
without the "scale" line, the cubes are red, with it they are black.
I think it might be related to the direction of the normal of the faces of the mesh after transformation. However, as I said, it is pure speculation as I deeply ignore this topic. Maybe somebody more knowledgeable can throw some light (at least to the cube so that it shines red
).