Desenho de objetos em OpenGL -- Computação Gráfica |
jSSeção 3.1 |
3.1. Janela de Visualização |
Janela de Visualização é local onde a imagem será visualizada. Para defini-la é necessário a utilização do comando Viewport . Abaixo são descritos os parâmetros relativos ao mesmo: >> Viewport ( int x, int y, sizei w, sizei h) , onde: x e y -> são as coordenadas x e y (em
pixels) em relação ao Canvas no qual a janela de visualização é
criada Veja a figura abaixo: A janela de visualização está demarcada pela área azul.O triângulo está dentro da janela de visualização de forma semelhante ao exemplo básico. Em volta dela tem o que nós chamamos de Canvas. Este por sua vez está definido na área cliente do formulário. Na figura também percebe-se onde se localiza o ponto (X,Y) recebido como parâmetro no comando glViewPort. O processo da criação do Canvas está descrito no procedimento OnInit() do exemplo básico, conforme abaixo: >> MyFrame *frame = new MyFrame(NULL, "Exemplo Basico", wxPoint(50, 50), Não é o objetivo desse tutorial ficar
detalhando comandos da wxWindows. O que interessa para nós é que o
formulário está sendo criado através do primeiro comando destacado. E o
Canvas está sendo criado com o segundo comando destacado. Ele
está na posição (0,0) em relação a área cliente do formulário e seu
tamanho e altura são ambos 350 pixels. A partir daí a janela de
visualização já pode ser configurada. Vamos voltar ao exemplo básico e fazer algumas alterações em relação ao Viewport. Repare que Viewport está definido no procedimento Reshape conforme abaixo: static void Reshape(int width, int height) Obs: O comando GLint transforma uma coordenada inteira (int) numa coordenada inteira nos padrões do OpenGL . Neste caso o Viewport está configurado para a posição (0,0) . Vamos alterar a posição para (-100,-100) conforme abaixo: static void Reshape(int width, int
height)
|
||||
Efeito ao especificar as novas coordenadas (X,Y) |
||||
Repare que o Canvas continuou no mesmo lugar e o que mudou foi a janela de visualização. É importante ressaltar que somente a área comum entre o Canvas e a janela de visualização será visualizada pelo usuário.
|
||||
Verifique os resultados abaixo:
|
||||
glViewport(0,0, (GLint)width, (GLint)height); |
glViewport(-100,-100,(GLint)width, (GLint)height); |
|||
|
[anterior] |
[próxima] |