Ciência e Tecnologia

Um olhar sobre o futuro possível dos gráficos 3D: quão mais real do que real você pode ser?

À medida que CPUs e GPUs continuam a ficar mais poderosas a cada nova geração, a busca por gráficos cada vez mais realistas em jogos de sucesso não mostra sinais de desaceleração. Os títulos mais bonitos de hoje já são impressionantes, então quanto melhor eles podem ficar?

Quais tecnologias se tornarão tão comuns quanto a filtragem de textura ou o mapeamento normal é hoje? Quais sistemas ajudarão os desenvolvedores a alcançar esses padrões mais elevados? Junte-se a nós enquanto analisamos o que nos espera no futuro dos gráficos 3D.

De onde nós viemos?

Antes de partirmos para o futuro, vale a pena fazer um balanço dos avanços nos gráficos 3D ao longo dos anos. Muitos dos aspectos teóricos da renderização 3D (por exemplo, transformações de vértices, projeções de viewport, modelos de iluminação) têm décadas, se não mais.

Tome o humilde z-buffer, como exemplo. Isso nada mais é do que uma porção de memória usada para armazenar informações de profundidade sobre objetos em uma cena e é usada principalmente para determinar se uma superfície está ou não escondida atrás de outra coisa (o que, por sua vez, permite que os objetos sejam descartados, em vez de renderizá-los e também pode ser usado para gerar sombras).

O conceito de z-buffer é geralmente atribuído a Ph.D. estudante Wolfgang Straßer, 1974, trabalhando na TU Berlin na época. O primeiro hardware comercial a fazer uso do buffer apareceu dentro de 5 anos ou mais, mas o público em geral teria que esperar mais de 20 anos, até meados dos anos 90, pela chegada do Nintendo 64 e seu z-buffer habilitado Reality co -processador.

Para a época, um dos chips gráficos mais poderosos disponíveis para o público em geral. Fonte: Wikimedia

O mesmo vale para outros padrões de renderização: Sombreamento Gouraud (Henri Gouraud, 1971); mapeamento de textura (Edwin Catmull, 1974); mapeamento de colisão (Jim Blinn, 1978). Levaria décadas antes que qualquer jogador casual pudesse ver essas coisas em ação em sistemas de entretenimento doméstico.

E foram os gostos da Sony, Sega e Nintendo que fizeram isso, com seus 3D -consolas focadas. Pelos padrões de hoje, os jogos para essas primeiras máquinas, como o primeiro PlayStation, eram primitivos ao extremo, mas os desenvolvedores ainda estavam se familiarizando com a renderização ‘moderna’.

Texturas vacilantes? Polígonos irregulares? Tem que ser o Tomb Raider original de 1996

Ao mesmo tempo, os fornecedores de hardware de PC também estavam entrando no ato 3D, e em apenas 5 anos, computadores desktop ao redor do mundo foram placas gráficas esportivas com suporte para shaders, z-buffers, mapeamento de textura, et al.

Seria a evolução dos chips gráficos que impulsionaria o desenvolvimento dos gráficos 3D, mas prever como os jogos seriam no futuro próximo era um pouco complicado, apesar do caminho óbvio que as GPUs seguiriam

Uma empresa tentou dar uma chance e MadOnion (mais tarde Futuremark) tentou mostrar a todos como os gráficos podem parecer com o 3DMark, com base no feedback recebido de outros desenvolvedores e fornecedores de hardware . Mas todos os seus esforços fizeram foi demonstrar que a evolução em gráficos, tanto de software quanto de hardware, era muito rápida para prever com precisão como as coisas iriam se transformar naquela época.

Apenas dois anos separar os testes de Natureza de 3DMark2001 e 3DMark03

Tudo o que podia ser medido em números aumentava a um ritmo frenético. Nos primórdios dos jogos 3D, o número de polígonos por quadro era frequentemente usado como um ponto de venda, mas agora nunca é mencionado, porque é apenas uma quantidade ridícula.

Por exemplo, o primeiro Tomb Raider rodando no PlayStation usou 250 triângulos para Lara, enquanto a versão para PC de Shadow of the Tomb Raider pode usar até 200.000 para o personagem principal.

Tamanho da textura e o número de texturas usadas aumentaram a cada ano também, e agora estamos no ponto em que apenas um pacote de texturas HD pode ter o mesmo tamanho que o resto dos recursos do jogo combinados (dê um passo à frente, Far Cry 6).

