Article image
Fernando Araujo
Fernando Araujo27/05/2023 17:08
Compartilhe

Computação Gráfica 3 - Técnicas básicas

  • #Estrutura de dados
  • #Unity
  • #Inovação

Olá, dev!

    Este artigo trata de técnicas básicas de Computação Gráfica para se implementar, do zero, um programa para criar um modelo 3D e visualizá-lo numa tela gráfica. Ele complementa outros dois que já escrevi sobre o assunto, finalizando a trilogia.

O que você vai ler aqui:

1.   Introdução

2.   O que é Computação Gráfica

3.   Técnicas de modelagem de objetos 3D

4.   Técnicas de visualização da cena

5.   Técnicas de iluminação dos objetos

6.   Conclusão

7.   Fontes de consulta

8.   Outros artigos sobre o mesmo assunto

1 – Introdução

No mês passado, eu publiquei dois artigos sobre Computação Gráfica, um sobre sua história e outro sobre a sua evolução e aplicação nos dias atuais.

Era para ser um artigo só sobre o assunto, mas ele acabou ficando muito longo e eu decidi dividi-lo em 2 artigos menores. O primeiro artigo trata da história da Computação Gráfica e de como eu vivenciei tudo isso na minha carreira e como eu fui influenciado. No segundo artigo, eu falo mais da evolução da área e de algumas aplicações que a utilizam atualmente.

Como eles ainda ficaram muito longos, dividi mais uma vez e eles viraram uma trilogia. Nestes artigos, foram citadas algumas técnicas específicas usadas na área, como modelos de iluminação, animação e outras, que me motivaram a escrever este novo artigo, completando a trilogia sobre Computação Gráfica.

Este artigo complementa os outros dois, identificando e descrevendo de técnicas básicas para se implementar, do zero, um programa para criar um modelo 3D e visualizá-lo numa tela gráfica. Ele procura dar uma visão geral de como funciona um mundo virtual 3D, como representá-lo no computador e como transformá-lo em uma imagem realista.

É um artigo mais técnico, mas eu procuro tratar de forma superficial os temas envolvidos. Espero que ele dê uma ideia de como se pode criar um mundo virtual e desenhá-lo de forma realista na tela do computador.

2 – O que é Computação Gráfica

Basicamente, a Computação Gráfica trata da modelagem e visualização de um cenário (2D ou 3D) na tela de um computador. Para isso, são exigidas funções de manipulação de objetos da cena, criação da cena vista por um observador e do desenho e pintura dos objetos na tela do computador, de acordo com as fontes de luz e posição do observador.

No início, na década de 80, todas estas funções precisavam ser escritas manualmente, mas os pacotes gráficos e de desenvolvimento de jogos vieram para oferecer todas as funções necessárias já implementadas, só precisando o programador chamá-las.

O que é necessário para se visualizar um modelo 3D de forma realista?

•   Modelagem (o modelo 3D) – criação e manipulação da estrutura geométrica da cena, contendo os objetos, cada um composto por pontos (vértices), retas (arestas), superfícies (lados) e curvas (quando houver);

•   Visualização da cena (a câmera) – definição de uma posição de observação da cena (ou câmera), que indica de onde a cena é observada, representada pela sua posição e direção da visada;

•   Iluminação da cena (as fontes de luz) – posição, direção e cores das diversas fontes de luz do mundo virtual, que gerarão a visão realista dos objetos da cena.

A figura a seguir mostra um observador olhando uma cena 3D e como aparece para ele a projeção do objeto visto. É essa projeção que será visualizada na tela do computador.

image

3 – Técnicas de modelagem 3D

A cena tridimensional (o mundo virtual) a ser visualizada é modelada pelos objetos que a compõem, representados por pontos, retas e superfícies, que podem ser planas ou curvas.

3.1 - Pontos, Retas e Faces

O modelo é a base de dados a ser visualizada na tela, composta pelos pontos 3D, retas, que ligam os pontos e faces, formadas por um conjunto de retas, formando o contorno do objeto sólido. Em geral, uma face tem forma plana e poligonal, mas também pode ser uma superfície curvilínea e complexa.

