Я создаю LocatorNode в Maya, который отображает куб с помощью OpenGL (Viewport 2.0) со следующим кодом:
glBegin (GL_QUADS);
// top
glNormal3f (0.0f, 0.0f, 1.0f); glVertex3f (1, 1, 1);
glNormal3f (0.0f, 0.0f, 1.0f); glVertex3f (1, -1, 1);
glNormal3f (0.0f, 0.0f, 1.0f); glVertex3f (-1, -1, 1);
glNormal3f (0.0f, 0.0f, 1.0f); glVertex3f (-1, 1, 1);
// bottom
glNormal3f (0.0f, 0.0f, -1.0f); glVertex3f (1, 1, -1);
glNormal3f (0.0f, 0.0f, -1.0f); glVertex3f (-1, 1, -1);
glNormal3f (0.0f, 0.0f, -1.0f); glVertex3f (-1, -1, -1);
glNormal3f (0.0f, 0.0f, -1.0f); glVertex3f (1, -1, -1);
// front
glNormal3f (1.0f, 0.0f, 0.0f); glVertex3f (1, 1, -1);
glNormal3f (1.0f, 0.0f, 0.0f); glVertex3f (1, -1, -1);
glNormal3f (1.0f, 0.0f, 0.0f); glVertex3f (1, -1, 1);
glNormal3f (1.0f, 0.0f, 0.0f); glVertex3f (1, 1, 1);
// back
glNormal3f (-1.0f, 0.0f, 0.0f); glVertex3f (-1, 1, -1);
glNormal3f (-1.0f, 0.0f, 0.0f); glVertex3f (-1, 1, 1);
glNormal3f (-1.0f, 0.0f, 0.0f); glVertex3f (-1, -1, 1);
glNormal3f (-1.0f, 0.0f, 0.0f); glVertex3f (-1, -1, -1);
// right
glNormal3f (0.0f, 1.0f, 0.0f); glVertex3f (-1, 1, -1);
glNormal3f (0.0f, 1.0f, 0.0f); glVertex3f (1, 1, -1);
glNormal3f (0.0f, 1.0f, 0.0f); glVertex3f (1, 1, 1);
glNormal3f (0.0f, 1.0f, 0.0f); glVertex3f (-1, 1, 1);
// left
glNormal3f (0.0f, -1.0f, 0.0f); glVertex3f (-1, -1, -1);
glNormal3f (0.0f, -1.0f, 0.0f); glVertex3f (-1, -1, 1);
glNormal3f (0.0f, -1.0f, 0.0f); glVertex3f (1, -1, 1);
glNormal3f (0.0f, -1.0f, 0.0f); glVertex3f (1, -1, -1);
glEnd ();
Однако, как вы можете видеть на изображении ниже, мой куб (справа) закрашен плоско, тогда как другой куб, созданный непосредственно в Maya (слева), закрашен правильно. Есть идеи, что мне нужно изменить в моем коде OpenGL, чтобы получить правильное затенение?