Prévia do material em texto
COMPUTAÇÃO GRÁFICA
ATIVIDADE INDIVIDUAL AVALIATIVA A2
Nome: JONAS RIBEIRO FERREIRA
MATRÍCULA: 20142100726
RIO DE JANEIRO, 25 DE NOVEMBRO DE 2021
Questão 1: crie uma linha do tempo, destacando os marcos da “Evolução histórica da Computação Gráfica”.
Evolução histórica da Computação Gráfica:
•Algumas das fundações que merecem destaque:
•Euclides [300-250AC] -fez uma formulação inicial da geometria
•Brunelleschi[Séc. XV] -arquiteto e escultor que usou de forma criativa a noção de perspectiva visual
•Descartes [Séc. XVII] -matemático e filósofo que formulou a geometria analítica e os sistemas de coordenadas 2D e 3D
•Sylvester [Séc. XIX] -matemático que inventou as matrizes e a notação matricial, uma das ferramentas mais comuns da Computação Gráfica
•Em 1885 iniciou-se o desenvolvimento da tecnologia do tubo de raios catódios, ainda vista em monitores de computadores e televisões
•Em 1926 Bairdconstrói a primeira televisão
•Em 1927 a indústria do cinema define os seus padrões, entre os quais está a taxa de de24 imagens/segundo
•Em 1930 P. e W. Mauchlyconstroem o primeiro computador ENIAC
•Em 1938 Valensipropõe um sistema de televisão a cores
•Aspectos de Mudança
•No fim dos anos 30, o cinema sonoro consolidava a sua presença e a resposta da sociedade era entusiástica
•A televisão dava os primeiros passos e prometia revolucionar
•Começavam a surgir mais computadores para fins especializados
•Anos 40 e 50
•Dois projetos militares norte-americanos incluem elementos básicos de Computação Gráfica:
•Whirlwind-construção de um simulador de voo
•SAGE -sistema de defesa aéreo contra ataques nucleares
•Em 1941 iniciam-se as emissões regulares de TV nos EUA
•Em 1947 os Bell Labsinventam o transístor
•Em 1950 Wienerpublica o livro “CyberneticsandSociety”, no qual se especulava sobre os efeitos dos computadores na sociedade
•Em 1950 Laposkycria as primeiras obras de arte com raiz tecnológica, usando para esse efeito um osciloscópio
•Em 1956 no MIT constrói-se o primeiro computador totalmente transistorizado
•Em 1957 é fundada a empresa de computadores Digital EquipmentCorporation (vulgarmente conhecida por DEC)
•Em 1958 no MIT liga-se uma tela com capacidades gráficas ao computador de médio porte TX-1
•Aspectos de Mudança
•Algumas universidades americanas dispõe de acesso a centros de computação com os computadores mais evoluídos da época
•Nas universidades e em empresas, alguns privilegiados utilizam o computador para investigar ideias e aplicações emergentes
•Nessas organizações lançam-se as sementes das atividades de investigação e desenvolvimento que conduziriam ao aparecimento da computação Gráfica (assim baptizadapor W. Fetterda Boeing)
•Anos 60
•Os computadores da época possuem alguns kbytesde memória, não existiam sistemas operacionais e nem dispositivos gráficos de saída
•Em 1960 é lançado o computador comercial DEC PDP-1
•Em 1961 no MIT é criado o primeiro jogo de computador (Spacewars) para o computador DEC PDP-1
•Whitney Sr. cria efeitos especiais para o filme Vertigo(Hitchcock)
•Anos 60
•Em 1963 Sutherland apresenta um sistema de desenho interativo de primitivas gráficas 2D baseado em caneta luminosa
•Em 1963 Englebartinventa o dispositivo de interação “mouse”
•Zajacproduz nos Bell Labso primeiro filme gerado por computador (imagens formadas de linhas e texto)
•Em 1963 surge o primeiro sistema comercial de CAD (DAC-1)
•Em 1966 é lançada no mercado a consola caseira de jogos Odissey
•É criada a empresa MAGI, pioneira na produção computacional de animação e efeitos especiais
•Em 1967 Rougeletcria um simulador interactivode voo (NASA)
•Em 1968 é fundada a empresa INTEL
•Aparecem várias empresas da área da Computação Gráfica, com destaque para a Evans & Sutherland (estações gráficas de trabalho)
•Em 1969 Bushnelllança comercialmente a plataforma de vídeo jogos Computer Space (a precursora das máquinas de arcada modernas)
•A empresa MAGI produz, para a IBM, o primeiro anúncio comercial baseado em técnicas de Computação Gráfica
•É criado o grupo de interesse SIGGRAPH no âmbito do ACM
•Nasce a rede ARPANET
•Em 1963 Coonsinventa a teoria de representação de superfícies curvas através de partes, baseados em aproximações polinomiais
•Em 1965 Roberts cria um algoritmo de remoção de partes invisíveis de segmentos de reta e introduz a noção de coordenadas homogéneas na representação geométrica de objetos
•Bresenhamdesenvolve algoritmos eficientes para o desenho de primitivas geométricas 2D
•A Universidade do Utah cria o departamento de Ciências da Computação, no qual a Computação Gráfica assumirá papel de destaque na investigação científica
•Em 1967 Apple cria algoritmos de cálculo de visibilidade, sombras e visualização 3D, e um ano depois inventa um método de cálculo de visibilidade precursor do método de traçagemde raios
•Em 1968 a Univ. do Utah convida D. Evans a formar uma secção de Computação Gráfica no departamento de Ciências da Computação
•Sutherland apresenta um novo dispositivo de visualização
•Em 1969 nos Bell Labsconstrói-se a primeira matriz de pixels (cada pixel representado por 3 bits)
•A. Kaydesenvolve, na Xerox PARC, a primeira interface gráfica com o usuário
•A década de 60 registou grande atividade na investigação fundamental da Computação Gráfica (algoritmos, métodos e técnicas)
•Surgiram as primeiras manifestações de arte computacional (Estutgarde Nova Iorque em 1965, Londres em 1968, etc)
•A investigação centra-se em grupos sediados em universidades americanas e surge uma massa crítica de pesquisadores
•A Computação Gráfica 2D desenvolve-se muito rapidamente e aparecem algoritmos fundamentais eficientes
•A Computação Gráfica 3D ainda é muito incipiente e não existem algoritmos de visualização satisfatórios
•Anos 70
•O computador mais avançado da época (IBM 360) possui 64 kbytesde memória, uma tela vectorial e uma caneta luminosa
•Em 1971 surge a empresa de efeitos especiais Abel & Associates
•Em 1972 A. Kay, na Xerox PARC, produz o computador gráfico Alto
•Catmullproduz curtas animações por via computadorizada
•Bushnellfunda a empresa ATARI e lança o vídeo jogo Pong
•Em 1973 Metcalfdesenvolve a tecnologia Ethernet
•É exibido o filme comercial Westworld, que continha gráficos 2D produzidos por computador
•É editado o primeiro livro que aborda detalhadamente os algoritmos e métodos da Computação Gráfica (autores Newman e Sproull)
•Em 1974 Shoupe Ray Smith criam o programa de desenho Superpaint(inspirador dos programas modernos de desenho)
•Kahn e Cerfdefinem o protocolo TCP
•O filme comercial Futureworld(na sequência de Westworld) contém imagens 3D simples geradas por computador
•Em 1970 Bézierdesenvolve novas formas de representação de superfícies 3D generalizadas (para a indústria automóvel)
•Gouraudinventa um método de coloração de faces 3D
•Em 1972 Shoupcria, na Xerox PARC, a primeira matriz de pixels com 8 bits/pixel
•Newell, Newelle Sanchainventam algoritmos de cálculo de visibilidade de superfícies 3D baseados em técnicas de ordenação
•Em 1973 realiza-se a primeira conferência SIGGRAPH
•Em 1974 Catmulldesenvolve um método eficiente de cálculo de visibilidade e coloração de faces 3D (designado z-buffer)
•Em 1975 Phong inventa um método de coloração de faces 3D capaz de reproduzir efeitos direcionais de iluminação (reflexões simples)
•Mandelbrotformaliza a teoria dos fractais
•Newelldefine um objeto geométrico (bule de chá de Utah), muito usado em testes e que viria a tornar-se mundialmente famoso
•Em 1976 Catmullcria um programa para geração de imagens intermédias em animação (tweening)
•Blinninventa diversos métodos de mapeamento de texturas
•Em 1977 surge o primeiro standard gráfico de programação (puramente 2D), designado GKS (GraphicalKernel System -ANSI)
•Aspectos de Mudança
•Obtiveram-se progressos na visualização 3D, o que permitiu a criação de curtas animações para fins didáticos e publicitários
•A indústria cinematográfica começou a olhar com interesse para os praticantes da Computação Gráfica e promoveu a caça aos talentos
•As plataformasDEC VAX e Apple I e II alargaram imenso o grupo de investigadores e programadores em Computação Gráfica
•O hardware gráfico limitado prometia novos desenvolvimentos
•Anos 80
•É a década do computador pessoal (IBM PC e Apple Macintosh, incorporando um dispositivo rato e matrizes de pixels com telas onde a fonte varre os pixels (desaparecem a caneta luminosa e a tela vectorial)
•A tecnologia Ethernet para ligação em rede local difunde-se
•Em 1980 Carpenter mostra no SIGGRAPH animações 3D realistas com paisagens verosímeis geradas por métodos fractais
•A Disney usa técnicas de CG na produção do filme Tron(as animações foram criadas pelas empresas MAGI, Abel & Assoc., etc)
•Em 1981 a LucasFilmcria uma aplicação de síntese foto realista de imagem para fins de produção comercial de animações
•Em 1982 são fundadas as empresas SGI e Adobe
•A Autodesk lança uma aplicação de CAD designada AutoCAD
•O filme comercial The LastStarfighter inclui imagens 3D
•Em 1983 a Industrial Light & Magic (ILM) cria os efeitos especiais 3D do filme Star TrekIII -The WrathofKhan
•Em 1984 a Abel & Assoc. cria um anúncio comercial por computador
•A LucasFilmcria um novo programa de síntese foto realista de imagem baseado no método de traçagemde raios (REYES)
•Em 1986 S. Jobs compra a Pixarà empresa LucasFilm
•A INTEL e a Texas Inst. desenvolvem processadores gráficos
•Em 1988 a Pixartem o filme Luxo Jr. nomeado para um Óscar e recebe a patente do programa de síntese de imagem RENDERMAN
•Animação Luxo Jr. produzida pela Pixar
•Em 1988 a Pixarrecebe um Óscar pelo filme animado TinToy
•Em 1989 a ILM cria o personagem de “água” do filme The Abyss
•Em 1980 Whittedinventa o método de ray-tracing
•–Em 1984 Greenberg desenvolve um novo método de síntese foto realista de imagem baseado em teorias de transporte
•Em 1984 Porter e Duffinventam algoritmos sofisticados de composição criativa de imagens 2D (aplicáveis ao cinema)
•Em 1986 Kajiyadescreve a equação matemática que governa os fenómenos de transporte da luz, na base da iluminação global
•Progressos Obtidos nos Anos 80
•O hardware gráfico evolui consideravelmente (algoritmos em hardware)
•O método de raytracingtransforma-se em promessa adiada
•A equação de Kajiyafinalmente formaliza a síntese foto e fisicamente realista de imagem 3D e aponta novos caminhos
•Anos 90
•A plataforma dos inícios de 90 era a estação gráfica de trabalho SGI com 16 Mbytesde memória, matriz de pixels com 24 bits/pixel, suporte hardware para coloração Gouraude visibilidade z-buffer (os computadores IBM PC ainda não possuíam hardware gráfico)
•Em 1991 Berners-Lee cria no CERN a World Wide Web
•O filme Terminator2 (ILM) inclui um personagecomputadorizado
•Em 1993 é produzido o filme Jurassic Park (ILM e S. Spielberg) e um ano depois recebe um Óscar de Efeitos Especiais
•Em 1993 a empresa Cyanlança o jogo 3D de personagem Myst, que em 1988 se transforma no jogo mais vendido
•Em 1995 a Pixarproduz o filme animado comercial ToyStory
•A Sony lança o console de jogos Playstation
•Em 1998 a Pixarproduz o filme A Bug’sLife e em 1999 ToyStory2
O ACM reforça o reconhecimento público das contribuições científicas dos investigadores da Computação Gráfica através de premiosanuais de mérito (AchievementAwards do SIGGRAPH)
•Em 1992 surge o standard gráfico de programação OpenGL (SGI)
•A Univ. do Illinois desenvolve tecnologia de realidade virtual (CAVE)
•A partir de 1993 a Pixarrecebe prémios sucessivos da Academia
•Em 1995 M. Pesceintroduz o conceito VRML (standard ISO 1997)
•Em 1997 a Univ. de ChapellHill cria um novo sistema computacional paralelo para produção interactivade imagens em cenas complexas
•Em 1997 a empresa NVIDIA começa a contratar investigadores para produzir hardware gráfico 3D para computadores pessoais IBM PC
•A partir de 1993 G. Ward desenvolve o programa de síntese fisicamente realista de imagem RADIANCE, que se torna uma referência de facto em arquitetura e luminotécnica
•1991 foi o ano de mudança da indústria de cinema em relação à Computação Gráfica e pouco depois essa participação estendia-se às indústrias do vídeo, da televisão e do lazer/entretenimento
•As empresas Pixare ILM emergem como grandes líderes desta área
•Os jogos 3D Myst, Doom, Quake e Rivenilustram convincentemente muitos avanços científicos e tecnológicos da Computação Gráfica
•Surgem empresas dedicadas à fabricação de hardware gráfico 3D para computadores pessoais IBM PC e Apple (ATI, 3dfx, NVIDIA, etc)
•Os consoles de jogos evoluem rapidamente e transformam-se em computadores especializados em jogos (Playstation e Nintendo64)
Anos 2000 e 2001
•A plataforma mais comum para atividades em Computação Gráfica é o computador pessoal IBM PC com 512 Mbytesde memória, suporte hardware de coloração Phong, visibilidade z-buffer, mapeamento de texturas em tempo real e ecrãde elevada resolução
•Em 2000 são lançadas no mercado os consoles de jogos Sega Dreamcast e Sony Playstation 2 (poderosos computadores gráficos)
•A Disney exibe o filme animado por computador Dinosaure a Sony o filme HollowMan (outras empresas avançam para a produção CG)
•Em 2001 exibe-se o filme Shrek (DreamWorks), que recorre a novos métodos de síntese e animação de personagens “naturais”
•Em 2001 exibe-se o filme Pearl Harbour(Disney), repleto de efeitos especiais ultra realistas em sequências de combate aéreo e naval.
•Em 1999 –Gforce256 pela Nvidia
•Em 2000 as vendas de bilhetes do cinema americano atingiram os 1725 milhões de contos e as vendas de vídeo jogos os 1472 milhões
•Segundo a IDSA, 60% dos americanos com mais de 6 anos jogam vídeo jogos e esta indústria cresce a um ritmo 3 vezes superior aos das indústrias do cinema e do hardware
•Desde 1998 que se tem assistido a um desenvolvimento tecnológico impressionante nas plataformas computacionais orientadas à CG, o que se traduz por cada vez mais sofisticados processadores gráficos com desempenhos muito acima dos processadores de uso geral
•O potencial dos vídeo jogos está a levar à entrada de novas empresas nesta área e ao reposicionamento das existentes
•2001 –Xbox da Microsoft
•2002 –Xbox LIVE –Jogos online
•A guerra entre a ATI e a NVIDIA começa
•Biblioteca OPENGL –aberta, programação em C/C++, suportada por placas gráficas
•DirectX –Microsoft + Nvidia, concorrente do OPENGL. Melhor usabilidade
•Cenário Atual
•3D pipelines –execução paralela, otimizada e programável (o programador escolhe a ordem de execução das camadas)
•Computação Heterogênea –GPGPU –processamento paralelo massivo
Questão 2: Faça uma pesquisa para apresentar as técnicas de programação utilizadas em OpenGL para determinar a visibilidade de uma cena. Explique e, ainda, cite exemplo de cada técnica. (Apresentar no mínimo 4 técnicas).
Serão apresentadas quatro técnicas de programação ou seja os algortimos de visibilidade e que são muito utilizadas:
· Algoritmo do Buffer
· Algoritmo do Pintor
· Algoritmo de Warnock
· Algoritmo de ray-tracing
Algoritmo do Buffer
O algoritmo de Z-Buffer, desenvolvido por Catmull (Catmull, A subdivision algorithm for computer display of curved surfaces. 1974) é um algoritmo para determinação de superfícies visíveis centrado na resolução da janela de visualização.
Na implementação do algoritmo, cria-se dois espaços de memória: o frame buffer (F), onde esta armazenada as cores computadas a partir da cena, e o buffer de profundidade (Z-Buffer, Z), da mesma resolução que o frame buffer, contendo a profundidade (valor de Z) para cada pixel.
O Z-Buffer (que trabalha nas coordenadas da janela do dispositivo) é inicializado com o valor de 1 (sua variação é de zero até um), o qual representa o valor de Z no plano atrás do volume de visão, enquanto que, o Frame Buffer será inicializado com a cor do fundo da cena. A figura 4 apresenta uma cena e seu correspondente mapa de profundidade.
Figura Figura 02
O pseudocódigo do algoritmo de z-buffer apresenta-se na figura 02
Algumas das características básicas do algoritmo são:
• Não é necessário nenhum pré-ordenamentoou comparação objeto a objeto. Assim, os polígonos serão apresentados na tela segundo a ordem em que foram processados.
• O processo é simplesmente encontrar o menor valor Zi sobre um conjunto de pares {Z i (x,y), F i (x,y)} para valores fixos de x e y. A fimagem abaixo exemplifica a adição de dois polígonos à imagem.
Algoritmo do Pintor
O Algoritmo do Pintor é uma versão simplificada do Algoritmo de Ordenamento de Profundidade, desenvolvido por Newell (Newell, Newell and Sancha 1972).
A ideia fundamental neste algoritmo é pintar os polígonos no frame buffer em ordem decrescente, o seja, do objeto mais afastado terminando no objeto mais próximo.
Dois passos conceituais são realizados:
Ordenar o polígono segundo seu valor da profundidade z.
Fazer a conversão para o frame buffer em ordem descendente (de atrás para frente).
Entretanto, realizando estes passos não se garante que o uma cena seja a desejada, pois nem sempre o algoritmo produz um ordenamento correto.
A figura abaixo apresenta uma sequencia de objetos renderizados segundo o Algoritmo do Pintor.
Algoritmo de Warnock
O Algoritmo desenvolvido por Warnock (Warnock 1969) subdivide cada área de projeção em quatro quadrados iguais. Em cada etapa do processo de subdivisão recursiva, a projeção de cada polígono tem um de quatro tipos de relacionamento como a área de interesse.
Polígono envolvente, aquele que contém completamente a área de interesse, figura 10-a.
de intersecção, quando cruza a área, Fig. figura 10-b
Polígono contido, esta completamente dentro da área, figura 10-c.
Polígono disjunto, esta complemente fora da área, Fig. figura 10-d
10-a 10-b 10-c 10-d
Acima foram apresentados quatro tipos de relacionamento da projeção de um polígono com uma área de interesse:
a) Envolvente. b) Intersecção. c) Contido. d) Disjunto.
Da figura anterior, deduzimos que os polígonos disjuntos não tem nenhuma influencia sobre a área de interesse. Igualmente, a parte de um polígono de interseção que esta fora da área é irrelevante. Para o algoritmo somente são importantes à parte interior do polígono de intersecção que recaiu sobre a área de interesse, os polígonos contidos e os polígonos envolventes.
Existem quatro casos triviais para determinar o que esta na frente de uma área, assim que a área não precisa dividir ainda mais para ser conquistada:
Todos os polígonos são disjuntos. A cor de fundo pode ser exibida na área.
Há somente um polígono contido ou um polígono de interseção. A área é preenchida primeiramente pela cor de fundo, logo depois, a parte de polígono contida na área é exibida.
Há um polígono envolvente, mas nenhum polígono de interseção e nenhum polígono contido. A área é preenchida pela cor do polígono envolvente.
Mais de um polígono é intersecante, contido, ou envolvente na área, mas um deles é um polígono envolvente mais próximo ao observador, então toda a área é preenchida com a cor do polígono envolvente.
O pseudocódigo do Algoritmo de Warnock apresenta-se na iamagem abaixo:
Para uma resolução de 1024x1024, são necessários, pelo menos, 10 níveis de subdivisão. Se ao alcançar o número máximo de subdivisões nenhumas dos quatro casos acontecer, então se calcula a profundidade dos polígonos no centro de pixel indivisível, pintando aquele pixel com a cor de polígono mais próximo.
A figura abaixo apresenta uma cena simples com as subdivisões necessárias para exibição. O número em cada área corresponde aos casos acima indicados. Nas áreas sem nenhum rótulo, nenhuns dos enunciados são verdadeiros.
Algoritmo de ray-tracing
O algoritmo de ray-tracing faz parte do grupo que aborda a visibilidade orientada a imagem, pois este método determina as superficies visíveis traçando raios de luz imaginários do observador até os objetos da cena, testando se há intersecção entre eles.
A idéia básica deste algoritmo consiste em traçar, para cada pixel na janela de visualização, um raio a partir do centro de projecão até o centro do pixel da cena. Assim, a cor do pixel sera definida como a cor do ponto de intersecção mais próximo encontrado, como pode ser visto na figura abaixo:
Ojetado saindo do centro de projeção em direção aos objetos da cena.
Assim, este algoritmo, além da determinação de superficies visíveis, pode englobar em sua implementação, a tonalização de cada pixel visível. Entretanto, neste trabalho, será abordado apenas o primeiro caso, o qual se resume em encontrar a intersecção entre os raios traçados e os objetos da cena.
Para solucionar este problema, utiliza-se a representação paramétrica de um vetor. Assim, cada ponto P(x,y,z) que pertença a um raio que parte do ponto P0(x0,y0,z0) até o ponto P1(x1,y1,z1) pode ser definido por uma variável t, de tal forma que:
x=x0+t(x1-x0) ou x=x0+t∆x
y=y0+t(y1-y0) ou x=x0+t∆y
z=z0+t(z1-z0) ou x=x0+t∆z
t = 0 o ponto P0 (COP – Centro de projeção)
t = 1 o ponto P1 (pixel)
t 1 a representação dos pontos mais distantes do centro de projeção
Assim, caso seja detectada a ocorrência de uma intersecção entre o raio e um objeto, calcula-se a distância entre eles e verifica-se se esta e a menor distância em relação a outros objetos que o mesmo raio ultrapassa.
Questão 3: Os algoritmos em computação gráfica são classificados em “visibilidade orientada a imagem” e “visibilidade orientada a objeto”. Explique cada visibilidade utilizando no mínimo dois exemplos para cada visibilidade.
De acordo com Foley (Foley 1996), os algoritmos de visibilidade podem ser classificados em dois grandes grupos: visibilidade orientada a imagem ou precisão de imagem e visibilidade orientada ao objeto ou precisão do objeto.
No primeiro caso, quer-se determinar quais os n objetos são visiveis em cada pixel da imagem final. O Custo computacional para este caso é de np, sendo n o número de objetos na cena e p o numero de pixels da imagem, pois, para cada pixel, deve-se verificar qual entre todos os objetos está mais próximo do observador ao longo do raio projector. Exemplo da utilização desta abordagem são os algoritmos Z-Buffer e o Ray-tracing.
Z-Buffer
O buffer de profundidade é inicializado atribuindo-se a todos os seus elementos o valor, que pode ser representado por algum valor negativo extremamente alto, já que não renderizamos polígono algum até este momento. A matriz de cores ou intensidades luminosas (para renderizações em preto e branco) é inicializada atribuindo-se a todos os seus pixels a cor preta. Imagine o z-Buffer como representando o volume de espaço "atrás" do buffer, na direção z, tal qual está desenhado na figura abaixo.
Mapeamento da Profundidade dos Objetos na Cena
O próximo passo é mapear, pixel a pixel, a profundidade de cada objeto da cena que se encontra atrás daquele pixel. Tome cada um dos polígonos, execute a conversão por varredura e, durante esta conversão, execute os passos seguintes:
Passo 1 - Verificação de intersecção. Para cada pixel, determine os polígonos da cena cuja conversão de varredura resultou em um elemento com as coordenadas x,y deste pixel.
Passo 2 - Determinação da ordem de ocultação. Para todos os polígonos da cena, determine para cada pixel (i,j) que intercepta o polígono, se o valor z em Coordenadas do Mundo (eixo z do desenho acima) deste polígono na posição do pixel é maior do que o valor z armazenado no z-Buffer. Se for maior, calcule a cor e outros valores associados a este pixel e os insira na entrada (i,j) da matriz de cor e insira o valor z do polígono naquele ponto na posição (i,j) do z-Buffer. Senão, não faça nada.
Exemplo: Se inserirmos uma linha, como mostrado abaixo, nós registramos valor de profundidade de cada pixel e obtemos as valores mostrados na figura:
Se inserimos uma segunda linha e aplicamos o algoritmo acima novamente, vemos que o z-Buffer foi atualizado e mostra o índice da linha "da frente", visível, naquele pixel e o valor de profundidade da linha naquele ponto.
Podemos descrever na forma de um pseudocódigobastante simples o que descrevemos acima.
Algoritmo Z-Buffer
Dados:
Lista of polígonos {P1, P2, ..., Pn}
Matriz z-buffer[x,y] inicializado com
Matriz Intensidade[x,y]
início
para cada polígono P na lista de polígonos faça {
para cada pixel (x,y) que intercepta P faça {
calcule profundidade-z de P na posição (x,y)
se prof-z