Um ponto é representado matematicamente por uma matriz 3x3, com coordenadas (x, y, z), uma reta é representada pelos 2 pontos que a definem e uma face é representada pelas retas que a contornam, em uma ordem específica, pois ela pode ter um lado interno e outro externo a um objeto. As funções básicas para criar o modelo são:

ponto(x, y, z)

reta(p1, p2, cor)

face(reta1, reta2,...,cor)

Esta ordem torna mais fácil o cálculo do vetor normal (perpendicular) à face, usado para as operações de iluminação.

3.2 – Transformações

As transformações são operações geométricas que podem ser aplicadas aos objetos do modelo observado, para realizar alterações neles, como translação (deslocamento), rotação (giro) ou escala (alteração do tamanho).

Uma transformação pode ser aplicada a um objeto da cena, em vários ou até na posição (translação) das fontes de luz e da câmera (translação, rotação). Ela é aplicada nos pontos que definem um objeto. (ver figura).

image

Uma transformação em um modelo 3D também é representada por uma matriz 3x3 (2x2, para modelos 2D). A figura abaixo mostra uma transformação 3D de translação T = (Tx, Ty, Tz) = (10, -20, 30) de um ponto P = (Px, Py, Pz) = (1, 2, 3), na forma de equações e na forma matricial.

P’x = Px + Tx;   P’ = [P] + [T]

P’y = Py + Ty;

P’z = Pz + Tz.

image

Estas operações são simplificadas pelo uso de um artifício matemático chamado coordenadas homogêneas, em que é adicionada uma ordem às dimensões da matriz de transformação e dos pontos, que passam de 3x3 para 4x4 (de 2x2 para 3x3, em 2D).

Desta forma, as operações de transformações podem ser feitas por multiplicação de matrizes de mesmo tamanho (P’ = [T] x [P] ), como mostra a figura.

image

Uma transformação composta da sequência de várias transformações individuais (escalas, translações e rotações) pode ser representada por uma única matriz ([P1’] = [Transf] * [P1]), resultante da multiplicação de todas as matrizes individuais. A fórmula abaixo mostra a aplicação de uma transformação resultante a um ponto (ver figura).

image

Algumas transformações (rotação e escala) precisam ser executadas em relação a um ponto de origem, que pode ser um ponto externo ao objeto, ou outro ponto. O objeto é transladado para essa origem, é feita a operação e depois o objeto é devolvido à sua posição original na cena (ver figura).

image

3.3 - Superfícies Curvas

Um objeto de contorno curvilíneo complexo é difícil de ser modelado por faces poligonais, pois seria necessário criar centenas ou milhares de faces poligonais pequenas para representá-lo.

Por isso, é comum que superfícies curvas complexas sejam representadas por uma malha de pontos que a aproximam. Na figura abaixo, uma superfície curvilínea complexa é representada apenas por 16 pontos (no caso de superfícies de Bézier).

image

Estes 16 pontos são chamados pontos de controle e suas posições dão a forma aproximada da superfície (bicúbica). Caso seja necessário ajustar a forma a superfície, basta alterar a posição de um ou mais destes pontos.

Este tipo de representação de superfícies curvas tem duas vantagens básicas:

•   a necessidade de se armazenar apenas 16 pontos, ao invés de se usar aproximação poligonal (quando seria necessário armazenar a geometria de inúmeras faces planas);

•   a facilidade de se editar o modelo apenas alterando a posição destes 16 pontos, ao invés dos inúmeros pontos dos triângulos que a aproximam, mais difícil de se chegar a uma sintonia fina do modelo desejado.

Mesmo assim, as GPUs e a linguagem OpenGL usam a representação por meio de triângulos para a renderização de superfícies curvas, pois um triângulo é renderizado muito rapidamente em uma GPU, podendo até ser realizada de forma paralela.

Já foram propostos vários algoritmos para renderizar uma superfície curva diretamente da sua representação curvilínea, mas eu não tenho notícia de que algum foi disponibilizado por alguma placa gráfica, ao invés da renderização de triângulos.

O contorno de uma superfície curva pode ser baseado em curvas de Bézier, Hermite, splines, B-splines e outras formas semelhantes. No caso das superfícies, ocorre o mesmo.

