Transformando coordenadas
A GLU (biblioteca do Utilitário OpenGL) fornece várias funções de transformação de matriz comumente usadas. Você pode configurar uma região de exibição ortográfica bidimensional com gluOrtho2D, um volume de exibição de perspectiva padrão usando gluPerspective ou um volume de exibição centrado em um ponto de vista especificado com gluLookAt. Cada uma dessas funções cria a matriz desejada e a aplica à matriz atual usando glMultMatrix.
A função gluPickMatrix simplifica a seleção de uma matriz de seleção criando uma matriz que restringe o desenho a uma pequena região do visor. Se você renderizar novamente a cena no modo de seleção depois que essa matriz tiver sido aplicada, todos os objetos que seriam desenhados perto do cursor serão selecionados e as informações sobre eles serão armazenadas no buffer de seleção. Para obter mais informações sobre o modo de seleção, consulte "Executando seleção e comentários" executando seleção e comentários.
Para determinar onde na janela um objeto está sendo desenhado, use gluProject, que converte as coordenadas de objeto especificadas objx, objy e objz em coordenadas de janela usando modelMatrix, projMatrix e viewport. O resultado é armazenado em winx, winy e winz. Se a função for bem-sucedida, o valor retornado será GL_TRUE. Se a função falhar, o valor retornado será GL_FALSE.
A função gluUnProject executa a conversão inversa: transforma as coordenadas de janela especificadas winx, winy e winz em coordenadas de objeto usando modelMatrix, projMatrix e viewport. O resultado é armazenado em objx, objy e objz. Se a função for bem-sucedida, o valor retornado será GL_TRUE. Se a função falhar, o valor retornado será GL_FALSE.