A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico.

Apresentações semelhantes


Apresentação em tema: "António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico."— Transcrição da apresentação:

1 António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico

2 Definições Pipeline: Como é chamado o conjunto das etapas de realização de um processo quando este envolve mais de um estágio. Pipeline Gráfico: Ou Pipeline de Renderização, se refere ao conjunto dos processos que acontecem via hardware por meio de uma placa de vídeo que envolve desde a definição de vértices até a renderização decorrente na tela.

3 Pipeline Gráfico O pipeline gráfico normalmente aceita como entrada cenários 3D e resulta em uma imagem raster 2D de saída. OpenGL e Direct3D são dois modelos de pipeline gráfico aprovados como padrão na indústria.

4 Pipeline Gráfico Uma representação possível:

5 Pipeline Gráfico A ordem das operações no OpenGL pode ser vista como seguindo a ordem representada pelo pipeline abaixo: 5

6 Display Lists 6 Os comandos (geometria ou pixels) podem ser compilados numa display list Estes comandos são armazenados de forma eficiente e enviados para o pipeline sempre que a display list é executada.

7 Evaluators 7 Toda a geometria deve ser descrita usando vértices. Curvas e superfícies paramétricas, que são inicialmente descritas usando pontos de controle e funções base, são convertidas em representações baseadas em vértices pelos evaluators.

8 Operações por vértice 8 Transformações geométricas e projecção no espaço do êcran. Iluminação (cálculo da cor do vértice) Coordenadas de textura

9 Montagem das primitivas 9 View Frustrum clipping. Back face culling, depth evaluation and perspective division Output: Primitivas geométricas transformadas com info sobre cor e coordenadas de texturas para cada vértice

10 Operações por pixel 10 Transformação de formatos, transformações aplicadas às texturas Leituras do frame buffer.

11 Montagem de texturas 11 Texture objects. Muti-texturing. Essencialmente, optimizações ao armazenamento e acesso (read/write) a texturas

12 Rasterização 12 Conversão das primitivas geométricas em fragmentos. Cada fragmento corresponde a um pixel no frame buffer. Cálculo dos fragmentos correspondentes ao interior de um polígono. Cálculo cor, profundidade e coord. de textura por fragmento (interpolação)

13 Operações por fragmento 13 Aplicação de um texel a cada fragmento. Cálculo de nevoeiro (fog). Alpha-test e depth-buffer test (remoção de superfícies ocludidas) Blending, dithering and masking. Escrita final no frame buffer.

14 Redundância Todos os vértices são iluminados, antes de ser feito qualquer tipo de culling Todas as primitivas que passam o teste de culling dão origem a fragmentos e todos os fragmentos recebem uma cor, coordenadas de textura e um texel antes do teste do Z-buffer Corolário: São processados muitos vértices e fragmentos que acabarão por não ser visíveis 14 IluminaçãoRaster View Frustrum & Back face culling Texturização Alpha & Z Test

15 View Frustrum Culling Detectar, por software (i.e., no CPU), quais as primitivas geométricas que não são visíveis por não pertencerem ao campo de visão da câmara 15

16 View Frustrum Culling Determinar a forma do frustrum 16 Definição do frustrum gluPerspective(fov, ratio, nearDist, farDist); gluLookAt(px,py,pz, lx,ly,lz, ux,uy,uz)

17 View Frustrum Culling Objectos –Testar se TODOS os vértices de TODOS os polígonos que constituem um objecto estão fora do frustrum não é suficiente para garantir que o objecto está totalmente fora do frustrum –De qualquer forma, testar todos os vértices poderia levar mais tempo do que deixar ser o sistema gráfico a fazer o clipping 17

18 View Frustrum Culling Objectos –Uma alternativa é calcular um volume elementar que contenha toda a geometria do objecto e testar se este volume está dentro do frustrum –Volumes elementares: esferas e Axis Aligned Boxes (AAB) 18 Dependendo da forma do objecto o volume pode ser mais ou menos eficaz, isto é, ser considerado dentro do frustrum sem que nenhum triângulo aí contido esteja efectivamente dentro do frustrum

19 View Frustrum Culling Hierarquia de Volumes –Para cenas complexas pode-se justificar utilizar hierarquias: se uma AAB de nível mais elevado não pertence ao frustrum, então não se justifica testar as interiores 19

20 Shader - O shader consiste em modificar o pipeline gráfico em dois pontos: Vértices e Pixels. - No tratamento do vértice pode-se mudar a cor, vetor de reflexão, posição, etc. Tem melhor desempenho que o outro. - No tratamento de pixels pode fazer alterações de cor e posição, é mais pesado pois executa em todos os pixels da imagem. - Para programar Shader é necessário verificar se o programa usado (modelador 3d, game engine) tem suporte a shader e como importá-los. - Depois pode-se programar em HLSL (específico do DirectX), GLSL (específico do OpenGL) ou NVidia's Cg (funciona como HLSL + GLSL).


Carregar ppt "António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico."

Apresentações semelhantes


Anúncios Google