Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O IRIS GL e o OpenGL manipulam matrizes e transformações de maneira semelhante. Mas há várias diferenças a serem pensadas ao portar código do IRIS GL:
No OpenGL, você está sempre no modo de matriz dupla; não há nenhum modo de matriz única.
Os ângulos são medidos em graus, em vez de décimos de graus.
Chamadas de matriz de projeção, como glFrustum e glOrtho, agora multiplicam para a matriz atual, em vez de serem carregadas na matriz atual.
A função OpenGL, glRotate, é muito diferente de girar. Você pode girar em torno de qualquer eixo arbitrário, em vez de ficar confinado aos eixos x, y e z. Por exemplo, você pode traduzir:
rotate(200*(i+1), 'z');
Para:
glRotate(.1*(200*(i+1), 0.0, 0.0, 1.0);
Ao traduzir de girar para glRotate você alternar para graus de décimos de graus e substituir 'z' por um vetor para o eixo z.
O OpenGL não tem equivalente à função de visão polar. Você pode substituí-lo facilmente por uma tradução e três rotações. Por exemplo, você pode traduzir:
polarview(distance, azimuth, incidence, twist);
Para:
glTranslatef( 0.0, 0.0, -distance); glRotatef( -twist * 10.0, 0.0, 0.0, 1.0); glRotatef( -incidence * 10.0, 1.0, 0.0, 0.0); glRotatef( -azimuth * 10.0, 0.0, 0.0, 1.0);
A tabela a seguir lista as funções de matriz OpenGL e suas funções GL do IRIS equivalentes.
Função IRIS GL | Função OpenGL | Significado |
---|---|---|
mmode | glMatrixMode | Define o modo de matriz atual. |
glLoadIdentity | Substitui a matriz atual pela matriz de identidade. | |
loadmatrix |
glLoadMatrixf,glLoadMatrixd |
Substitui a matriz atual pela matriz especificada. |
multmatrix |
glMultMatrixf,glMultMatrixd |
Pós-multiplica a matriz atual com a matriz especificada (observe que multmatrix pré-multiplicado). |
mapeado, mapw2 | gluUnProject | Projeta coordenadas de espaço mundial para o espaço do objeto (consulte também gluProject). |
de orto | glOrtho | Multiplica a matriz atual por uma matriz de projeção ortográfica. |
orto2 | gluOrtho2D | Define uma matriz de projeção ortográfica bidimensional. |
perspectiva | gluPerspective | Define uma matriz de projeção de perspectiva. |
picksize | gluPickMatrix | Define uma região de seleção. |
popmatrix | glPopMatrix | Exibe a pilha de matriz atual, substituindo a matriz atual pela que está abaixo dela. |
pushmatrix | glPushMatrix | Efetua push da pilha de matriz atual para baixo por um, duplicando a matriz atual. |
girar,rotear |
glRotated,glRotatef |
Gira o sistema de coordenadas atual pelo ângulo fornecido sobre o vetor da origem por meio do ponto fornecido. Observe que girar girado apenas sobre os eixos x, y e z. |
de escala |
glScaled,glScalef |
Multiplica a matriz atual por uma matriz de dimensionamento. |
traduzir |
glTranslatef, glTranslated |
Move a origem do sistema de coordenadas para o ponto especificado, multiplicando a matriz atual por uma matriz de tradução. |
da janela | glFrustum | Determinadas coordenadas para planos de recorte, multiplica a matriz atual por uma matriz de perspectiva. |
O OpenGL tem três modos de matriz, que são definidos com glMatrixMode. A tabela a seguir lista os modos disponíveis como parâmetros para glMatrixMode.
Modo de matriz GL do IRIS | Modo OpenGL | Significado | Profundidade de pilha mínima |
---|---|---|---|
MTEXTURE | GL_TEXTURE | Opera na pilha de matriz de textura. | 2 |
MVIEWING | GL_MODELVIEW | Opera na pilha de matrizes de exibição de modelo. | 32 |
MPROJECTION | GL_PROJECTION | Opera na pilha da matriz de projeção. | 2 |