SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Câmera e Viewing 3D
Câmera e Viewing 3D
SCC0250/0650 - Computação Gráfica
Profa
. Rosane Minghim
https://edisciplinas.usp.br/course/view.php?id=61213
https://edisciplinas.usp.br/course/view.php?id=61210
rminghim@icmc.usp.br
P.A.E. Diego Cintra e Fábio Felix
diegocintra@usp.br, f_diasfabio@usp.br
Instituto de Ciências Matemáticas e de Computação (ICMC)
Universidade de São Paulo (USP)
baseado no material de anos anteriores, vários autores
23 de abril de 2018
1 / 21
Câmera e Viewing 3D
Sumário
1 Câmera
2 Projeções
3 ViewPort
2 / 21
Câmera e Viewing 3D
Câmera
Câmera virtual
A visualização de uma cena 3D é feita com o uso de uma “câmera”,
ou uma coordenada referência para essa abstração.
Um ponto definido como View Reference Point define a posição do
plano de vista (ou plano de projeção) da cena, que de fato é a
abstração do filme da câmera.
Esse plano define a porção visível da cena, contida no volume de
vista ou volume de visão.
3 / 21
Câmera e Viewing 3D
Câmera
Propriedades de uma câmera virtual
O ponto que define a posição inicial da câmera é o View Reference
Point.
Deste ponto, define-se um plano de projeção, ou View Plane.
Estabelecem-se versores para o View Reference Point, denominados
~
u, ~
v e ~
n, que definem o View Reference Coordinates (VRC).
O vetor ~
n caracteriza a normal do plano de projeção, definindo a
direção positiva de z.
O vetor ~
v define o View Up Vector (VUP), que especifica a direção
positiva de y e a direção da vista da cena.
O vetor ~
u é o resultado do produto vetorial entre o VUP e o vetor
normal do plano, que define a direção positiva de x.
A largura e altura da janela, contida no plano de projeção, são dadas
por parâmetros W e H.
4 / 21
Câmera e Viewing 3D
Câmera
Câmera - OpenGL
1 void gluLookAt(GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, ←-
GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble ←-
upZ);
5 / 21
Câmera e Viewing 3D
Projeções
Projeções
Obtém representações bidimensionais de objetos tridimensionais.
A projeção é definida por raios de projeção (projetores) que passam
através de cada vértice dos objetos e interceptam o plano de
projeção.
Uma projeção pode ser ou paralela ortográfica ou perspectiva.
A matriz de projeção é resultante de duas etapas: em um primeiro
momento, o volume de vista é normalizado, obtendo-se um volume
de vista canônico. A segunda etapa consiste na projeção das
coordenadas de vista no plano de projeção. Portanto, essa matriz é
obtida de maneira distinta, dependendo do tipo de projeção adotada.
6 / 21
Câmera e Viewing 3D
Projeções
Projeção paralela ou ortogonal
Projeta os pontos de um objeto ao longo de linhas paralelas. Essa
projeção geralmente é utilizada em desenhos arquitetônicos e de
engenharia para representação de um objeto mantendo suas propriedades
relativas.
7 / 21
Câmera e Viewing 3D
Projeções
Projeção paralela ou ortogonal - OpenGL
1 void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal);
8 / 21
Câmera e Viewing 3D
Projeções
Projeção paralela ou ortogonal - matriz
Morthon =





2
xwmax−xwmin
0 0 −xwmax+xwmin
xwmax−xwmin
0 2
ywmax−ywmin
0 −ywmax+ywmin
ywmax−ywmin
0 0 − 2
dnear−dfar
dnear+dfar
dnear−dfar
0 0 0 1





