Pergunta

Estou cansado de pensar como diabos meus coodinatos estão trabalhando em cada caso.

Ouvi dizer que poderia virar o eixo y por este código:

glScalef(1, -1, 1);

Mas devo? Isso não quebra outras funções externas e iluminação etc?

Foi útil?

Solução

Não há resposta sim/não correta para esta pergunta. Chamando glScalef(1, -1, 1) significa usar um sistema de coordenadas canhoto em vez de direito, essa tem sido historicamente a escolha de, por exemplo, Direct3D e Renderman Interface. Algumas pessoas acham que é mais intuitivo ter o eixo z positivo apontando para a tela em vez de fora (que é uma versão de um sistema de coordenadas canhoto, o eixo y apontando para baixo é outro).

Se você optar por mudar o sistema de coordenadas, precisará alterar algumas das configurações padrão no OpenGL para fazê -lo funcionar. Por exemplo, você provavelmente quer ligar glCullFace(GL_FRONT) (ou reverte a ordem de todos os triângulos enviados para o OpenGL).

Outras dicas

Posso dizer que se acostumar com os padrões OpenGL é a maneira mais rápida de sair de confundir.

Eu poderia estar errado, mas isso pode transformar seus modelos de dentro para fora. Você provavelmente também precisará trocar sua ordem de enrolamento de vértice. Se você usa polígonos de dois lados, porém, não precisa se preocupar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top