A figura abaixo mostra uma curva cúbica de Bézier, com pontos de controle P0, P1, P2 e P3. Ela passa pelos pontos inicial e final, e tangencia as retas inicial e final, mas apenas aproxima os pontos internos. A sua equação paramétrica também é mostrada na figura, lembrando que cada ponto P tem 3 coordenadas (x, y, z), portanto, 3 equações individuais.

image

3.4 - Fractais

A modelagem de objetos com muitos detalhes (curvaturas, reentrâncias) por meio de uma malha imensa de polígonos planos apresenta um efeito colateral indesejável, quando o objeto é visualizado de muito perto, pois as arestas retilíneas dos polígonos se tornam bem aparentes e o objeto perde seu realismo.

O mesmo efeito ocorre quando se modelam elementos da natureza (nuvens, relevo, água, fumaça, fogo, árvores, flocos de neve, etc) por meio de polígonos planos.

Em geral, nestes casos, são usados os fractais. Um fractal é um objeto geométrico que pode ser dividido em outras partes, iguais ao desenho original, de forma recursiva. Pode-se dizer que um fractal pode ter infinitos detalhes, pois cada subdivisão gera mais detalhes do que a figura original (ver figura abaixo).

image

O fractal é uma das técnicas aproveitadas da matemática para a Computação Gráfica, permitindo a modelagem e renderização de fenômenos naturais de forma muito realista, pois a cada aproximação do objeto novos detalhes são gerados.

Por exemplo, se você modelar um floco de neve com polígonos e aproximar sua visão, vai ver que os polígonos continuam sendo os mesmos, diferentemente do floco de neve, que apresenta mais detalhes, não vistos a uma distância maior.

No entanto, ao modelar um floco de neve usando fractais, cada vez que se aproxima a visão dele, novos detalhes são vistos, como mostra a figura a seguir, com a construção da forma fractal de bloco de neve com a técnica de Koch.

image

A figura abaixo mostra uma folha, formada pela subdivisão recursiva de um elemento geométrico simples.

image

4 – Técnicas de visualização

A visualização de uma cena é a representação visual, desenhada na tela do computador, dos objetos visíveis pelo observador, que se encaixam no campo visual de uma área da tela.

4.1 - Câmera (ou Observador)

A câmera (ou observador) é definida por uma posição camera(cam_x, cam_y, cam_z) e uma direção, que é o ponto para onde aponta a lente da câmera, podendo ser um ponto da cena direcaoCamera(dircam_x, dircam_y, dircam_z).

4.2 - Janela (“Window”)

Uma janela é a porção do modelo (do mundo virtual) que é vista pelo observador, representada por uma pirâmide 3D, definida dentro de cena, recortando os elementos geométricos da cena e evitando “renderizar” (processar) aqueles que não serão desenhados na tela do equipamento gráfico.

4.3 - “Viewport”

Uma viewport é uma área retangular da tela em que a visualização será mostrada, definidas pelos pixels dos cantos do retângulo da janela.

   A figura a seguir mostra a janela e a viewport de uma cena, cortando a parte da cena que não é vista pelo observador e, portanto, não será renderizada.

image

4.4 – Perspectiva

A representação realista de um modelo 3D em na tela de um computador é uma projeção da imagem da cena em uma tela 2D e deve reproduzir a visão do observador. A projeção cônica (ou perspectiva) é a que gera uma imagem mais realista, a mesma usada nos quadros e pinturas. 

Este tipo de projeção altera os tamanhos e as proporções dos objetos, como a nossa visão faz, vendo maiores os objetos de mesmo tamanho que estão mais perto e retas paralelas se encontrando no horizonte, como os trilhos de um trem. (figura)

image

Matematicamente, basta aplicar uma operação de transformação nos pontos do objeto que a imagem dele em perspectiva poderá ser visualizada na tela.

4.5 - Desenho da cena na tela

Uma cena pode ser gerada e visualizada (renderizada) apenas pela geometria do modelo e posição do observador, consistindo do desenho na tela dos contornos dos objetos da cena, ou pela pintura das faces iluminadas pelas fontes de luz.