Essa é uma matriz genérica e não é necessáriamente a matriz utilizada
pela OpenGL. Verificar a documentação da função glOrtho.
9 / 21
Câmera e Viewing 3D
Projeções
Projeção perspectiva
Projeta os pontos de um objeto ao longo de caminhos convergentes. O
volume de vista formado por essa projeção é um tronco de uma pirâmide,
sem o topo, denominado frustum. Isso faz com que objetos distantes do
plano de projeção fiquem menores do que objetos mais próximos do
plano, causando maior realismo na cena.
10 / 21
Câmera e Viewing 3D
Projeções
Projeção perspectiva - OpenGL
1 void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal);
11 / 21
Câmera e Viewing 3D
Projeções
Matriz de projeção
Mpern =





−2dnear
xwmax−xwmin
0 xwmax+xwmin
xwmax−xwmin
0
0 −2dnear
ywmax−ywmin
ywmax+ywmin
ywmax−ywmin
0
0 0
dnear+dfar
dnear−dfar
−
2dneardfar
dnear−dfar
0 0 −1 0





Essa é uma matriz genérica e não é necessáriamente a matriz utilizada
pela OpenGL. Verificar a documentação da função glFrustum.
12 / 21
Câmera e Viewing 3D
Projeções
Projeção perspectiva simétrica - OpenGL
1 void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
13 / 21
Câmera e Viewing 3D
Projeções
Matriz de projeção
MperSn =





cot (θ
2 )
aspect 0 0 0
0 cot θ
2

0 0
0 0
dnear+dfar
dnear−dfar
−
2dneardfar
dnear−dfar
0 0 −1 0





14 / 21
Câmera e Viewing 3D
Projeções
Teste de profundidade
Informações de profundidade são importantes para bibliotecas
gráficas, pois dependendo da projeção, pode haver ambiguidade na
visualização de certos objetos. Algumas soluções adotadas por
sistemas gráficos incluem:
Destacar as arestas ou linhas visíveis de um objeto com outra cor;
Definir as linhas ou arestas não visíveis com linhas tracejadas;
Remover as arestas ou linhas não visíveis.
15 / 21
Câmera e Viewing 3D
ViewPort
Viewport e coordenadas de tela
Após o conteúdo do volume de visão ter sido definido, esse pode ser trans-
ferido para coordenadas da tela.
Esse é um processo semelhante ao 2D, porém informação de profundidade
é preservada para teste de visibilidade e rendering.
A variável z é normalizada entre 0 e 1, sendo que z = 0 temos a
altura da tela
16 / 21
Câmera e Viewing 3D
ViewPort
Viewport e coordenadas de tela
Nas coordenadas normalizadas, znorm = −1 é mapeada para a coordenada
na tela zscreen = 0
Viewport é definida como (xvmin, yvmin, 0) e (xvmax, yvmax, 1)
As posições x e y são enviadas para o frame buffer (informação de cor
para os pontos na tela)
Os valores de z são enviados para o depth buffer para serem usados em
rotinas para determinação de cor e visibilidade.
Mviewport =




xvmax−xvmin
2 0 0 xvmax+xvmin
2
0 yvmax−yvmin
2 0 yvmax+yvmin
2
0 0 1/2 1/2
0 0 0 1