Ruína (1993) vs Doom (2016) — 0,01 GB vs. 68 GB tamanhos de instalação

Este aumento constante de polígonos e texturas é uma necessidade infeliz para a busca de imagens cada vez mais realistas, ou melhor, gráficos mais detalhados.

Embora ainda haja muita pesquisa em andamento sobre geração de textura procedural (que usa algoritmos para gerar texturas em tempo real) e outros atalhos, o uso tradicional de bitmap imagens para texturas, juntamente com vértices e índices para modelos, não vão desaparecer tão cedo.

Assim, podemos começar nossa jornada para o futuro tendo certeza de uma coisa.

Números: Eles vão continuar crescendo(e menor)

A Epic Games apresentou os recursos do Unreal Engine 5 com muito alarde há dois anos, e o primeiro a chegar aos holofotes foi um novo sistema de geometria, chamado Nanite. O sistema funciona em uma passagem de renderização separada e transmite malhas dentro e fora de uma cena, dependendo da visibilidade.

Os desenvolvedores também utilizam um rasterizador baseado em software, para triângulos menores que um pixel , para descarregar alguns dos custos de configuração do triângulo da GPU. Como todas as novas tecnologias, não é perfeita e existem várias limitações, mas a demonstração da tecnologia PlayStation 5 mostrou claramente o que nos espera no futuro.

Uma malha típica nesta demonstração contém mais de 1 milhão de polígonos, para um consumo de memória de 27 MB (incluindo todas as texturas) e um tempo de renderização de 4,5 milissegundos para seleção , rasterização e avaliação de materiais. No valor de face, esses números podem não significar muito, mas o infame Crysis estava colocando em campo até 2 milhões de polígonos portodo cenas.

Ao longo dos anos, tem havido muitos métodos para aumentar o número de triângulos usados ​​para criar objetos e ambientes, como tesselação e shaders de geometria, tudo isso ajuda a melhorar o detalhe natural dos modelos.

Mas o sistema Nanite da Epic é um avanço significativo, e podemos esperar que outros desenvolvedores criem sistemas semelhantes.

Os níveis incrivelmente altos de detalhes vistos em alguns jogos agora se tornarão generalizados no futuro . Cenas ricas e volumosas não serão apenas a preservação de títulos AAA caros.

Veja o que 17 anos de melhor contagem de polígonos alcançaram em Far Cry

As texturas continuarão a crescer em tamanho e quantidade. Modelos nos jogos de hoje exigem uma série de mapas de textura (por exemplo, cor base, normal, deslocamento, especular, brilho, albedo) para fazer o objeto parecer exatamente como os artistas pretendem.

Os monitores estão agora no estágio em que 1440p ou 4K é muito mais acessível, e há muitas placas gráficas que funcionam muito bem na resolução anterior. Assim, com os quadros agora compostos de vários milhões de pixels, as texturas precisam ter a mesma resolução, para garantir que não fiquem borradas quando esticadas sobre o modelo.

Enquanto estamos ainda não veremos os jogos em 4K se tornando mainstream, o futuro será todo sobre detalhes finos, portanto, continuará a haver crescimento na pegada de memória das texturas.

Texturas grandes e de alta resolução são essenciais para mundos imersivos e realistas

Mas milhões de polígonos, todos envoltos em 16K texturas, seriam inúteis (ou certamente não muito realistas) se não fossem iluminadas e sombreadas corretamente. A simulação de como a luz interage com objetos no mundo real, usando gráficos 3D computados, tem sido objeto de intensa pesquisa e desenvolvimento por quase 50 anos.

As placas gráficas são projetadas para calcular,en masse, os resultados de uma série de algoritmos, cada um crítico para alcançar o objetivo de “o mais real possível.” Mas por muitos anos, as GPUs não tinham nada dedicado a essa tarefa. Eles eram, e ainda são, nada mais do que inúmeras ALUs de ponto flutuante, juntamente com muito cache, com várias coleções de unidades para manipulação de dados.

Isso foi até quatro anos atrás quando a Nvidia decidiu que era hora de voltar para a década de 1970, novamente, com um aceno para o trabalho de Turner Witted, e fornecer suporte de hardware para acelerar aspectos do santo graal da renderização.

O traçado de raios estará em todos os lugares

