O documento discute renderização gráfica em três frases ou menos:
1) Renderização gráfica é o processo de gerar imagens a partir de modelos 3D considerando geometria, textura, iluminação e outros fatores.
2) Existem diferentes técnicas de renderização como rasterização, ray casting e ray tracing que projetam a geometria 3D para gerar imagens 2D.
3) A GPU é responsável pelo processamento gráfico em tempo real e utiliza shaders para manipular vértices e pixels durante a renderização.
1. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
2. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
3. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Processo de gerar uma imagem a
partir de um modelo
› Modelo é a descrição de um objeto 3D,
informando geometria, ponto de visão,
textura, luz e shader
4. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
É usado em:
› Arquitetura
› Simuladores
› Filmes
› Efeitos Especiais
› Jogos
5. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Pode ser feito previamente
› Arquitetura
› Filmes
› Efeitos Especiais
Com isso se usa o
processamento para gerar um
resultado final
6. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Pode ser feito em
tempo real
› Simuladores
› Jogos
Nestes casos, os cálculos são
efetuados em tempo real, exigindo alto
desempenho e resposta rápida
7. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Shading
› Comportamento da Iluminação
Texture mapping
› Aplicação da textura
Bump Mapping
› Simulação de relevos simples
Fog
› A interceptação da luz na atmosfera
Shadows
› Criação de sombras
8. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Soft Shadows
› A variação de sombra de acordo com a quantidade de luz
Reflexão
› Simulação de superfície reflexiva
Transparência (óptica e gráfica) e Opacidade
› Transmissão de luz através de objetos sólidos
Translucência
› Alta disperção de luz através de objetos sólidos
Refração
› Curvatura da luz associada a transparência
9. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Difração
› Dobra, disperção e interferência da passagem de luz por um
objeto ou abertura
Iluminação Indireta
› Iluminação gerada a partir da reflexão de outras superfícies
Caustics
› Luminosidade a partir de objeto ou de luz através de objeto
Depth of Field
› Simulação de Foco Fotográfico
Motion Blur
› Desfoque por velocidade
10. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Non-photorealistic rendering
› Simulação de desenho ou pintura
11. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Rasterização
› Projeta a geometria para um ponto de
visão
Ray Casting
› Além de projetar, trabalha a luminosidade
de acordo com o ponto de visão
12. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Ray Tracing
› Semelhante a Ray casting, é mais
aprimorado e contém mais recursos
Radiosidade
› Aplicada em conjunto a uma das outras
técnicas, calcula a passagem de luz até a
superfície
13. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Tarefa de tornar uma imagem descrita
em uma imagem vetorial 3D em 2D
Também aplicada para converter uma
imagem vetorizada em uma imagem
bitmap.
14. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Transformation
› Manipulação da posição, rotação e
translação dos vértices de acordo com o
ponto de visão
15. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Pré-Vertex Lighting
› Calculo da iluminação nos vértices dos
polígonos processados, sendo então
interpolados durante a rasterização.
Viewing Transformation
› Transforma coordenadas de
um mundo 3D para a posição
e orientação de uma câmera
virtual
16. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Primitive Generation
› Geração de novas primitivas a partir da
transformação gerada pelo ponto de vista
da câmera
Projection Transformation
› Mapeamento dos planos de volume de
visão da câmera para os planos que
formam o Clip Space
17. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Clipping
› Descarte das primitivas não vistas pela
cena
Viewport Transformation
› Nova transformação para adequação a
resolução da tela
18. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Rasterização
› Projeção da imagem 3D no ambiente 2D
através da coordenada dos pixels.
Texturing
› Aplicação de textura baseada nos valores
de interpolação dos vértices durante a
rasterização
19. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Display
› Exibição no monitor
20. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Graphics Processing Unit
› Unidade de Processamento Grafico
› Responsável por calcular e processar o que
será exibido na tela
Criada para aliviar o processador do
processamento gráfico
› Renderização
21. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Clock
› GPU’s tem clock, visto que são
processadores
› O clock indica a quantidade de dados que
ela é capaz de processar
› 300Hz = 300 pulsos de clock / segundo
› 600MHz = 600 milhões de pulsos de clock/s
22. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Resolução e Cores
› MDA (Monochrome Display Adapter): 80 colunas com
25 linhas de caracteres, duas cores
› CGA (Color Graphics Adapter): 320x200 a 640x200
pixels com até 4 cores ao mesmo tempo entre 16
disponíveis;
› EGA (Enhanced Graphics Adapter): 640x350 com 16
cores ao mesmo tempo dentro de 64 possíveis;
› VGA (Video Graphics Adapter): 640x480 e 256 cores
simultaneamente ou 800x600 com 16 cores ao mesmo
tempo;
› SVGA (Super VGA): 800x600 em diante, com cor em até
32bits (4.294.967.296 Cores)
23. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Memoria
› Funciona assim como
uma memória Ram,
armazenando aquilo
que a GPU tem de
processar
24. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Pixel Shader
› Usado para luz, reflexo e sombras
› Consiste na manipulação dos pixels
Vertex Shader
› Semelhante ao Pixel Shader, mas manipula
vértices em tempo real
› Usado para deformações em tempo de
render
25. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Pixel Shader
26. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Vertex Shader
27. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Texture Mapping Unit
› Trata de rotacionar e manipular a imagem
de acordo com a posição a ser empregada
como textura
V-Sync
› Sincroniza a quantidade de frames a
velocidade de atualização do monitor,
evitando cortes de imagem
28. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Antialiasing
› Suavização de serrilhado em bordas
Anisotropic Filtering
› Aumento de nitidez em texturas
29. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Antialiasing
30. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Anisotropic Filtering
31. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Como integrar?
› API’s
DirectX
OpenGL
32. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Atualmente na versão 11
› Suporte a Ray Tracing
› Suporte a Pixel Shader 4.1
› Aprimoração em texturas e Antialiasing
33. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Atualmente na versão 4.0 (estável)
De código aberto
34. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Para que serve
› Programação de Shaders (Pixel e Vertex)
principalmente, atuando diretamente na
GPU
Foi criada para aumentar a abstração
da programação, substituindo o
Assembly por C
35. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
Onde isto se encaixa no render?
› Cg é usada em conjunto com bibliotecas
OpenGL e DirectX, visto que não gerencia
o render sozinha
› Aproveitando dos recursos das bibliotecas
da API, consegue obter melhor resultado
em conjunto com a GPU
36. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais
É usada em:
› Crystal Space
› Far Cry
› OGRE
› Unity game engine
› Virtools Dev
› Enemy Territory: Quake Wars
37. Luiz Gustavo de Sousa
Professor Donizetti Louro
Jogos Digitais