Computer Science › Especialização

Computação Gráfica

0 de 16
  1. Coordenadas Homogêneas e Transformações Afins 2D

    Uma matriz linear sozinha não consegue mover um ponto sem também mover a origem, então a translação, a operação mais comum em gráficos, não é linear e não pode ser expressa por uma matriz 2x2 comum; as coordenadas homogêneas consertam isto preenchendo todo ponto 2D com uma terceira coordenada (1 para pontos, 0 para vetores de direção) e usando matrizes 3x3, deixando translação, rotação e escala todas virarem a mesma operação: uma única multiplicação de matriz.

    Ler →6 seções8 min
  2. Transformações 3D e a Composição da Matriz Model

    Estende o truque homogêneo 2D do conceito anterior para matrizes 4x4 sobre (x, y, z, 1), depois responde a pergunta que fez `matrices-as-linear-transformations` importar em primeiro lugar: a multiplicação de matrizes é composição de funções, então um modelo transformado por escala, depois rotação, depois translação é uma única matriz, S depois R depois T multiplicadas juntas (da direita para a esquerda), aplicada a todo vértice uma vez. Construir esta única matriz model, corretamente ordenada (a ordem genuinamente muda o resultado, já que a multiplicação de matrizes não comuta), é o mecanismo do qual todo grafo de cena 3D e todo objeto animado no pipeline desta disciplina depende.

    Ler →6 seções7 min
  3. A Matriz View e o Espaço de Câmera

    Uma câmera é um objeto comum com uma posição e orientação, construída a partir das mesmas matrizes de rotação-e-translação usadas para qualquer objeto modelado, mas renderizar a partir do seu ponto de vista exige a operação oposta: a matriz view é a própria matriz de posicionamento da câmera invertida, movendo todo vértice de cena do espaço de mundo para o espaço de câmera, o sistema de coordenadas onde a câmera fica na origem olhando por um eixo fixo.

    Ler →6 seções9 min
  4. A Matriz de Projeção: Perspectiva e Clipping

    A matriz de projeção fecha a cadeia model-view-projection mapeando o frustum de visão de uma câmera, seja a pirâmide truncada de uma câmera de perspectiva ou a caixa retangular de uma ortográfica, num cubo de espaço de clip padronizado; o efeito de perspectiva em si vem de um passo específico, a divisão de perspectiva (dividir x, y e z por w, onde w codifica a profundidade), não da multiplicação de matriz sozinha.

    Ler →6 seções9 min
  5. Rasterização de Triângulos: Funções de Aresta e Coordenadas Baricêntricas

    O teste de função de aresta de Pineda de 1988 decide se um pixel se situa dentro de um triângulo com três avaliações lineares, uma por aresta, todas não negativas para um ponto interior dado um enrolamento consistente; os mesmos três valores, normalizados pela área fixa do triângulo, são exatamente as coordenadas baricêntricas do ponto, que interpolam qualquer atributo por vértice com um conjunto compartilhado de pesos.

    Ler →6 seções8 min
  6. Z-Buffering e Determinação de Visibilidade

    Rasterizar todo triângulo numa cena, em qualquer ordem, produz fragmentos sobrepostos para o mesmo pixel; este conceito cobre o mecanismo que torna a ordem de desenho irrelevante, um buffer de profundidade por pixel que mantém só o fragmento mais próximo visto até agora, computado com a exata interpolação baricêntrica de profundidade por vértice que o conceito anterior acabou de construir. O z-buffering é o algoritmo de visibilidade real e padrão que todo pipeline baseado em rasterização usa, e este conceito enuncia o seu custo de fato (uma leitura-comparação-escrita extra por fragmento, mais o seu próprio modo de falha honesto com superfícies transparentes) em vez de apresentá-lo como uma abstração gratuita.

    Ler →6 seções8 min
  7. Iluminação Local: Reflexão Difusa Lambertiana

    A reflexão difusa lambertiana modela a cor de uma superfície perfeitamente fosca como proporcional ao cosseno do ângulo entre a sua normal e a direção à luz, computado como uma única multiplicação escalar entre dois vetores unitários, multiplicado pelo albedo da superfície e pela cor e intensidade da luz, e limitado a zero sempre que esse produto escalar é negativo (a luz está atrás da superfície daquele ponto).

    Ler →6 seções7 min
  8. Reflexão Especular: Os Modelos de Phong e Blinn-Phong

    Um destaque especular é um efeito genuinamente dependente da visão que a reflexão difusa não consegue produzir; o modelo de Phong de 1975 o adiciona comparando um vetor de reflexão explícito contra a direção de visão, elevado a um expoente de brilho, enquanto a refinação de Blinn de 1977 computa o mesmo comportamento de pico de forma mais barata usando o vetor halfway, e ambos são adicionados em cima de, nunca substituídos pelo, termo difuso.

    Ler →6 seções8 min
  9. Interpolação de Sombreamento: Flat, Gouraud e Phong

    As equações de iluminação construídas nos dois conceitos anteriores podem ser avaliadas em três pontos diferentes do pipeline: uma vez por triângulo (flat, barato mas visivelmente facetado), uma vez por vértice com a cor resultante interpolada (Gouraud, três avaliações por triângulo mas capaz de perder um destaque especular que cai entre vértices), ou uma vez por fragmento com a própria normal interpolada primeiro (sombreamento Phong, uma avaliação completa por fragmento, pegando corretamente destaques em qualquer lugar do interior do triângulo, a custo extra real).

    Ler →6 seções8 min
  10. A Equação de Renderização e os Limites do Sombreamento de Tempo Real

    A equação de renderização de Kajiya de 1986 enuncia o problema físico completo do transporte de luz precisamente: a luz de saída num ponto é igual à luz emitida mais uma integral, sobre toda direção de entrada, da luz de entrada espalhada, que é ela mesma recursivamente a luz de saída de qualquer outra superfície que se situe naquela direção; a iluminação local de tempo real computa uma truncação deliberada e nomeada desta equação.

    Ler →6 seções9 min
  11. Ray Casting: Gerando e Intersectando Raios

    O ray tracing trabalha de trás para frente a partir de cada pixel: um raio é gerado da câmera por esse pixel usando a equação do raio P(t) = origin + t * direction, e encontrar o que ele atinge se reduz a resolver um teste de interseção por objeto, trabalhado aqui por completo para uma esfera como uma equação quadrática em t cujo discriminante classifica o raio como errando, tangente a, ou passando pelo objeto, mantendo a menor raiz positiva como o ponto de acerto visível.

    Ler →6 seções8 min
  12. Hierarquias de Volume Delimitador e Aceleração de Ray Tracing

    Testar todo raio contra todo objeto numa cena escala linearmente por raio, inviável para qualquer cena de tamanho realista; uma hierarquia de volume delimitador (BVH) conserta isto dividindo recursivamente os objetos ao longo do eixo mais longo da sua caixa delimitadora, exatamente a estrutura recursiva de dividir-e-recursar do paradigma dividir-e-conquistar aplicada à contenção espacial, produzindo uma árvore binária de caixas aninhadas com profundidade aproximadamente log2(n).

    Ler →6 seções9 min
  13. Ray Tracing Recursivo: Reflexão, Refração e Sombras

    Um raio primário sozinho só encontra a superfície visível mais próxima, o mesmo trabalho que o z-buffering já faz para a rasterização; o ray tracing recursivo adiciona raios de sombra (testando oclusão entre um ponto de acerto e cada luz), raios de reflexão (traçando recursivamente a direção de reflexão de espelho e misturando o resultado com o sombreamento local) e raios de refração (a mesma estrutura recursiva, seguindo uma direção computada da lei de Snell), todos limitados a uma profundidade de recursão finita para garantir terminação.

    Ler →6 seções9 min
  14. Rasterização vs. Ray Tracing: Trade-offs e Hardware de Tempo Real

    O pipeline fixo e em estágios da rasterização mapeia naturalmente sobre hardware SIMT porque todo vértice, pixel e fragmento faz trabalho estruturalmente uniforme e independente, mas só avalia luz direta de fontes nomeadas; a estrutura recursiva do ray tracing produz reflexões, refrações e sombras de um algoritmo unificado mas a sua ramificação dependente de dados não mapeia de forma limpa sobre esse mesmo modelo de hardware fixo; os RT Cores da geração Turing (2018) mudaram isto acelerando duas operações específicas em hardware dedicado.

    Ler →6 seções9 min
  15. Capstone: Rastreando Um Triângulo por Ambos os Pipelines

    Rastrear um triângulo pelo pipeline de rasterização (model matrix, view matrix, projeção, rasterização por função de aresta, visibilidade por z-buffer e sombreamento Blinn-Phong) produz um pixel brilhante, porque esse pipeline avalia a sua luz nomeada diretamente sem nenhum teste de sombra; rastrear a cena idêntica por ray tracing, com um raio de câmera mais um raio de sombra, produz um pixel escuro, porque o raio de sombra detecta corretamente um oclusor; os dois pipelines concordam exatamente na visibilidade e discordam especificamente na consciência de sombra.

    Ler →6 seções9 min