O processamento gráfico 3D tradicional é essencialmente uma coleção de atalhos, hacks e truques para dar a impressão de que você está olhando para uma imagem genuína de um objeto real, iluminado por fontes de luz reais. O rastreamento de raios não é a realidade, é claro, mas está muito mais próximo disso do que o que geralmente é chamado de “rasterização” – embora a rasterização ainda seja uma parte fundamental do rastreamento de raios, assim como vários outros algoritmos.

Estamos agora no estágio em que todos os fornecedores de GPU têm hardware com suporte a ray tracing, bem como os consoles mais recentes da Microsoft e da Sony. E mesmo que os primeiros jogos que forneciam um ponto de ray tracing, para sombras ou reflexos, não fossem nada para gritar, existem alguns títulos por aí que destacam seu potencial.

A iluminação global rastreada por raios em Metro Exodus: Enhanced Edition é impressionante de se ver

Apesar do impacto no desempenho que a aplicação de ray tracing em jogos invariavelmente produz, não há dúvida de que ele se tornará tão onipresente quanto o mapeamento de textura.

Os sinais para isso está por toda parte – até o final deste ano, a Nvidia terá três gerações de GPUs com aceleração de ray tracing, a AMD terá duas e a Intel com uma (embora haja rumores de que sua GPU integrada também a terá).

Os dois pacotes de desenvolvimento de jogos mais usados, Unreal Engine e Unity, ambos têm suporte a ray tracing embutido em suas versões mais recentes, utilizando o pipeline de ray tracing em Di rectX 12. Desenvolvedores de outros sistemas gráficos, como 4A Engine (Metro Exodus), REDengine (Cyberpunk 2077) e Dunia (Far Cry 6) integraram o ray tracing em motores mais antigos, com vários graus de sucesso.

A Epic usou o traçado de raios para destacar as possibilidades de Unreal Engine 5

Pode-se argumentar que o ray tracing não é necessário, pois há muitos jogos com visuais incríveis (por exemplo, Red Dead Redemption 2) que funcionam bem sem ele.

Mas se deixarmos o hardware Deixando as demandas de lado por um momento, usar ray tracing para todas as luzes e sombras é uma tarefa de desenvolvimento mais simples do que ter que usar várias estratégias diferentes para obter imagens semelhantes.

Por exemplo, o uso de ray o rastreamento nega a necessidade de usar SSAO (Screen Space Ambient Occlusion) – o último é relativamente leve t em termos de shaders, mas muito pesado na amostragem e depois na mistura do z-buffer. O rastreamento de raios também envolve muita leitura de dados, mas com um cache local grande o suficiente, há um impacto menor na largura de banda da memória.

O traçado de raios não é apenas para tornar os gráficos cada vez mais realistas. Ele pode adicionar uma maior sensação de imersão a um jogo, quando implementado corretamente. Veja o título de 2019 da Remedy, Control, como um exemplo disso: ele parece e funciona perfeitamente sem ray tracing, mas com ele totalmente ativado, a jogabilidade é transformada.

Movimentar o personagem pelo cenário, viajar através da sombra e da luz, captando o movimento em reflexos painéis de vidro – a tensão e a atmosfera são notavelmente amplificadas quando o traçado de raios é empregado. Capturas de tela simples não fazem justiça.

E há muitos estilos de jogo que se beneficiarão com a melhoria da iluminação global e do sombreamento. Survival horror e títulos de ação e aventura baseados em furtividade são as escolhas óbvias, mas os simuladores de automobilismo também servem, especialmente aqueles que oferecem corridas noturnas ou modos de resistência.

Jogos ainda mais humildes, como Minecraft assume uma nova luz (trocadilho não intencional) quando o ray tracing é usado para determinar a iluminação, transparência, reflexos e sombras de todas as superfícies do mundo do jogo.

As implementações atuais de ray tracing em jogos são relativamente limitadas — normalmente são usadas apenas para sombras e/ou reflexos, mas os poucos que o usam para tudo mostram seu claro potencial.

Então, quanto melhor vai ficar; o que podemos esperar ver nos jogos daqui a 5 ou 10 anos? Vamos começar analisando uma amostra de teste de benchmarking para o Blender.

A contagem de raios e amostras foram significativamente aumentadas em relação às configurações padrão, juntamente com algumas melhorias adicionais, então isso levou mais de 9 minutos para renderizar, usando uma GeForce RTX 2080 Super.