A forma de visualização mais simples é de “wireframe”, em que apenas as linhas das faces que formam os objetos são mostradas na tela, como mostra a figura a seguir, da famosa chaleira, ou “teapot”, muito usada em Computação Gráfica:

image

4.5.1 - Desenho das retas

Para desenhar na tela as retas que formam os vértices das faces dos polígonos, é preciso uma função que trace uma reta de um ponto até o outro, pintando, na tela, os pontos que vão do ponto inicial ao ponto final da reta.

O algoritmo de Bresenham desenha uma reta na tela entre dois pontos, de forma simples. Ele determina os pixels a serem pintados entre os dois pontos, mas esta operação gera efeitos de serrilhado (escadinha), principalmente em retas inclinadas, devido ao efeito de “aliasing”.

Para reduzir este efeito, usamos técnicas de “antialiasing”, que consiste em pintar alguns pixels com uma variação do tom da cor da reta. A figura a seguir mostra uma reta desenhada com “aliasing” e outra versão, com o “antialiasing” aplicado, como são vistas na tela e como os pixels são pintados.

image

As funções básicas para se desenhar um modelo 3D na tela do computador são:

desenhaReta(p1, p2, cor)

desenhaRetaSemAliasing(p1, p2, cor)

A visualização em wireframe gera uma infinidade de traços (retas e curvas) que se misturam e se interceptam na cena. Muitos destes traços não serão vistos pelo observador, pois estão escondidos por superfícies opacas na frente deles.

4.6 - Remoção de Linhas e Superfícies Escondidas

As linhas de contorno que não são visíveis pelo observador, bem como os detalhes das outras superfícies, precisam ser descartadas da visualização, para impedir que sejam gastos recursos para renderizar partes do modelo que não serão visíveis na tela.

A figura a seguir mostra o efeito de remoção das linhas e superfícies escondidas para o objeto teapot daquela figura em wireframe.

image

5 – Técnicas de iluminação do modelo

A renderização básica de uma cena 3D na tela pode ser feita em wireframe, mas o realismo da cena só é obtido quando se aplica a iluminação das fontes de luz, com seus efeitos de luz, sombras e reflexão nos objetos modelados. Este efeito é chamado de sombreamento (“shading”) dos objetos.

A posição de uma fonte de iluminação é dada por uma posição Luz(luz_x, luz_y, luz_z) e uma direção, que também pode ser um ponto final Foco(dirluz_x, dirluz_y, dirluz_z).

   A figura a seguir mostra um exemplo de uma cena sendo iluminada por uma fonte de luz, com sombras na parte não iluminada dos objetos e sombras no chão, sendo vista por um observador.

image

5.1 - Sombreamento (“shading”) das Superfícies

O sombreamento objetiva pintar uma superfície com base na sua cor e nas fontes de luz da cena, sempre em relação à posição do observador. Apenas as superfícies que serão visíveis serão sombreadas.

A intensidade do brilho e a cor com que um objeto será pintado na tela são determinados pelo ângulo que a superfície (face) faz com a direção da fonte de luz e com a direção de visão do observador.

Os vetores que representam estas direções e o vetor normal (perpendicular) à superfície sendo iluminada, são usados nos cálculos.

A forma mais simples de sombreamento é o “flat shading”, que consiste em pintar toda a superfície com uma única cor, dada pela direção do vetor normal à superfície.

Outras formas de sombreamento são dadas por algoritmos mais complexos, que permitem apresentar um sombreamento contínuo (método de Gouraud), com interpolação das intensidades de luz entre dois pontos.

O método de Phong, que usa interpolação dos vetores normais à superfície entre dois pontos, é ainda mais preciso, adicionando reflexão especular.

Estas 3 técnicas são mostradas na figura abaixo, na ordem flat shading, Gouraud e Phong.

image

Outra técnica avançada, chamada de mapeamento de textura (“Bump Mapping”), permite mapear na superfície do objeto qualquer imagem, aplicada como textura, desde figuras geométricas até uma foto de um ambiente, simulando uma reflexão do ambiente (ver figura).

image

