Rasterização

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa

Predefinição:Sem-fontes Predefinição:Esboço Rasterização, é a tarefa de converter uma imagem vetorial (curvas funcionais) em uma imagem raster (pixels ou pontos) para a possível leitura do documento.

O termo Rasterização também é utilizado para converter uma imagem formada por vetores para um arquivo de formato bitmap (SVG para PNG).

Introdução

O termo rasterização, em geral, pode ser aplicado a qualquer processo pelo qual informações tipo vetorial podem ser convertidas num formato rasterPredefinição:Carece de fontes.

Em condições normais de utilização, o termo refere-se ao popular algoritmo de renderização, usado para exibir formas tridimensionais num computadorPredefinição:Carece de fontes. Rasterização é atualmente a técnica mais popular para a produção em tempo real de gráficos 3DPredefinição:Carece de fontes. Aplicações em tempo real precisam responder de imediato aos usuários e, em geral, necessitam produzir taxas de pelo menos 24 fps (frames por segundo) para passar a sensação de movimentoPredefinição:Carece de fontes.

Comparada a outras técnicas, como renderização, a rasterização é extremamente rápidaPredefinição:Carece de fontes. No entanto, rasterização é simplesmente o processo de computar formas e geometria para pixels, e não prescreve uma determinada forma de calcular a cor desses pixelsPredefinição:Carece de fontes.

Abordagem básica

O mais básico algoritmo de rasterização pega uma cena 3D, descrita como polígonos, e transforma-a em uma superfície 2D, normalmente um monitor de computadorPredefinição:Carece de fontes. Polígonos são representados com uma coleções de triângulosPredefinição:Carece de fontes. Triângulos são representados por 3 vértices no espaço tridimensionalPredefinição:Carece de fontes. Em um nível muito básico, os rasterizadors pegam um fluxo de vértices, e transforma-os em pontos de duas dimensões correspondentes ao monitor do telespectador e preenchem os triângulos 2D que foram transformados de acordo com a necessidadePredefinição:Carece de fontes.

Transformações

Transformations são normalmente realizados por matriz multiplicaçãoPredefinição:Carece de fontes. quaterniões matemática também podem ser utilizadas, mas que está fora do âmbito de aplicação do presente artigoPredefinição:Carece de fontes. A 3 dimensional vértice pode ser transformado por um reforço adicional variável conhecida como uma variável homogênea e deixou 4-resultante da multiplicação do espaço vértice por uma transformação matriz 4 x 4Predefinição:Carece de fontes. As principais transformações são tradução, escamação, rotação, e projeçãoPredefinição:Carece de fontes.

Um 'Tradução', é simplesmente a circulação de um ponto a partir do seu local original para outro local, em 3 de espaço por uma constante deslocamentoPredefinição:Carece de fontes. As traduções podem ser representadas pela seguinte matriz:

[100X010Y001Z0001]

X, Y, Z são os deslocamentos no 3 dimensões, respectivamentePredefinição:Carece de fontes.

Um 'escamação' transformação é realizado pela multiplicação da posição de um vértice por um valor escalarPredefinição:Carece de fontes. Isto tem o efeito de dimensionamento um vértice no que diz respeito à origemPredefinição:Carece de fontes. Dimensionamento pode ser representada pela seguinte matriz:

[X0000Y0000Z00001]

X, Y, Z são os valores pelos quais cada uma das dimensões-3 são multiplicadosPredefinição:Carece de fontes. Assimétricas dimensionamento pode ser obtida através da variação do valor de X, Y, e ZPredefinição:Carece de fontes.

'Rotação' matrizes dependem do eixo em torno do qual é um ponto a ser rodadoPredefinição:Carece de fontes.

Rotação sobre o eixo-X:

[10000cosθsinθ00sinθcosθ00001]

Rotação sobre o eixo Y:

[cosθ0sinθ00100sinθ0cosθ00001]

Rotação sobre o eixo-Z:

[cosθsinθ00sinθcosθ0000100001]

θ cada um desses em todos os casos representam o ângulo de rotaçãoPredefinição:Carece de fontes.

Uma série de tradução, redimensionamento, rotação e matrizes podem descrever logicamente mais transformaçõesPredefinição:Carece de fontes. Rasterization sistemas geralmente usam um 'transformação pilha' para mover o fluxo de entrada vértices no lugarPredefinição:Carece de fontes. A transformação é um padrão pilha stack, que armazena matrizesPredefinição:Carece de fontes. Incoming vértices são multiplicados pela matriz pilhaPredefinição:Carece de fontes.