À primeira vista, você pode ser perdoado por pensar que isso não é nada de especial, mas é a sutileza no sombreamento, a transmissão da luz através do vidro, os reflexos das fotos na parede , e a transição suave da gradação de cores pelo piso que mostra o que é capaz com o ray tracing.

É claramente CGI, em vez de parecer “real”, mas é um nível de fidelidade gráfica que os desenvolvedores e pesquisadores estão pressionando.

Mas mesmo as melhores demonstrações de tecnologia de fornecedores de GPU ainda não conseguem igualar isso, pelo menos não em nenhum tipo de taxa de quadros jogável. Abaixo está uma captura de tela da demonstração Attic da Nvidia, que usa uma versão modificada do Unreal Engine 4, com iluminação direta e global com rastreamento de raio.

Não parece tão bom quanto o exemplo do Blender, mas o tempo de renderização para cada frame foi de 48 milissegundos — não 9 minutos!

Mas mesmo com todos os truques de renderização empregados para acelerar as coisas, o ray tracing ainda é praticamente a preservação das placas gráficas de última geração. Os jogadores de PC com modelos intermediários ou de orçamento, no momento, têm uma das duas opções: ativar o rastreamento de raios, mas diminuir todas as outras configurações para que funcione bem (negando o objetivo de usá-lo) ou simplesmente deixar a configuração totalmente desativada.

Então você pode pensar que a ideia de ray tracing estar em todos os lugares, para todos, está a décadas de distância – assim como foi para, digamos, a invenção do mapeamento normal ou tesselação para fazer uma aparição em todas as GPUs.

No entanto, há algo mais que quase certamente será um recurso padrão em gráficos de jogos 3D e ajudará a resolver o problema mencionado anteriormente.

O upscaling se tornará a norma

Quando a Nvidia lançou a arquitetura Turing em 2008, ostentando um novo hardware para acelerar a busca de BVH e cálculos de interseção de raios triangulares, eles também promoveram outro novo recurso da GPU: tensor núcleos. Essas unidades são essencialmente uma coleção de ALUs de ponto flutuante, que multiplicam e adicionam valores em uma matriz.

Na verdade, elas apareceram pela primeira vez um ano antes, no Titan V com motor GV100. placa de vídeo foi voltada exclusivamente para o mercado de estações de trabalho, com seus núcleos tensores sendo usados ​​em cenários de IA e aprendizado de máquina.

Para Turing e a linha de jogos de seus modelos, a Nvidia utilizou o poder do deep aprendendo a desenvolver um sistema de upscaling chamado DLSS. Embora a versão inicial não fosse particularmente boa, a implementação atual gera ótimos resultados, e tanto a AMD quanto a Intel criaram suas próprias versões (FSR e XeSS).

A premissa por trás desse tipo de upscaling é que a GPU renderiza o quadro em uma resolução muito menor do que a exibida no monitor, o que obviamente melhora o desempenho. Mas em vez de apenas aumentar o número de pixels, ao longo de cada eixo, para fazer a imagem final, um algoritmo complexo é executado.

A natureza exata do processo é formulada no mundo da aprendizado profundo, treinando o modelo matemático usando centenas de milhares de imagens de como deve ser um quadro renderizado em escala real.

E não se trata mais apenas de aumentar e modificar um já existente quadro renderizado. Com o lançamento da arquitetura Lovelace (série RTX 40), a Nvidia mostrou que o DLSS em sua terceira iteração será capaz de gerar quadros inteiros.

A interpolação de quadros tem uma reputação um pouco ruim devido ao seu uso extensivo em TVs . Ainda não se sabe como esse novo sistema funcionará na prática, mas demonstra a direção para a qual a tecnologia está indo.

Embora os núcleos do tensor não sejam necessariamente necessários para realizar o upscaling baseado em IA . Estritamente falando, o sistema de upscaling FSR (FidelityFX Super Resolution) da AMD não é baseado em aprendizado profundo. É baseado na reamostragem de Lanczos, com a versão atual aplicando anti-aliasing temporal depois, mas os resultados finais são essencialmente os mesmos: mais desempenho, para uma pequena diminuição na qualidade visual.