Em alguns casos de maior complexidade de realismo, como na apresentação de transparência, seria preciso usar uma técnica ainda mais avançada, chamada “Ray Tracing”.

5.2 - Ray Tracing (Traçado de raios)

Esta técnica avançada de renderização consiste na determinação do caminho que os raios de luz da cena percorrem até chegar a cada pixel da tela, para calcular o nível de intensidade de brilho (e a cor) do pixel.

Desta forma, a iluminação de cada ponto se assemelha à nossa visão real, ao invés de simular apenas o efeito de brilho de cada fonte de luz nos objetos da cena. O ray tracing permite representar transparência e reflexão nos modelos geométricos 3D da cena, impossível com os modelos tradicionais de sombreamento (Phong, Gouraud, etc.).

A técnica de ray tracing já existe há muitos anos, sendo regularmente aplicada nos efeitos especiais dos filmes do cinema, como O Exterminador do Futuro 2 e Parque dos dinossauros, mas ela envolve cálculos matemáticos complexos e sua aplicação para cada pixel da tela exige um processamento muito rápido.

No passado, um segundo de cena de um filme na tela precisava de um processamento de horas para ser gerado. Ou seja, é uma técnica avançadíssima que demandava um processamento enorme para gerar 1 segundo de cena não interativa de um filme.

O uso de ray tracing em sistemas interativos, como é o caso de jogos de computador, só foi possível após o avanço tecnológico das placas de vídeo, notadamente após o lançamento do modelo GeForce RTX 20, da NVidia.

As avançadas placas gráficas para PCs lançadas nos últimos anos proporcionam o uso desta técnica em games interativos, que demandam processamento em tempo real, até mesmo em computadores domésticos.

A figura abaixo mostra exemplos de cenas renderizadas com ray tracing, apresentando efeitos realistas impressionantes de transparência e reflexão.

image

A próxima figura mostra exemplos de cenas do jogo Minecraft iluminadas com o efeito de ray tracing. As cenas de uma mesma linha são as mesmas, mas nas imagens da esquerda o efeito de ray tracing está desligado (RTX off), enquanto que nas da direita ele está ligado (RTX on). Note as cores mais naturais nas imagens com o efeito ligado, bem como efeitos de sombra, brilhos e transparência.

image

Ainda existem outras técnicas mais avançadas, muito usadas em filmes de animação, como sistema de partículas, simulação de efeitos da Física e outros. Mas para este texto introdutório, é melhor parar por aqui.

OBS: Nas fontes de consulta sobre ray tracing, listadas no final deste artigo, você pode acessar vídeos da Nvidia mostrando a aplicação desta técnica em ambientes 3D realistas.

6 - Experiência pessoal

Quando eu estudava Computação Gráfica na pós-graduação, em 1986, precisei implementar todas as funções gráficas para criar e visualizar um modelo 3D. Naquela época, sem pacotes gráficos, a gente precisava implementar todas as funções de modelagem, de visualização e de iluminação.

Estas funções precisavam de uma única função básica para se desenhar uma imagem realista na tela:

pintaPixel(linha, coluna, cor) – pinta um pixel da tela na linha e coluna determinadas, com uma cor especificada, no formato RGB;

A partir desta função simples, todas as outras funções de desenho eram criadas, desde o traçado de uma reta até a iluminação de um objeto complexo, em qualquer memória de imagem de um computador sem pacote gráfico, no meu caso.

Além dela, todas as outras funções de modelagem, transformações, perspectiva, iluminação precisavam ser criadas.

Um dos trabalhos que eu fiz na minha pós-graduação foi classificar e comparar os algoritmos de display de superfícies curvas existentes, que seriam usados diretamente na renderização de modelos curvilíneos 3D, em vez da simplificação por inúmeros triângulos planos.

Algum dia, ainda quero voltar a estudar este assunto específico, que me fascina.

7 - Conclusão

No mês passado, eu publiquei dois artigos sobre Computação Gráfica, um sobre seu histórico e outro sobre a sua evolução e aplicação nos dias atuais.

Nestes artigos, foram citadas algumas técnicas específicas usadas na área, como modelos de iluminação, que me motivaram a escrever este novo artigo, completando a trilogia sobre Computação Gráfica.