17 / 21
Câmera e Viewing 3D
ViewPort
Viewing 3D
Viewing 3D: Etapa de geração de coordenadas de recorte para cada
vértice da cena.
Realizada na etapa de processamento de vértices do pipeline da
OpenGL.
18 / 21
Câmera e Viewing 3D
ViewPort
Observações
Para trabalhar com 3D, a depender das necessidades, habilitar a detecção
de faces visíveis dos objetos.
1 //Dizer para a OpenGL utilizar o buffer de profundidade (GLUT_DEPTH)
2 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
3
4 ...
5
6 //Habilitar o teste de profundidade
7 glEnable(GL_DEPTH_TEST);
8
9 //Informar qual tipo de teste deve ser realizado:
10 //GL_ALWAYS (todos os pontos sao processados), GL_NEVER (nenhum ponto e processado),
11 //GL_LESS (default), GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, ←
-
GL_GEQUAL
12 glDepthFunc(GL_LESS);
13
14 //Se necessario habilitar a remocao de faces
15 glEnable(GL_CULL_FACE);
16
17 //E informar qual face deve ser removida: GL_BACK (default), GL_FRONT, ←
-
GL_FRONT_AND_BACK
18 glCullFace(GL_BACK);
19
20 ...
21
22 //Inicializar os valores do buffer de profundidade
23 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
19 / 21
Câmera e Viewing 3D
ViewPort
Bibliografia
Básica:
Hearn, D. Baker, M. P. Computer Graphics with OpenGL, Prentice
Hall, 2004. (livro texto)
Neider, J. Davis, T. Woo, M. OpenGL programming guide, 2007.
Angel, E. Interactive computer graphics: a top-down approach with
OpenGL, Addison Wesley, 2000.
Foley, J. et. al. Introduction to Computer Graphics, Addison-Wesley,
1993.
Angle, E. and Shreiner, D., 2011. Interactive computer graphics: A
topdown approach with shader-based opengl.
20 / 21
Câmera e Viewing 3D
ViewPort
Bibliografia
Complementar:
Computer Graphics Comes of Age: An Interview with Andries van
Dam. CACM, vol. 27, no. 7. 1982
The RenderMan – And the Oscar Goes to... IEEE Spectrum, vol. 38,
no. 4, abril de 2001.
Material do ano passado:
https://sites.google.com/site/computacaograficaicmc2017t2/
Apostilas antigas da disciplina Computação Gráfica
http://www.gbdi.icmc.usp.br/material?q=system/files/
apostilas.pdf
Curso da ACM SIGGRAPH (on line)
21 / 21

Mais conteúdo relacionado

Semelhante a 3D Camera and Projections in 40 Characters

Curso de autocad 2007 3 d
Curso de autocad 2007 3 dCurso de autocad 2007 3 d
Curso de autocad 2007 3 dJosué Lima
 
Ambiente de trabalho 3ds Max
Ambiente de trabalho 3ds MaxAmbiente de trabalho 3ds Max
Ambiente de trabalho 3ds MaxPedro Costa
 
Projecto Condução Autónoma
Projecto Condução AutónomaProjecto Condução Autónoma
Projecto Condução AutónomaNuno Reis
 
Auto cad 2014-desenvolvendo-projetos-em-3d
Auto cad 2014-desenvolvendo-projetos-em-3dAuto cad 2014-desenvolvendo-projetos-em-3d
Auto cad 2014-desenvolvendo-projetos-em-3dDalton Lara Stella
 
CG7-Projecoes .pdf
CG7-Projecoes .pdfCG7-Projecoes .pdf
CG7-Projecoes .pdfSuellenBaia
 
Animação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos
Animação Foto-Realista de Fluidos Utilizando Métodos LagrangeanosAnimação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos
Animação Foto-Realista de Fluidos Utilizando Métodos LagrangeanosJoão Vicente P. Reis Fo.
 
Aula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoAula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoFábio Costa
 
Aula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoAula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoFábio Costa
 
Pil e segmentacao automatica de vídeo
Pil e segmentacao automatica de vídeoPil e segmentacao automatica de vídeo
Pil e segmentacao automatica de vídeowhanderley freitas
 
Manual de Autocad 14 avançado - aula 11 - Trabalhar com sistemas de coordenadas
Manual de Autocad 14 avançado - aula 11 - Trabalhar com sistemas de coordenadasManual de Autocad 14 avançado - aula 11 - Trabalhar com sistemas de coordenadas
Manual de Autocad 14 avançado - aula 11 - Trabalhar com sistemas de coordenadasalexandre ribeiro
 
02 introdução ao open gl
02 introdução ao open gl02 introdução ao open gl
02 introdução ao open glAuberto Macie
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGLTDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGLAndré Curvello
 

Semelhante a 3D Camera and Projections in 40 Characters (20)