Como um exemplo ilustrativo de como a transformação pilha é utilizada, imaginar um cenário simples, com um único modelo de uma pessoa. A pessoa está de pé na posição vertical, de frente para uma direção arbitrária, enquanto sua cabeça se transformou em outra direção. A pessoa também está localizado a uma certa distância entre a origemPredefinição:Carece de fontes. Um fluxo de vértices, o modelo, seria carregado para representar a pessoaPredefinição:Carece de fontes. Em primeiro lugar, uma tradução matriz seria empurrado para dentro da pilha para mover o modelo para o local corretoPredefinição:Carece de fontes. Um dimensionamento matriz seria empurrado para dentro da pilha a dimensão do modelo corretamentePredefinição:Carece de fontes. A rotação sobre o eixo y-seria empurrado para dentro da pilha para orientar o modelo corretamentePredefinição:Carece de fontes. Em seguida, o fluxo de vértices representando o corpo seria enviada através do rasterizerPredefinição:Carece de fontes. Uma vez que a cabeça está a enfrentar uma direção diferente, a matriz de rotação seria surgiram fora do topo da pilha e de uma outra matriz de rotação sobre o eixo y-com um ângulo diferente seria empurradoPredefinição:Carece de fontes. Por último, o fluxo de vértices representando a cabeça seria enviada para o rasterizerPredefinição:Carece de fontes.

Depois de todos os pontos foram transformados para os seus locais desejados no espaço 3-no que diz respeito ao telespectador, eles devem ser transformados para a imagem 2-D aviãoPredefinição:Carece de fontes. O mais simples projecção, o projecção ortogonal, simplesmente envolve a remoção do componente de z transformou 3d vérticesPredefinição:Carece de fontes. Projecções ortográficas têm a propriedade que todas as linhas paralelas no espaço 3-permanecerá em paralelo a 2-D representaçãoPredefinição:Carece de fontes. No entanto, as imagens são do mundo real perspectiva imagens, objetos distantes com menor do que os objectos que aparecem perto do telespectadorPredefinição:Carece de fontes. A perspectiva projeção transformação necessita de ser aplicada a esses pontosPredefinição:Carece de fontes.

Conceptualmente, a idéia é a de transformar a perspectiva visualização em volume ortogonal a visualização volumePredefinição:Carece de fontes. O volume é uma perspectiva visualização tronco, isto é, uma pirâmide truncadaPredefinição:Carece de fontes. O volume é uma visualização ortográficas caixa rectangular, onde tanto o de perto e longe vendo aviões são paralelas ao plano imagemPredefinição:Carece de fontes.

Uma projeção perspectiva transformação pode ser representada pela seguinte matriz:


[1000010000(N+F)/NF001/N0]

F e N-se aqui as distâncias de perto e de longe a visualização aviões, respectivamentePredefinição:Carece de fontes. Os quatro vectores resultante será um vector onde a variável não é homogênea 1Predefinição:Carece de fontes. Homogeneizante do vetor, ou multiplicando-o pelo inverso do homogêneo variável de tal forma que a variável se torna homogéneos unitária, dá-nos a nossa resultante 2-D localização nas coordenadas x e yPredefinição:Carece de fontes.

Clipping

((seemain | Clipping (computação gráfica)))

Uma vez triângulo vértices são transformados para a sua correcta 2d locais, alguns destes locais podem estar fora da janela de visualização, ou o espaço na tela para que pixels serão efectivamente escritaPredefinição:Carece de fontes. Clipping é o processo de truncagem triângulos para encaixá-los dentro da área visívelPredefinição:Carece de fontes.

O mais comum é a técnica Sutherland-Hodgeman recorte algoritmoPredefinição:Carece de fontes. Nesta abordagem, cada uma das 4 bordas da imagem avião é testado em um momentoPredefinição:Carece de fontes. Para cada extremidade, de testar todos os pontos a serem prestadosPredefinição:Carece de fontes. Se o ponto está fora da borda, o ponto é removidoPredefinição:Carece de fontes. Para cada triângulo ponta que é Intersected pela imagem avião da ponta, ou seja, um vértice da ponta está dentro da imagem ea outra está no exterior, um ponto é inserido na intersecção e fora do ponto é removidoPredefinição:Carece de fontes.

Scan conversão

O último passo no processo é a tradicional rasterization preencher o 2D triângulos que estão agora no plano da imagemPredefinição:Carece de fontes. Esta é também conhecida como scan conversãoPredefinição:Carece de fontes.