Este artigo complementa os outros dois, dando uma visão geral de como funciona um mundo virtual 3D, como representá-lo no computador e como transformá-lo em uma imagem realista.

Primeiro, foram listadas as principais atividades usadas para se criar um modelo 3D de uma cena para visualizar no computador.

Depois, foram descritas as funções principais para manipular os objetos da cena modelada, seguidas das funções para visualizar a cena modelada na tela.

Por fim, foram descritas as funções principais para renderizar (desenhar e pintar) os objetos da cena visualizada pelo observador, de forma realista, na tela do computador.

Eu ainda tratei das minhas atividades para criar um pacote de modelagem e visualização de cenas 3D durante a minha pós-graduação, na década de 80, sem usar nenhum pacote gráfico, apenas um computador com uma boa memória de imagem.

Hoje, os pacotes gráficos e placas gráficas fazem a magia acontecer. Quem é acostumado a jogar os jogos digitais atuais, sabe da importância do realismo nesses jogos.

Este artigo mostra, de forma bem superficial, o arsenal de matemática necessário para se aprofundar no assunto, que consiste de conhecimentos sobre vetores, ângulos, trigonometria, matrizes, equações polinomiais, interpolação, curvas planas, superfícies espaciais, modelos cromáticos, entre outros.

Isso é importante para o entendimento das atividades relacionadas à área de Computação Gráfica, essencial para a criação de funções primitivas. No caso de se usar algum pacote gráfico de desenvolvimento, todas essas funções já são oferecidas, mas é bom ter algum conhecimento básico dessa matemática.

Bem, se você quer trilhar esse caminho, eu recomendo um curso fantástico da Khan Academy, em parceria com a Pixar, chamado “Pixar in a Box” [17], que trata de técnicas de animação, com técnicas de modelagem, movimento e interpolação, apresentadas de forma muito intuitiva.

Atualmente, as imagens obtidas por Computação Gráfica ainda me fascinam e eu gostaria de trabalhar com essa área no futuro, de alguma forma.

Obrigado por ler até aqui, até o próximo artigo!

OBS: após pensar a respeito, eu decidi escrever artigos de tamanho menor, pois meus artigos sempre foram muuuuuuuuuuuito longos. Acho que eu queria colocar todas as informações como se estivesse dando uma aula, mas em uma aula, a gente fala muita coisa, além do que está mostrado nos slides.

Em um artigo, é melhor não detalhar tanto, e deixar alguma coisa subentendida, imaginando que você, leitor, já tem alguma base sobre o assunto e não vai precisar de tantos detalhes para entender o que está escrito.

Prometo que esse será meu último artigo muito, muito, muito, muito longo!

8 – Fontes de consulta

[1] Donald Hearn, M. Pauline Baker, Computer Graphics, Prentice Hall, 1986.

[2] Edward Angel, David Shreiner, Interactive Computer Graphics, 8th Edition, Pearson, 2020

[3] John F. Hughes, Andries van Damm, James D. Foley, et all., Computer Graphics – Principles and Practice, 3rd Edition, Addison Wesley, 2014.

[4] Fletcher Dunn, Ian Parberry, 3D Math Primer for Graphics and Game Development, A. K. Peters/CRC Press, 2011

[6] Microsoft Learn, Três tipos de curvas de Bézier. Disponível em: <https://learn.microsoft.com/pt-br/xamarin/xamarin-forms/user-interface/graphics/skiasharp/curves/beziers>. Acesso em: 27/05/2023.

[7] Márcio Sarroglia Pinho, Computação Gráfica, Curvas Paramétricas. Disponível em: <https://www.inf.pucrs.br/~pinho/CG/Aulas/Curvas/Curvas.htm>. Acesso em: 27/05/2023.

[8] Wikipedia, Bézier Surface. Disponível em: <https://en.wikipedia.org/wiki/B%C3%A9zier_surface>. Acesso em: 27/05/2023.

[10] Brasil Acadêmico, Curvas Bézier: Como o computador desenha curvas. Disponível em: <http://blog.brasilacademico.com/2014/10/curvas-bezier-como-o-computador-desenha.html>. Acesso em: 27/05/2023.

