3 pontos por GN⁺ 2023-11-24 | 1 comentários | Compartilhar no WhatsApp

Introdução às ferramentas, bibliotecas e efeitos da AMD

  • O site GPUOpen da AMD é o melhor lugar para aprender sobre ferramentas, bibliotecas e efeitos relacionados a GPU.
  • Ele oferece materiais e guias projetados para serem facilmente compreendidos até mesmo por engenheiros de software iniciantes.
  • Ajuda os usuários a aproveitar as tecnologias da AMD para alcançar gráficos e desempenho otimizados.

Opinião do GN⁺

  • O ponto mais importante deste texto é que o GPUOpen da AMD oferece recursos úteis para desenvolvedores de gráficos.
  • Como há muitos materiais que até desenvolvedores iniciantes podem acessar e utilizar com facilidade, isso será interessante para quem tem interesse em programação gráfica.

1 comentários

 
GN⁺ 2023-11-24
Comentários do Hacker News
  • Quando um engenheiro de software iniciante entra na área de computação gráfica, é importante pensar primeiro no que quer criar, em vez de se preocupar antes de tudo com quais ferramentas usar. É preciso dar o primeiro passo com foco no resultado final. Muitas ferramentas abstraem várias etapas da programação gráfica, então existe o risco de gastar tempo demais com código de baixo nível logo no começo. Além disso, em certos setores da indústria, ferramentas como Unity, TouchDesigner, three.js e After Effects são usadas com frequência, e C++ quase não é utilizado. Ter uma compreensão profunda é importante, mas aprender isso ao entrar de fato na indústria pode ser mais eficiente.
  • O que um programador gráfico precisa saber vai além de programação e APIs. Isso inclui rotação, matrizes de visualização e projeção, matemática vetorial, programação de shaders, formas primitivas procedurais, composição de imagens, renderização forward e deferred, técnicas de amostragem, sombras e iluminação, formas de extrair dados de apps 3D, uso de profilers e depuradores, leitura de artigos da Siggraph, técnicas de particionamento espacial e hierarquias de volume, construção de um ray tracer simples, compreensão de formas básicas, experiência com partículas e simulação, entre outros.
  • Recomenda-se o curso 'Graphics From Scratch', da Pikuma. Ele começa com a escrita de uma função set_pixel usando SDL, e todo o cálculo de matrizes, transformação de vértices e rasterização de triângulos é implementado manualmente em código. Nele, aprende-se o processo de calcular a cor de cada pixel.
  • Além de começar com DX/VK/OGL, há várias formas de se tornar um programador gráfico. Nem é necessário usar C++. Por exemplo, 3Blue1Brown cria gráficos 3D impressionantes com Python. Se você quer escrever um motor de jogos, aprenda DirectX ou Vulkan; se quer criar uma aplicação para navegador, aprenda WebGL. Essas APIs são pesadas e talvez não ensinem tanto sobre gráficos em si. Se quiser aprender os conceitos de computação gráfica, escreva seu próprio rasterizador e ray tracer em qualquer linguagem. Há muitas bibliotecas gráficas e ambientes de programação acessíveis e divertidos para iniciantes, como Processing, PlotDevice.io, NodeBox, DrawBot e ShaderToy.
  • Dá para aprender programação gráfica escrevendo shaders no Shadertoy. Muitos programadores gráficos começaram por lá. Foram criados mais de 10 tutoriais sobre SDF, ray marching, funções de ruído e outros tópicos.
  • São compartilhados materiais que a indústria de programação gráfica realmente usa. A área de gráficos ficou grande demais para existir um único método de aprendizado que sirva para todo mundo. Se você quer aprender gráficos, o ideal é encontrar um mentor.
  • Existem centenas de especializações em computação gráfica, e esse site foca apenas em uma pequena parte: SDKs de programação gráfica.
  • A pessoa é desenvolvedora de jogos, mas não programadora gráfica. Usa APIs gráficas modernas e shaders GLSL, mas quando uma criança de 13 anos quer sair de Scratch ou Python para C++, faz com que ela escreva código simples usando uma DLL do OpenGL 1.2 que tem desde 1999. Isso é muito mais divertido do que a configuração complexa das APIs modernas. A criança se interessa por geometria computacional, como diagramas de Voronoi, então a API gráfica é apenas um meio. O desempenho de C++ com OpenGL antigo é muito superior ao de Scratch. Aprender C++ e OpenGL ao mesmo tempo usando uma API simples é um desafio bastante ambicioso. A simplicidade torna o aprendizado administrável, e isso está funcionando bem. Também ajuda a criar uma demo legal de marching squares e a adicionar um menu IMgui para ajustar parâmetros em tempo de execução.
  • A pessoa compartilha sua jornada pessoal. Há dois anos, criou seu primeiro motor 3D seguindo vários tutoriais e vídeos no YouTube. É bem simples, mas ela gosta de coisas simples. Atualmente está trabalhando em um jogo de construção de cidades usando esse motor. Aprender a manipular objetos com matrizes e produto vetorial tem sido muito divertido.
  • É fornecido um exemplo simples de código gráfico escrito na linguagem de programação BASIC.