It seems it is not the problem in mesh Ogre Generated. I try to test in this way:
first I use the getvertices to generate:
Code:
for(uint32_t i = 0; i < vecVertices.size(); i++)
{
const PolyVox::PositionMaterialNormal& vertex = vecVertices.at(i);
PolyVox::Vector3DFloat vertex_pos = vertex.getPosition() /*+static_cast<PolyVox::Vector3DFloat>(mesh->m_Region.getLowerCorner())*/;
const PolyVox::Vector3DFloat v3dFinalVertexPos = vertex_pos + static_cast<PolyVox::Vector3DFloat>(mesh->m_Region.getLowerCorner());
oMO->position(v3dFinalVertexPos.getX(), v3dFinalVertexPos.getY(), v3dFinalVertexPos.getZ());
oMO->normal(vertex.getNormal().getX(), vertex.getNormal().getY(), vertex.getNormal().getZ());
oMO->index((Ogre::uint32)(vecIndices[i]));
//oMO->index(i);
}
the result is below.
Attachment:
effect1.Png [ 202.37 KiB | Viewed 1892 times ]
If I use the code below,
Code:
for(uint32_t i = 0; i < vecVertices.size(); i++)
{
const PolyVox::PositionMaterialNormal& vertex = vecVertices.at(i);
PolyVox::Vector3DFloat vertex_pos = vertex.getPosition() /*+static_cast<PolyVox::Vector3DFloat>(mesh->m_Region.getLowerCorner())*/;
const PolyVox::Vector3DFloat v3dFinalVertexPos = vertex_pos + static_cast<PolyVox::Vector3DFloat>(mesh->m_Region.getLowerCorner());
oMO->position(v3dFinalVertexPos.getX(), v3dFinalVertexPos.getY(), v3dFinalVertexPos.getZ());
oMO->normal(vertex.getNormal().getX(), vertex.getNormal().getY(), vertex.getNormal().getZ());
//oMO->index((Ogre::uint32)(vecIndices[i]));
oMO->index(i);
}
the result is,
Attachment:
effect2.jpg [ 141.3 KiB | Viewed 1892 times ]
Does it have a bug?