E porque FSR não requer unidades de hardware específicas, como núcleos tensores, sua implementação provavelmente se tornará mais difundida que o DLSS — especialmente considerando que os consoles de jogos mais recentes usam CPUs e GPUs da AMD.

Nenhum dos sistemas atualmente em uso é perfeito, no entanto. Os algoritmos lutam com detalhes finos, como fios estreitos ou grades, resultando em artefatos cintilantes ao redor do objeto. E há também o fato de que todos os sistemas de upscaling requerem tempo de processamento de GPU, então quanto mais básica a placa gráfica, menor o aumento no desempenho.

Seja como for, todos os novos as tecnologias de renderização têm problemas quando aparecem pela primeira vez — a tesselação do DirectX 11, por exemplo, quando habilitada nos primeiros jogos para suportá-la, geralmente apresenta falhas ou sérios problemas de desempenho. Agora ele é usado em quase todos os lugares sem um aceno de cabeça ou uma piscadela.

Metro 2033. Ótimo jogo. Não é tão bom com o mosaico ativado em GPUs mais antigas.

Assim, embora cada fornecedor de GPU tenha sua maneira de fazer o upscaling, o próprio fato de que todos eles o suportam (e o FSR é suportado em uma gama muito maior de placas gráficas do que DLSS) mostra que não vai ser uma moda que desaparece. SLI, alguém?

Mas então, machine e deep learning serão usados ​​para mais do que apenas upscaling.

AI para alimentar conteúdo realista

A sensação de realismo em um mundo de jogo certamente vai além dos gráficos. É sobre tudo dentro do jogo se comportar da maneira que o jogador espera, dada sua compreensão da tradição e das regras do jogo. A IA também pode ajudar aqui. Em praticamente todos os jogos single-player, as respostas dos personagens controlados pelo computador são tratadas por uma longa sequência de ‘If…then…else‘ declarações.

Fazer isso parecer realista é um desafio sério – é muito fácil ter inimigos incrivelmente idiotas que não representam nenhuma ameaça, ou aqueles que têm habilidades divinas para detectar você a partir de um único pixel visível.

Os desenvolvedores do extinto Google Stadia utilizaram aprendizado de máquina para treinar como um jogo, sob desenvolvimento na época, deve jogar contra você. Os dados de entrada estavam na forma do jogo jogando contra si mesmo, cujos resultados foram usados ​​para criar um melhor jogador de computador.

Nós realmente queremos que isso tenha melhor reações e sentidos?

Em 2017, OpenAI, uma pesquisa e empresa de implantação especializada em aprendizado de máquina, fez uma coisa semelhante, fazendo um computador jogar contra si mesmo em milhares de rodadas de Dota 2, antes de lançá-lo contra alguns dos melhores jogadores (humanos) do mundo.

Isso pode parecer que tornaria todos os jogos muito difíceis – afinal, os computadores podem processar dados milhões de vezes mais rápido do que nós. Mas diferentes níveis de desafio podem ser gerados a partir do número de operações neurais realizadas durante o treinamento.

Assim, os desenvolvedores podem criar, digamos, 10 níveis de “bot AI” com base em 10 sessões de treinamento diferentes realizado: quanto mais curto o treinamento, mais burra a IA.

Além do escopo da IA ​​para melhorar a forma como os jogos são reproduzidos e se sentem, há o próprio desenvolvimento de jogos a ser considerado. O processo de criação de todos os recursos de um jogo (modelos, texturas, etc.) é muito demorado e, à medida que os mundos se tornam mais complexos e detalhados, também aumenta o tempo necessário para concluir este trabalho.

Atualmente, o desenvolvimento de um título AAA exige que centenas de pessoas dediquem longas horas ao longo de muitos anos. É por isso que os desenvolvedores de jogos estão procurando maneiras de reduzir essa carga de trabalho e as empresas de GPU estão na vanguarda dessa pesquisa.

Melina Juergens foi totalmente capturada por seu papel em Hellblade: Senua’s Sacrifice

Por exemplo, modelar uma animação facial para combinar com a fala pode ser muito demorado e caro.

Empresas com dinheiro para queimar usarão captura de movimento, tendo os dubladores lêem as falas, enquanto equipes de desenvolvimento menores terão que usar software especializado ou mapear a animação manualmente.