Computação Gráfica

Part of the Computer Science curriculum.

Sort
1

O Pipeline de Gráficos: De Vértices a Pixels

Todo sistema de gráficos de tempo real transforma uma lista de números numa grade de cores de pixel por meio do mesmo pipeline de cinco estágios: dados de vértice, transformações geométricas (matrizes model, view e projection), rasterização (transformando triângulos em fragmentos candidatos), sombreamento de fragmento (transformando fragmentos em cores, limitado por um teste de profundidade) e o framebuffer (a grade de pixels final, com buffer duplo, de fato exibida).

2

Coordenadas Homogêneas e Transformações Afins 2D

Uma matriz linear sozinha não consegue mover um ponto sem também mover a origem, então a translação, a operação mais comum em gráficos, não é linear e não pode ser expressa por uma matriz 2x2 comum; as coordenadas homogêneas consertam isto preenchendo todo ponto 2D com uma terceira coordenada (1 para pontos, 0 para vetores de direção) e usando matrizes 3x3, deixando translação, rotação e escala todas virarem a mesma operação: uma única multiplicação de matriz.

3

Transformações 3D e a Composição da Matriz Model

Estende o truque homogêneo 2D do conceito anterior para matrizes 4x4 sobre (x, y, z, 1), depois responde a pergunta que fez `matrices-as-linear-transformations` importar em primeiro lugar: a multiplicação de matrizes é composição de funções, então um modelo transformado por escala, depois rotação, depois translação é uma única matriz, S depois R depois T multiplicadas juntas (da direita para a esquerda), aplicada a todo vértice uma vez. Construir esta única matriz model, corretamente ordenada (a ordem genuinamente muda o resultado, já que a multiplicação de matrizes não comuta), é o mecanismo do qual todo grafo de cena 3D e todo objeto animado no pipeline desta disciplina depende.

4

A Matriz View e o Espaço de Câmera

Uma câmera é um objeto comum com uma posição e orientação, construída a partir das mesmas matrizes de rotação-e-translação usadas para qualquer objeto modelado, mas renderizar a partir do seu ponto de vista exige a operação oposta: a matriz view é a própria matriz de posicionamento da câmera invertida, movendo todo vértice de cena do espaço de mundo para o espaço de câmera, o sistema de coordenadas onde a câmera fica na origem olhando por um eixo fixo.

5

A Matriz de Projeção: Perspectiva e Clipping

A matriz de projeção fecha a cadeia model-view-projection mapeando o frustum de visão de uma câmera, seja a pirâmide truncada de uma câmera de perspectiva ou a caixa retangular de uma ortográfica, num cubo de espaço de clip padronizado; o efeito de perspectiva em si vem de um passo específico, a divisão de perspectiva (dividir x, y e z por w, onde w codifica a profundidade), não da multiplicação de matriz sozinha.

6

Rasterização de Triângulos: Funções de Aresta e Coordenadas Baricêntricas

O teste de função de aresta de Pineda de 1988 decide se um pixel se situa dentro de um triângulo com três avaliações lineares, uma por aresta, todas não negativas para um ponto interior dado um enrolamento consistente; os mesmos três valores, normalizados pela área fixa do triângulo, são exatamente as coordenadas baricêntricas do ponto, que interpolam qualquer atributo por vértice com um conjunto compartilhado de pesos.

7

Z-Buffering e Determinação de Visibilidade

Rasterizar todo triângulo numa cena, em qualquer ordem, produz fragmentos sobrepostos para o mesmo pixel; este conceito cobre o mecanismo que torna a ordem de desenho irrelevante, um buffer de profundidade por pixel que mantém só o fragmento mais próximo visto até agora, computado com a exata interpolação baricêntrica de profundidade por vértice que o conceito anterior acabou de construir. O z-buffering é o algoritmo de visibilidade real e padrão que todo pipeline baseado em rasterização usa, e este conceito enuncia o seu custo de fato (uma leitura-comparação-escrita extra por fragmento, mais o seu próprio modo de falha honesto com superfícies transparentes) em vez de apresentá-lo como uma abstração gratuita.

8

Iluminação Local: Reflexão Difusa Lambertiana

A reflexão difusa lambertiana modela a cor de uma superfície perfeitamente fosca como proporcional ao cosseno do ângulo entre a sua normal e a direção à luz, computado como uma única multiplicação escalar entre dois vetores unitários, multiplicado pelo albedo da superfície e pela cor e intensidade da luz, e limitado a zero sempre que esse produto escalar é negativo (a luz está atrás da superfície daquele ponto).

9

Reflexão Especular: Os Modelos de Phong e Blinn-Phong

Um destaque especular é um efeito genuinamente dependente da visão que a reflexão difusa não consegue produzir; o modelo de Phong de 1975 o adiciona comparando um vetor de reflexão explícito contra a direção de visão, elevado a um expoente de brilho, enquanto a refinação de Blinn de 1977 computa o mesmo comportamento de pico de forma mais barata usando o vetor halfway, e ambos são adicionados em cima de, nunca substituídos pelo, termo difuso.

10

Interpolação de Sombreamento: Flat, Gouraud e Phong

As equações de iluminação construídas nos dois conceitos anteriores podem ser avaliadas em três pontos diferentes do pipeline: uma vez por triângulo (flat, barato mas visivelmente facetado), uma vez por vértice com a cor resultante interpolada (Gouraud, três avaliações por triângulo mas capaz de perder um destaque especular que cai entre vértices), ou uma vez por fragmento com a própria normal interpolada primeiro (sombreamento Phong, uma avaliação completa por fragmento, pegando corretamente destaques em qualquer lugar do interior do triângulo, a custo extra real).

11

A Equação de Renderização e os Limites do Sombreamento de Tempo Real

A equação de renderização de Kajiya de 1986 enuncia o problema físico completo do transporte de luz precisamente: a luz de saída num ponto é igual à luz emitida mais uma integral, sobre toda direção de entrada, da luz de entrada espalhada, que é ela mesma recursivamente a luz de saída de qualquer outra superfície que se situe naquela direção; a iluminação local de tempo real computa uma truncação deliberada e nomeada desta equação.

12

Ray Casting: Gerando e Intersectando Raios

O ray tracing trabalha de trás para frente a partir de cada pixel: um raio é gerado da câmera por esse pixel usando a equação do raio P(t) = origin + t * direction, e encontrar o que ele atinge se reduz a resolver um teste de interseção por objeto, trabalhado aqui por completo para uma esfera como uma equação quadrática em t cujo discriminante classifica o raio como errando, tangente a, ou passando pelo objeto, mantendo a menor raiz positiva como o ponto de acerto visível.

13

Hierarquias de Volume Delimitador e Aceleração de Ray Tracing

Testar todo raio contra todo objeto numa cena escala linearmente por raio, inviável para qualquer cena de tamanho realista; uma hierarquia de volume delimitador (BVH) conserta isto dividindo recursivamente os objetos ao longo do eixo mais longo da sua caixa delimitadora, exatamente a estrutura recursiva de dividir-e-recursar do paradigma dividir-e-conquistar aplicada à contenção espacial, produzindo uma árvore binária de caixas aninhadas com profundidade aproximadamente log2(n).

14

Ray Tracing Recursivo: Reflexão, Refração e Sombras

Um raio primário sozinho só encontra a superfície visível mais próxima, o mesmo trabalho que o z-buffering já faz para a rasterização; o ray tracing recursivo adiciona raios de sombra (testando oclusão entre um ponto de acerto e cada luz), raios de reflexão (traçando recursivamente a direção de reflexão de espelho e misturando o resultado com o sombreamento local) e raios de refração (a mesma estrutura recursiva, seguindo uma direção computada da lei de Snell), todos limitados a uma profundidade de recursão finita para garantir terminação.

15

Rasterização vs. Ray Tracing: Trade-offs e Hardware de Tempo Real

O pipeline fixo e em estágios da rasterização mapeia naturalmente sobre hardware SIMT porque todo vértice, pixel e fragmento faz trabalho estruturalmente uniforme e independente, mas só avalia luz direta de fontes nomeadas; a estrutura recursiva do ray tracing produz reflexões, refrações e sombras de um algoritmo unificado mas a sua ramificação dependente de dados não mapeia de forma limpa sobre esse mesmo modelo de hardware fixo; os RT Cores da geração Turing (2018) mudaram isto acelerando duas operações específicas em hardware dedicado.

16

Capstone: Rastreando Um Triângulo por Ambos os Pipelines

Rastrear um triângulo pelo pipeline de rasterização (model matrix, view matrix, projeção, rasterização por função de aresta, visibilidade por z-buffer e sombreamento Blinn-Phong) produz um pixel brilhante, porque esse pipeline avalia a sua luz nomeada diretamente sem nenhum teste de sombra; rastrear a cena idêntica por ray tracing, com um raio de câmera mais um raio de sombra, produz um pixel escuro, porque o raio de sombra detecta corretamente um oclusor; os dois pipelines concordam exatamente na visibilidade e discordam especificamente na consciência de sombra.