R 2008 3 d
R 2008 3 dR 2008 3 d
R 2008 3 d
 
Curso de autocad 2007 3 d
Curso de autocad 2007 3 dCurso de autocad 2007 3 d
Curso de autocad 2007 3 d
 
Palestra
PalestraPalestra
Palestra
 
Ambiente de trabalho 3ds Max
Ambiente de trabalho 3ds MaxAmbiente de trabalho 3ds Max
Ambiente de trabalho 3ds Max
 
Projecto Condução Autónoma
Projecto Condução AutónomaProjecto Condução Autónoma
Projecto Condução Autónoma
 
Auto cad 2014-desenvolvendo-projetos-em-3d
Auto cad 2014-desenvolvendo-projetos-em-3dAuto cad 2014-desenvolvendo-projetos-em-3d
Auto cad 2014-desenvolvendo-projetos-em-3d
 
Visão Computacional
Visão ComputacionalVisão Computacional
Visão Computacional
 
CG7-Projecoes .pdf
CG7-Projecoes .pdfCG7-Projecoes .pdf
CG7-Projecoes .pdf
 
Animação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos
Animação Foto-Realista de Fluidos Utilizando Métodos LagrangeanosAnimação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos
Animação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos
 
Aula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoAula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensao
 
Aula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoAula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensao
 
Tutorial slide
Tutorial slideTutorial slide
Tutorial slide
 
Vrml aula 89
Vrml aula 89Vrml aula 89
Vrml aula 89
 
document
documentdocument
document
 
Pil e segmentacao automatica de vídeo
Pil e segmentacao automatica de vídeoPil e segmentacao automatica de vídeo
Pil e segmentacao automatica de vídeo
 
Manual de Autocad 14 avançado - aula 11 - Trabalhar com sistemas de coordenadas
Manual de Autocad 14 avançado - aula 11 - Trabalhar com sistemas de coordenadasManual de Autocad 14 avançado - aula 11 - Trabalhar com sistemas de coordenadas
Manual de Autocad 14 avançado - aula 11 - Trabalhar com sistemas de coordenadas
 
02 introdução ao open gl
02 introdução ao open gl02 introdução ao open gl
02 introdução ao open gl
 
CGPI Aula 27/08/2018
CGPI Aula 27/08/2018CGPI Aula 27/08/2018
CGPI Aula 27/08/2018
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGLTDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGL
 

