Rasterização
Este artigo não cita fontes confiáveis. (Março de 2016) |
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
[editar | editar código-fonte]O termo rasterização, em geral, pode ser aplicado a qualquer processo pelo qual informações tipo vetorial podem ser convertidas num formato raster[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 computador[carece de fontes]. Rasterização é atualmente a técnica mais popular para a produção em tempo real de gráficos 3D[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 movimento[carece de fontes].
Comparada a outras técnicas, como renderização, a rasterização é extremamente rápida[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 pixels[carece de fontes].
Abordagem básica
[editar | editar código-fonte]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 computador[carece de fontes]. Polígonos são representados com uma coleções de triângulos[carece de fontes]. Triângulos são representados por 3 vértices no espaço tridimensional[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 necessidade[carece de fontes].
Transformações
[editar | editar código-fonte]Transformations são normalmente realizados por matriz multiplicação[carece de fontes]. quaterniões matemática também podem ser utilizadas, mas que está fora do âmbito de aplicação do presente artigo[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 4[carece de fontes]. As principais transformações são tradução, escamação, rotação, e projeçã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 deslocamento[carece de fontes]. As traduções podem ser representadas pela seguinte matriz:
X, Y, Z são os deslocamentos no 3 dimensões, respectivamente[carece de fontes].
Um 'escamação' transformação é realizado pela multiplicação da posição de um vértice por um valor escalar[carece de fontes]. Isto tem o efeito de dimensionamento um vértice no que diz respeito à origem[carece de fontes]. Dimensionamento pode ser representada pela seguinte matriz:
X, Y, Z são os valores pelos quais cada uma das dimensões-3 são multiplicados[carece de fontes]. Assimétricas dimensionamento pode ser obtida através da variação do valor de X, Y, e Z[carece de fontes].
'Rotação' matrizes dependem do eixo em torno do qual é um ponto a ser rodado[carece de fontes].
Rotação sobre o eixo-X:
Rotação sobre o eixo Y:
Rotação sobre o eixo-Z:
θ cada um desses em todos os casos representam o ângulo de rotação[carece de fontes].
Uma série de tradução, redimensionamento, rotação e matrizes podem descrever logicamente mais transformações[carece de fontes]. Rasterization sistemas geralmente usam um 'transformação pilha' para mover o fluxo de entrada vértices no lugar[carece de fontes]. A transformação é um padrão pilha stack, que armazena matrizes[carece de fontes]. Incoming vértices são multiplicados pela matriz pilha[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 origem[carece de fontes]. Um fluxo de vértices, o modelo, seria carregado para representar a pessoa[carece de fontes]. Em primeiro lugar, uma tradução matriz seria empurrado para dentro da pilha para mover o modelo para o local correto[carece de fontes]. Um dimensionamento matriz seria empurrado para dentro da pilha a dimensão do modelo corretamente[carece de fontes]. A rotação sobre o eixo y-seria empurrado para dentro da pilha para orientar o modelo corretamente[carece de fontes]. Em seguida, o fluxo de vértices representando o corpo seria enviada através do rasterizer[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 empurrado[carece de fontes]. Por último, o fluxo de vértices representando a cabeça seria enviada para o rasterizer[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ã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értices[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çã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 telespectador[carece de fontes]. A perspectiva projeção transformação necessita de ser aplicada a esses pontos[carece de fontes].
Conceptualmente, a idéia é a de transformar a perspectiva visualização em volume ortogonal a visualização volume[carece de fontes]. O volume é uma perspectiva visualização tronco, isto é, uma pirâmide truncada[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 imagem[carece de fontes].
Uma projeção perspectiva transformação pode ser representada pela seguinte matriz:
F e N-se aqui as distâncias de perto e de longe a visualização aviões, respectivamente[carece de fontes]. Os quatro vectores resultante será um vector onde a variável não é homogênea 1[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 y[carece de fontes].
Clipping
[editar | editar código-fonte]((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 escrita[carece de fontes]. Clipping é o processo de truncagem triângulos para encaixá-los dentro da área visível[carece de fontes].
O mais comum é a técnica Sutherland-Hodgeman recorte algoritmo[carece de fontes]. Nesta abordagem, cada uma das 4 bordas da imagem avião é testado em um momento[carece de fontes]. Para cada extremidade, de testar todos os pontos a serem prestados[carece de fontes]. Se o ponto está fora da borda, o ponto é removido[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 é removido[carece de fontes].
Scan conversão
[editar | editar código-fonte]O último passo no processo é a tradicional rasterization preencher o 2D triângulos que estão agora no plano da imagem[carece de fontes]. Esta é também conhecida como scan conversão[carece de fontes].
((principal | Hidden superfície determinação)) O primeiro problema a considerar é ou não um pixel de chamar a todos[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 pixel[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 scanline[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 longe[carece de fontes]. A z buffer é a solução mais comum[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 pixel[carece de fontes]. Sempre que um pixel é desenhada, ele atualiza o buffer z valor com a sua profundidade[carece de fontes]. Qualquer novo pixel deve verificar o seu valor contra a profundidade z buffer valor antes que seja traçada[carece de fontes]. Closer pixels são desenhadas e mais pixels são tidos em conta[carece de fontes].
Para descobrir um pixel de cores, texturas e sombreamento cálculos devem ser aplicadas[carece de fontes]. A textura mapa é um bitmap que é aplicado a um triângulo de definir a sua aparência[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ção[carece de fontes]. Cada vez que um pixel em um triângulo é prestado, o correspondente Texel (ou textura elemento) na textura devem ser encontrado[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értices[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'[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 cena[carece de fontes]. Não há luz geralmente três tipos comumente usados nas cenas[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 cena[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ível[carece de fontes]. 'Ponto luzes são luzes com uma posição definida no espaço e irradiar luz uniformemente em todas as direções[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 distante[carece de fontes]. Vida real fontes luminosas experiência quadrático cair do alto[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 ribalta[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 corretamente[carece de fontes].
Há uma série de algoritmos para sombreamento rasterizers[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 incidente[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)[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ângulos[carece de fontes]. Algoritmos podem também separadamente sombra vértices, e interpole a iluminação valor dos vértices quando desenho pixels[carece de fontes]. Isto é conhecido como coloração Gouraud (Gouraud shading)[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)[carece de fontes]. Este realiza bilineares interpolação do vetores normais e utiliza o resultado para o local iluminação cálculo[carece de fontes].
Técnicas de Aceleração
[editar | editar código-fonte]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 renderer[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 vistos[carece de fontes].
Backface abate
[editar | editar código-fonte]((principal | Back-face abate)) A maneira mais simples de se abater polígonos de abater todos os polígonos que enfrentam longe do espectador[carece de fontes]. Isto é conhecido como backface abate[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 objeto[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 renderer[carece de fontes]. Um renderer pode definir tanto no sentido horário ou counterclockwise dissolução como frente ou para trás enfrenta[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 todos[carece de fontes]. Evidentemente, backface abate não podem ser utilizados com degenerar e unclosed volumes[carece de fontes].
Os dados espaciais estruturas
[editar | editar código-fonte]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 objectos[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'[carece de fontes].
Novos aperfeiçoamentos
[editar | editar código-fonte]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 rasterization[carece de fontes].
Textura filtragem
[editar | editar código-fonte]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 final[carece de fontes]. Como resultado, um pixel na tela geralmente não corresponde diretamente a um Texel[carece de fontes]. Alguma forma de filtragem técnica devem ser aplicados para criar imagens limpas em qualquer distância[carece de fontes]. Uma variedade de métodos estão disponíveis, com diferentes troca entre qualidade da imagem e complexidade computacional[carece de fontes].
Ambiente mapeamento
[editar | editar código-fonte]Ambiente mapeamento é uma forma de mapeamento de texturas em que a textura coordenadas são dependentes de vista[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 sala[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álico[carece de fontes].
Bump mapeamento
[editar | editar código-fonte]Bump mapa ping é uma outra forma de mapeamento de texturas que não prevê pixels com cores, mas sim com profundidade[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 realismo[carece de fontes].
Nível de pormenor
[editar | editar código-fonte]Em muitas aplicações modernas, o número de polígonos, em qualquer cenário pode ser fenomenal[carece de fontes]. No entanto, um espectador em um cenário só será capaz de discernir detalhes do próximo-por objetos[carece de fontes]. Nível de pormenor algoritmos variar a complexidade de geometria como uma função da distância para o telespectador[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 sprites[carece de fontes].
Sombras
[editar | editar código-fonte]Iluminação cálculos no processo tradicional rasterization não conta para a oclusão objeto[carece de fontes]. Sombra mapeamento e volume shadow s estão dois comuns modernas técnicas de criação de sombras[carece de fontes].
Aceleração de Hardware
[editar | editar código-fonte]Começando na década de 1990, aceleração hardware para computadores desktop normal consumidor tornou-se a norma[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 GPU[carece de fontes].
O último recurso apoio para GPUs programáveis pixel shader s que melhorar drasticamente as capacidades dos programadores[carece de fontes]. A tendência é no sentido da plena programabilidade dos gráficos gasoduto[carece de fontes].
Ver também
[editar | editar código-fonte]- Hidden superfície determinação
- Algoritmo de Bresenham para um método típico em rasterisation
- Scanline rendering para a linha-por-linha rasterisation
- Escutar (computação gráfica) para obter mais informações gerais
- Gráficos gasoduto para rasterisation mercadoria em hardware gráfico
- Imagem Raster processador para 2D rasterisation em sistemas de impressão
- Os gráficos vetoriais para a fonte arte
- Raster gráficos para o resultado
- Raster para vector para a conversão na direção oposta