A Nvidia e a Remedy Entertainment desenvolveram um método, usando aprendizado de máquina, que pode produzir o movimento necessário dos polígonos com base inteiramente na fala que está sendo reproduzida. Isso não apenas acelera uma parte do processo de criação de conteúdo, mas também oferece uma solução para empresas que desejam expandir sua base de jogadores.

A localização de fala às vezes não funciona, simplesmente porque as animações faciais foram geradas para apenas um idioma – mude para outro e a sensação de imersão é perdida. Com a técnica acima, esse problema é resolvido.

Pesquisas sobre campos de radiação neural também se mostram promissoras para desenvolvedores de jogos. O software Instant NeRF da Nvidia pode gerar uma cena 3D, com base em nada mais do que algumas fotos e detalhes de como elas foram tiradas.

NeRFs também podem ser usados ​​para ajudar a gerar imagens realistas. procurando peles, lã e outros materiais macios, de forma rápida e simples. Tudo isso pode ser feito em uma única GPU, embora o tempo de treinamento necessário impeça que ela seja usada atualmente durante o jogo.

No entanto, autoaprendizagem para inimigos mais inteligentes ou animação facial baseada em fala não é algo que pode ser feito em tempo real, nem em uma única GPU. O poder de processamento necessário para moer a rede neural está atualmente em um nível de supercomputador e leva meses de treinamento.

Mas há 10 anos, a ideia de ter ray tracing em um jogo era impensável.

Mudanças nas futuras GPUs/hardware 3D

Começamos este olhar para o futuro dos gráficos 3D com um ponto sobre o hardware . Cinquenta anos atrás, os pesquisadores eram extremamente limitados em como poderiam testar suas teorias e modelos porque a tecnologia na época simplesmente não era capaz o suficiente.

Esse trabalho também era reservado aos professores universitários , onde seu trabalho ficou muito no mundo acadêmico.

Embora isso ainda aconteça, o desenvolvimento gráfico está agora firmemente nas mãos de desenvolvedores de jogos e designers de GPU. Veja o SSAO, por exemplo — isso foi criado por um dos programadores da Crytek, procurando uma maneira de melhorar as sombras no Crysis.

Hoje, AMD, Intel e Nvidia trabalham lado a lado com universidades e empresas de jogos em todo o mundo, encontrando novas maneiras de melhorar o desempenho e a qualidade de tudo relacionado a gráficos. Em vez de levar décadas para que um novo algoritmo seja usado em jogos, agora são apenas alguns anos e, em alguns casos, alguns meses.

Mas e o hardware para suportá-lo ? Isso continuará a melhorar, no ritmo que tem nos últimos 30 anos, ou estamos nos aproximando de um declínio no crescimento?

Cada nova geração de GPU oferece mais potência para seu tamanho e poder

No momento, não há sinal de um platô. O mais recente GPU da Nvidia, o AD102, é um grande salto em relação ao seu antecessor (GA102 da Ampere), em termos de contagem de transistores, taxa de transferência FP32 e conjunto geral de recursos.

Os chips que alimentam o Xbox Series X e PlayStation 5 têm GPUs AMD equivalentes às encontradas nas placas gráficas de médio porte de hoje e o desenvolvimento de jogos para consoles geralmente é o ponto de partida para a pesquisa de novas técnicas de melhoria de desempenho. Até mesmo os designers de chips para implantação de telefones estão se concentrando em aumentar os recursos de suas pequenas GPUs.


Mas isso não significa que as próximas gerações de GPUs serão mais do mesmo, embora com mais shaders e cache. Dez anos atrás, as principais GPUs compreendiam ~3,5 bilhões de transistores e agora estamos olhando para 76 bilhões de comutadores de tamanho nano, com 25 vezes mais poder de cálculo do FP32.

Esse grande aumento na contagem de transistor apenas para mais processamento? A resposta simples énão. As GPUs modernas estão dedicando cada vez mais espaço de matriz a unidades especializadas em rastreamento de raios e aplicativos de IA. Estas são as duas áreas que vão dominar a forma como os gráficos 3D continuam a evoluir: uma para tornar tudo mais real, a outra para torná-lo realmente jogável.

O futuro será impressionante. Realmente impressionante.

Continue lendo. Deve ser lido no TechSpot

    Traçado de caminho vs . Ray Tracing, Explicado

      Nokia: A História do Outrora Lendário Fabricante de Telefones

    Computação Sustentável: Reduzir, Reutilizar, Reciclar

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo