Потому что происходит отбор лица .
Средство рендеринга настроено так, чтобы показывать только треугольники, нормали которых направлены в направлении камеры. Треугольники, ориентированные наоборот, считаются «задними гранями» и поэтому пропускаются по соображениям производительности.
К сожалению, это кажется жестко закодированным в Qt, как показано в классе abstract3drenderer. cpp:
void Abstract3DRenderer::initializeOpenGL()
{
m_context = QOpenGLContext::currentContext();
// Set OpenGL features
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
// ...
Я не уверен, что вы можете переопределить это, так как 3D-рендеринг является закрытым.
Один из возможных способов - предоставить файл .obj с двумя плоскостями, один с нормали обращены в одну сторону, а другие с нормалями поворачиваются на 180 °. Хотя это может создать другие проблемы, такие как Z-бой ...