[11] UFF, Modelagem UFF Fractais Partículas, Disponível em: <http://www.ic.uff.br/~aconci/ModelagemFractaisParticulas.pdf>. Acesso em: 27/05/2023.

[12] Julio Arakaki, Computação Gráfica – Fractais. Disponível em: <https://www.pucsp.br/~jarakaki/cgpi/4_Fractais.pdf>. Acesso em: 23/05/2023.

[13] BBC, O que são os fractais, padrões matemáticos infinitos apelidados de 'impressão digital de Deus'. Disponível em: <https://www.bbc.com/portuguese/geral-50656301>. Acesso em: 27/05/2023.

[14] Vivi Werneck, O que é Ray Tracing?. Disponível em: <https://tecnoblog.net/responde/o-que-e-ray-tracing/>. Acesso em: 27/05/2023.

[15] Felipe Garrett, O que é Ray Tracing? Veja como funciona a tecnologia para placas de vídeo. Disponível em: <https://www.techtudo.com.br/noticias/2018/04/o-que-e-ray-tracing-veja-como-funciona-a-tecnologia-para-placas-de-video.ghtml>. Acesso em: 27/05/2023.

[16] Felipe Gondenboy, O que é ray tracing?. Disponível em: <https://canaltech.com.br/games/o-que-e-ray-tracing/>. Acesso em: 27/05/2023.

[17] Khan Academy, Pixar in a Box. Disponível em: <https://pt.khanacademy.org/partner-content/pixar-latam>. Acesso em: 27/05/2023.

9 – Outros artigos sobre o mesmo assunto

Este artigo complementa uma trilogia de artigos que eu escrevi aqui sobre Computação gráfica. Os outros dois são:

Computação Gráfica 1: a história e o que eu vivenciei

Disponível em: https://web.dio.me/articles/coputacao-grafica-1-historia-e-o-que-eu-vivenciei?back=%2Farticles&page=1&order=oldest

Computação Gráfica 2: evolução e áreas de aplicação

Disponível em: https://web.dio.me/articles/computacao-grafica-2-evolucao-e-areas-de-aplicacao?back=%2Farticles&page=1&order=oldest

Compartilhe
Comentários (4)
Fernando Araujo
Fernando Araujo - 31/05/2023 12:00

Opa, João!

Obrigado por ter lido artigo tão longo, mas é muita informação para passar.

As técnicas que eu descrevi são aquelas funções básicas que todo pacote de modelagem e desenvolvimento de jogos e de visualização gráfica já disponibilizam, mas no início da década de 80 era preciso implementá-las do zero, a partir de uma função básica de pintar um pixel na tela com uma determinada cor.

Hoje, os pacotes já oferecem todas estas funções, incluindo a ótima ferramenta Blender.

Eu estudei muito essa base da Computação Gráfica na Universidade, na minha pós-graduação, e fiquei fascinado pela área, mas não trabalho com ela.

Sou apenas um fã da área, e espero trabalhar novamente com isso no futuro, talvez com realidade virtual ou aumentada.


JA

João Andrade - 30/05/2023 15:57

No seu artigo faltou mencionar uma importante e grátis ferramenta, o nosso querido blender, para animar a galera.

Quanto aos certificados postados de forma inútil, não há quem dê jeito.

E sobre o 3D, você atua na área?

Algum tempo atrás fiz minha primeira animação e meu primeiro game em 3D usando scripts no blender.. hoje tá tudo parado aqui.

Fernando Araujo
Fernando Araujo - 30/05/2023 11:59

Obrigado, Luiz!

Eu acho o assunto muito interessante, mas o artigo logo passou para baixo do feed e pouca gente teve oportunidade de lê-lo.

Acho que o feed não deveria misturar artigos com tópicos dos fóruns e publicação de certificados, mas isso cabe à DIO organizar.

Luiz Café
Luiz Café - 29/05/2023 20:40

Uma verdadeira aula de computação gráfica. Seu artigo além de completo tem uma linguagem incrível que facilita o aprendizado.

Parabéns Fernando pela escolha do tema e por sua dedicação em contribuir com seus conhecimentos com tanta qualidade.