((principal | Hidden superfície determinação)) O primeiro problema a considerar é ou não um pixel de chamar a todosPredefinição:Carece de fontes. Para um pixel a ser prestado, deve ser dentro de um triângulo, e ele não deve ser ocluído, ou bloqueado por outro pixelPredefinição:Carece de fontes. Há uma série de algoritmos para preencher em pixels dentro de um triângulo, o mais popular do que é o algoritmo scanlinePredefinição:Carece de fontes. Uma vez que é difícil saber que o motor rasterization vai chamar todos os pixels de frente para trás, tem de haver alguma forma de assegurar que pixels perto do telespectador não são substituídas por pixels longePredefinição:Carece de fontes. A z buffer é a solução mais comumPredefinição:Carece de fontes. A z buffer é um array 2d o que corresponde a imagem do avião que armazena uma profundidade de valor para cada pixelPredefinição:Carece de fontes. Sempre que um pixel é desenhada, ele atualiza o buffer z valor com a sua profundidadePredefinição:Carece de fontes. Qualquer novo pixel deve verificar o seu valor contra a profundidade z buffer valor antes que seja traçadaPredefinição:Carece de fontes. Closer pixels são desenhadas e mais pixels são tidos em contaPredefinição:Carece de fontes.

Para descobrir um pixel de cores, texturas e sombreamento cálculos devem ser aplicadasPredefinição:Carece de fontes. A textura mapa é um bitmap que é aplicado a um triângulo de definir a sua aparênciaPredefinição:Carece de fontes. Cada um triângulo vértice está também associado com uma textura e coordenar uma textura (u, v) para a normal 2-d texturas, além de coordenar a sua posiçãoPredefinição:Carece de fontes. Cada vez que um pixel em um triângulo é prestado, o correspondente Texel (ou textura elemento) na textura devem ser encontradoPredefinição:Carece de fontes. Isso é feito por interpolação entre os vértices do triângulo "associados textura coordenadas pela pixels na tela distância dos vérticesPredefinição:Carece de fontes. Na perspectiva projecções, interpolação é realizada sobre a textura coordena dividida pela profundidade do vértice para evitar um problema conhecido como 'Perspectivas foreshortening'Predefinição:Carece de fontes.

Antes do final cor do pixel pode ser decidido, uma iluminação cálculo deve ser efectuado à sombra dos pixels com base em qualquer luzes que podem estar presentes na cenaPredefinição:Carece de fontes. Não há luz geralmente três tipos comumente usados nas cenasPredefinição:Carece de fontes. 'Direcional luzes' são luzes que provêm de uma única direção e têm a mesma intensidade ao longo de toda a cenaPredefinição:Carece de fontes. Na vida real, luz solar chega perto de ser uma luz direcional, como o sol está tão longe que os raios de sol aparecerá paralelo com observadores e ao cair do alto da Terra é desprezívelPredefinição:Carece de fontes. 'Ponto luzes são luzes com uma posição definida no espaço e irradiar luz uniformemente em todas as direçõesPredefinição:Carece de fontes. Ponto luzes são geralmente sujeitos a alguma forma de 'atenuação, ou cair na intensidade da luz incidente sobre os objectos mais distantePredefinição:Carece de fontes. Vida real fontes luminosas experiência quadrático cair do altoPredefinição:Carece de fontes. Por último, 'holofotes são como as da vida real holofotes, com um tempo determinado ponto do espaço, uma direção, e definindo um ângulo do cone de luz da ribaltaPredefinição:Carece de fontes. Há também muitas vezes um 'luz ambiente é adicionado ao valor que todos os cálculos finais iluminação arbitrariamente para compensar a iluminação global rasterization efeitos que não pode calcular corretamentePredefinição:Carece de fontes.

Há uma série de algoritmos para sombreamento rasterizersPredefinição:Carece de fontes. Todos os algoritmos sombreamento em conta a necessidade de distância da luz e do vetor normal do objeto sombreadas no que diz respeito à direcção da luz incidentePredefinição:Carece de fontes. Os algoritmos mais rápido simplesmente sombra todos os pixels em qualquer triângulo, com um único valor iluminação, também conhecido como coloração plana (flat shading)Predefinição:Carece de fontes. Não há nenhuma maneira de criar a ilusão de superfícies lisas, desta forma, exceto por subdivisão em muitos pequenos triângulosPredefinição:Carece de fontes. Algoritmos podem também separadamente sombra vértices, e interpole a iluminação valor dos vértices quando desenho pixelsPredefinição:Carece de fontes. Isto é conhecido como coloração Gouraud (Gouraud shading)Predefinição:Carece de fontes. A abordagem mais lentos e mais realista é a de calcular iluminação em separado para cada pixel, também conhecido como coloração Phong (Phong shading)Predefinição:Carece de fontes. Este realiza bilineares interpolação do vetores normais e utiliza o resultado para o local iluminação cálculoPredefinição:Carece de fontes.

Técnicas de Aceleração

Para extrair o máximo de desempenho fora de qualquer rasterization motor, um número mínimo de polígonos, devem ser enviados para o rendererPredefinição:Carece de fontes. Uma série de aceleração técnicas têm sido desenvolvidas ao longo do tempo para abater os objectos que não podem ser vistosPredefinição:Carece de fontes.

Backface abate

