Computação Gráfica
Apresentação
Pré-requisitos
Atividades práticas
Visualizando este site
1
Configuração do ambiente
1.1
Linux
Habilitando o OpenGL
Atualizando o GCC
Instalando o Emscripten
1.2
macOS
Instalando o Emscripten
1.3
Windows
Habilitando o OpenGL
Instalando o Emscripten
1.4
Visual Studio Code
1.5
ABCg
Instalação
Compilando em linha de comando
Compilando no Visual Studio Code
Depurando no Visual Studio Code
Compilando para WebAssembly
2
Introdução
2.1
Áreas correlatas
2.2
Linha do tempo
1950
1960
1970
1980
1990
2000
2010
2020
2.3
Primeiro programa
Configuração inicial
main.cpp
openglwindow.hpp
openglwindow.cpp
Compilando para WebAssembly
3
Sistemas gráficos
3.1
Vetorial
x
matricial
Representação vetorial
Representação matricial
3.2
Dispositivos de E/S
Dispositivos de entrada
Dispositivos de saída
3.3
Framebuffer
Screen tearing
Vsync
Backbuffering
3.4
Triângulo de Sierpinski
Configuração inicial
main.cpp
openglwindow.hpp
openglwindow.cpp
4
Pipeline gráfico
4.1
Dados gráficos
4.2
Ray casting
x
rasterização
Ray casting
Rasterização
4.3
Pipeline do OpenGL
Aplicação
Vertex shader
Montagem de primitivas
Recorte
Rasterização
Fragment shader
Operações de fragmentos
4.4
Triângulos coloridos
Configuração inicial
main.cpp
openglwindow.hpp
openglwindow.cpp
5
Desenvolvendo um jogo 2D
5.1
Polígonos regulares
Configuração inicial
main.cpp
openglwindow.hpp
openglwindow.cpp
5.2
Asteroids
Organização do projeto
Configuração inicial
Nave
Estrelas
Asteroides
Tiros e colisões
6
Espaços e geometria
6.1
Espaço vetorial
Combinação e independência linear
Dimensão e base
Vetores geométricos
6.2
Espaço afim
Combinação afim
6.3
Espaço euclidiano
Frames
Produto escalar
Ortogonalidade
Comprimento e distância
Normalização
Ângulo entre vetores
Projeção ortogonal
Produto vetorial
Vetor normal
6.4
Lendo um modelo 3D
Orientação e face culling
Configuração inicial
main.cpp
loadmodel.vert
loadmodel.frag
openglwindow.hpp
openglwindow.cpp
7
Matrizes e transformações
7.1
Matrizes
Matriz transposta
Matriz quadrada
Matriz linha/coluna
Matriz identidade
Operações
Matriz inversa
Matriz ortogonal
Propriedades
Transformação
7.2
Coordenadas homogêneas
7.3
Concatenação de transformações
7.4
Transformações
Identidade
Translação
Escala
Rotação
7.5
Espaços do OpenGL
Espaço do objeto
Espaço do mundo
Espaço da câmera
Concatenação das matrizes de modelo e visão
7.6
Câmera LookAt
Construindo o vetor n
Construindo o vetor u
Construindo o vetor v
Construindo a matriz de visão
7.7
LookAt na prática
Configuração inicial
main.cpp
lookat.vert
lookat.frag
camera.hpp
camera.cpp
openglwindow.hpp
openglwindow.cpp
8
Projeções e trackball virtual
8.1
Projeção ortográfica
Translação
Escala e reflexão
Matriz de projeção
8.2
Projeção perspectiva
Matriz de projeção
8.3
Trackball virtual
Rotação em torno de um eixo arbitrário
8.4
Visualizador 3D
Configuração inicial
main.cpp
depth.vert
depth.frag
model.hpp
model.cpp
trackball.hpp
trackball.cpp
openglwindow.hpp
openglwindow.cpp
8.5
Efeito starfield
Configuração inicial
main.cpp
depth.vert
depth.frag
openglwindow.hpp
openglwindow.cpp
9
Iluminação
9.1
Equação de renderização
9.2
Modelo de reflexão de Phong
Reflexão ambiente
Reflexão difusa
Reflexão especular
Modelo completo
Iluminação colorida
Fontes de luz
9.3
Modelo de Blinn–Phong
9.4
Sombreamento
Flat
Gouraud
Phong
9.5
Normais como cores
Configuração inicial
model.hpp
model.cpp
openglwindow.hpp
openglwindow.cpp
normal.frag
normal.vert
9.6
Iluminação na prática
Phong com sombreamento de Gouraud
Phong com sombreamento de Phong
Blinn-Phong com sombreamento de Phong
10
Texturização
10.1
Mapeamento
Mapeamento planar
Mapeamento cilíndrico
Mapeamento esférico
Mapeamento UV unwrap
10.2
Empacotamento
10.3
Filtragem
Magnificação
Minificação
10.4
Texturização na prática
Gerando texturas
Carregando modelos com textura
Renderizando
10.5
Mapeamento de normais
Espaço tangente
Transformação para o espaço tangente
Vetor tangente e bitangente
Mapeamento de normais na prática
10.6
Mapeamento de ambiente
Mapeamento esférico
Mapeamento cúbico
Mapeamento de ambiente na prática
Atividades entregues
Atividade 1
Atividade 2
Atividade 3
Referências
Harlen Batagelo
MCTA008-17 Computação Gráfica
Atividades entregues