3D Camera and Projections in 40 Characters

  • 1. Câmera e Viewing 3D Câmera e Viewing 3D SCC0250/0650 - Computação Gráfica Profa . Rosane Minghim https://edisciplinas.usp.br/course/view.php?id=61213 https://edisciplinas.usp.br/course/view.php?id=61210 rminghim@icmc.usp.br P.A.E. Diego Cintra e Fábio Felix diegocintra@usp.br, f_diasfabio@usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São Paulo (USP) baseado no material de anos anteriores, vários autores 23 de abril de 2018 1 / 21
  • 2. Câmera e Viewing 3D Sumário 1 Câmera 2 Projeções 3 ViewPort 2 / 21
  • 3. Câmera e Viewing 3D Câmera Câmera virtual A visualização de uma cena 3D é feita com o uso de uma “câmera”, ou uma coordenada referência para essa abstração. Um ponto definido como View Reference Point define a posição do plano de vista (ou plano de projeção) da cena, que de fato é a abstração do filme da câmera. Esse plano define a porção visível da cena, contida no volume de vista ou volume de visão. 3 / 21
  • 4. Câmera e Viewing 3D Câmera Propriedades de uma câmera virtual O ponto que define a posição inicial da câmera é o View Reference Point. Deste ponto, define-se um plano de projeção, ou View Plane. Estabelecem-se versores para o View Reference Point, denominados ~ u, ~ v e ~ n, que definem o View Reference Coordinates (VRC). O vetor ~ n caracteriza a normal do plano de projeção, definindo a direção positiva de z. O vetor ~ v define o View Up Vector (VUP), que especifica a direção positiva de y e a direção da vista da cena. O vetor ~ u é o resultado do produto vetorial entre o VUP e o vetor normal do plano, que define a direção positiva de x. A largura e altura da janela, contida no plano de projeção, são dadas por parâmetros W e H. 4 / 21
  • 5. Câmera e Viewing 3D Câmera Câmera - OpenGL 1 void gluLookAt(GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, ←- GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble ←- upZ); 5 / 21
  • 6. Câmera e Viewing 3D Projeções Projeções Obtém representações bidimensionais de objetos tridimensionais. A projeção é definida por raios de projeção (projetores) que passam através de cada vértice dos objetos e interceptam o plano de projeção. Uma projeção pode ser ou paralela ortográfica ou perspectiva. A matriz de projeção é resultante de duas etapas: em um primeiro momento, o volume de vista é normalizado, obtendo-se um volume de vista canônico. A segunda etapa consiste na projeção das coordenadas de vista no plano de projeção. Portanto, essa matriz é obtida de maneira distinta, dependendo do tipo de projeção adotada. 6 / 21
  • 7. Câmera e Viewing 3D Projeções Projeção paralela ou ortogonal Projeta os pontos de um objeto ao longo de linhas paralelas. Essa projeção geralmente é utilizada em desenhos arquitetônicos e de engenharia para representação de um objeto mantendo suas propriedades relativas. 7 / 21
  • 8. Câmera e Viewing 3D Projeções Projeção paralela ou ortogonal - OpenGL 1 void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal); 8 / 21
  • 9. Câmera e Viewing 3D Projeções Projeção paralela ou ortogonal - matriz Morthon =      2 xwmax−xwmin 0 0 −xwmax+xwmin xwmax−xwmin 0 2 ywmax−ywmin 0 −ywmax+ywmin ywmax−ywmin 0 0 − 2 dnear−dfar dnear+dfar dnear−dfar 0 0 0 1      Essa é uma matriz genérica e não é necessáriamente a matriz utilizada pela OpenGL. Verificar a documentação da função glOrtho. 9 / 21
  • 10. Câmera e Viewing 3D Projeções Projeção perspectiva Projeta os pontos de um objeto ao longo de caminhos convergentes. O volume de vista formado por essa projeção é um tronco de uma pirâmide, sem o topo, denominado frustum. Isso faz com que objetos distantes do plano de projeção fiquem menores do que objetos mais próximos do plano, causando maior realismo na cena. 10 / 21
  • 11. Câmera e Viewing 3D Projeções Projeção perspectiva - OpenGL 1 void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal); 11 / 21
  • 12. Câmera e Viewing 3D Projeções Matriz de projeção Mpern =      −2dnear xwmax−xwmin 0 xwmax+xwmin xwmax−xwmin 0 0 −2dnear ywmax−ywmin ywmax+ywmin ywmax−ywmin 0 0 0 dnear+dfar dnear−dfar − 2dneardfar dnear−dfar 0 0 −1 0      Essa é uma matriz genérica e não é necessáriamente a matriz utilizada pela OpenGL. Verificar a documentação da função glFrustum. 12 / 21
  • 13. Câmera e Viewing 3D Projeções Projeção perspectiva simétrica - OpenGL 1 void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar); 13 / 21
  • 14. Câmera e Viewing 3D Projeções Matriz de projeção MperSn =      cot (θ 2 ) aspect 0 0 0 0 cot θ 2 0 0 0 0 dnear+dfar dnear−dfar − 2dneardfar dnear−dfar 0 0 −1 0      14 / 21
  • 15. Câmera e Viewing 3D Projeções Teste de profundidade Informações de profundidade são importantes para bibliotecas gráficas, pois dependendo da projeção, pode haver ambiguidade na visualização de certos objetos. Algumas soluções adotadas por sistemas gráficos incluem: Destacar as arestas ou linhas visíveis de um objeto com outra cor; Definir as linhas ou arestas não visíveis com linhas tracejadas; Remover as arestas ou linhas não visíveis. 15 / 21
  • 16. Câmera e Viewing 3D ViewPort Viewport e coordenadas de tela Após o conteúdo do volume de visão ter sido definido, esse pode ser trans- ferido para coordenadas da tela. Esse é um processo semelhante ao 2D, porém informação de profundidade é preservada para teste de visibilidade e rendering. A variável z é normalizada entre 0 e 1, sendo que z = 0 temos a altura da tela 16 / 21
  • 17. Câmera e Viewing 3D ViewPort Viewport e coordenadas de tela Nas coordenadas normalizadas, znorm = −1 é mapeada para a coordenada na tela zscreen = 0 Viewport é definida como (xvmin, yvmin, 0) e (xvmax, yvmax, 1) As posições x e y são enviadas para o frame buffer (informação de cor para os pontos na tela) Os valores de z são enviados para o depth buffer para serem usados em rotinas para determinação de cor e visibilidade. Mviewport =     xvmax−xvmin 2 0 0 xvmax+xvmin 2 0 yvmax−yvmin 2 0 yvmax+yvmin 2 0 0 1/2 1/2 0 0 0 1     17 / 21
  • 18. Câmera e Viewing 3D ViewPort Viewing 3D Viewing 3D: Etapa de geração de coordenadas de recorte para cada vértice da cena. Realizada na etapa de processamento de vértices do pipeline da OpenGL. 18 / 21
  • 19. Câmera e Viewing 3D ViewPort Observações Para trabalhar com 3D, a depender das necessidades, habilitar a detecção de faces visíveis dos objetos. 1 //Dizer para a OpenGL utilizar o buffer de profundidade (GLUT_DEPTH) 2 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); 3 4 ... 5 6 //Habilitar o teste de profundidade 7 glEnable(GL_DEPTH_TEST); 8 9 //Informar qual tipo de teste deve ser realizado: 10 //GL_ALWAYS (todos os pontos sao processados), GL_NEVER (nenhum ponto e processado), 11 //GL_LESS (default), GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, ← - GL_GEQUAL 12 glDepthFunc(GL_LESS); 13 14 //Se necessario habilitar a remocao de faces 15 glEnable(GL_CULL_FACE); 16 17 //E informar qual face deve ser removida: GL_BACK (default), GL_FRONT, ← - GL_FRONT_AND_BACK 18 glCullFace(GL_BACK); 19 20 ... 21 22 //Inicializar os valores do buffer de profundidade 23 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 19 / 21
  • 20. Câmera e Viewing 3D ViewPort Bibliografia Básica: Hearn, D. Baker, M. P. Computer Graphics with OpenGL, Prentice Hall, 2004. (livro texto) Neider, J. Davis, T. Woo, M. OpenGL programming guide, 2007. Angel, E. Interactive computer graphics: a top-down approach with OpenGL, Addison Wesley, 2000. Foley, J. et. al. Introduction to Computer Graphics, Addison-Wesley, 1993. Angle, E. and Shreiner, D., 2011. Interactive computer graphics: A topdown approach with shader-based opengl. 20 / 21
  • 21. Câmera e Viewing 3D ViewPort Bibliografia Complementar: Computer Graphics Comes of Age: An Interview with Andries van Dam. CACM, vol. 27, no. 7. 1982 The RenderMan – And the Oscar Goes to... IEEE Spectrum, vol. 38, no. 4, abril de 2001. Material do ano passado: https://sites.google.com/site/computacaograficaicmc2017t2/ Apostilas antigas da disciplina Computação Gráfica http://www.gbdi.icmc.usp.br/material?q=system/files/ apostilas.pdf Curso da ACM SIGGRAPH (on line) 21 / 21