((principal | Back-face abate)) A maneira mais simples de se abater polígonos de abater todos os polígonos que enfrentam longe do espectadorPredefinição:Carece de fontes. Isto é conhecido como backface abatePredefinição:Carece de fontes. Como a maioria dos objetos 3D são completamente fechado, polígonos enfrenta fora de um telespectador são sempre bloqueada pelo polígonos virada para o telespectador, a menos que o espectador está dentro do objetoPredefinição:Carece de fontes. A virada do polígono é definido pelo seu 'liquidação', ou a ordem em que seus vértices são enviados para o rendererPredefinição:Carece de fontes. Um renderer pode definir tanto no sentido horário ou counterclockwise dissolução como frente ou para trás enfrentaPredefinição:Carece de fontes. Uma vez que um polígono foi transformada a tela espaço, o seu encerramento pode ser verificada e, se for no sentido oposto, não é traçada a todosPredefinição:Carece de fontes. Evidentemente, backface abate não podem ser utilizados com degenerar e unclosed volumesPredefinição:Carece de fontes.

Os dados espaciais estruturas

Utilizar técnicas mais avançadas estruturas de dados para reunir os objetos que estão fora da visualização volume, quer sejam ou oclusos por outros objectosPredefinição:Carece de fontes. Os mais comuns são estruturas de dados binário espaço partição s, octree s, e 'célula e portal abate'Predefinição:Carece de fontes.

Novos aperfeiçoamentos

Enquanto a base rasterization processo tem sido conhecido há décadas, continuam a fazer aplicações modernas otimizações e adições para aumentar o leque de possibilidades para o motor de renderização rasterizationPredefinição:Carece de fontes.

Textura filtragem

Texturas são criados em resoluções específicas, mas a partir da superfície para que sejam aplicadas podem ser, em qualquer distância do espectador, eles podem aparecer de tamanhos sobre a arbitrariedade da imagem finalPredefinição:Carece de fontes. Como resultado, um pixel na tela geralmente não corresponde diretamente a um TexelPredefinição:Carece de fontes. Alguma forma de filtragem técnica devem ser aplicados para criar imagens limpas em qualquer distânciaPredefinição:Carece de fontes. Uma variedade de métodos estão disponíveis, com diferentes troca entre qualidade da imagem e complexidade computacionalPredefinição:Carece de fontes.

Ambiente mapeamento

Ambiente mapeamento é uma forma de mapeamento de texturas em que a textura coordenadas são dependentes de vistaPredefinição:Carece de fontes. Uma aplicação comum, por exemplo, é simular a reflexão sobre um objeto brilhante. Um pode mapear o ambiente interior de uma sala para um copo metal em uma salaPredefinição:Carece de fontes. À medida que o telespectador se move sobre a taça, coordena a textura da taça vértices do movimento nesse sentido, fornecendo a ilusão de reflexo metálicoPredefinição:Carece de fontes.

Bump mapeamento

Bump mapa ping é uma outra forma de mapeamento de texturas que não prevê pixels com cores, mas sim com profundidadePredefinição:Carece de fontes. Especialmente com a moderna pixel sombreador (ver abaixo), lombada mapeamento cria a sensação de ver e de iluminação-dependente rugosidade em uma superfície de reforçar grandemente realismoPredefinição:Carece de fontes.

Nível de pormenor

Em muitas aplicações modernas, o número de polígonos, em qualquer cenário pode ser fenomenalPredefinição:Carece de fontes. No entanto, um espectador em um cenário só será capaz de discernir detalhes do próximo-por objetosPredefinição:Carece de fontes. Nível de pormenor algoritmos variar a complexidade de geometria como uma função da distância para o telespectadorPredefinição:Carece de fontes. Objetos em frente ao telespectador pode ser prestado em plena complexidade enquanto objetos mais distantes podem ser simplificados dinamicamente, ou até mesmo substituir completamente com o spritesPredefinição:Carece de fontes.

Sombras

Iluminação cálculos no processo tradicional rasterization não conta para a oclusão objetoPredefinição:Carece de fontes. Sombra mapeamento e volume shadow s estão dois comuns modernas técnicas de criação de sombrasPredefinição:Carece de fontes.

Aceleração de Hardware

Começando na década de 1990, aceleração hardware para computadores desktop normal consumidor tornou-se a normaPredefinição:Carece de fontes. Considerando que os programadores gráficos mais cedo tinha invocado a mão-codificado montagem para fazer seus programas correr rápido, mais modernos programas são escritos a interface com uma das actuais API gráfica, que impulsiona uma dedicada GPUPredefinição:Carece de fontes.

O último recurso apoio para GPUs programáveis pixel shader s que melhorar drasticamente as capacidades dos programadoresPredefinição:Carece de fontes. A tendência é no sentido da plena programabilidade dos gráficos gasodutoPredefinição:Carece de fontes.

Ver também

Ligações externas