40 pontos por GN⁺ 2025-12-29 | 1 comentários | Compartilhar no WhatsApp
  • Plataforma educacional online para aprender gratuitamente desde os fundamentos até tópicos avançados de computação gráfica
  • Aborda de forma estruturada diversos temas, como renderização 3D, fundamentos matemáticos, imagem digital, geração procedural e ferramentas
  • Estrutura de aulas voltada para a prática, projetada para que você experimente resultados diretos antes da teoria
  • Em constante evolução, com curso de Vulkan API (novo), blog sobre programação 3D (em breve) e livro (a ser publicado)
  • Recurso gratuito de aprendizado para desenvolvedores e designers que desejam compreender profundamente os princípios e as técnicas de implementação da computação gráfica

  • Scratchapixel é um site para aprender computação gráfica gratuitamente em sua totalidade, sob o slogan “Learn computer graphics from scratch and for free”

Cursos atualmente disponíveis

  • Fundamentos da renderização 3D (The Foundations of 3D Rendering)

    • Curso introdutório de renderização organizado em uma sequência amigável para iniciantes
      • Adota uma abordagem que prioriza a implementação de resultados concretos antes da teoria
    • Os principais temas das aulas são os seguintes
      • Introdução ao Ray-Tracing, renderização de cenas 3D, Rasterization, matriz de projeção, shading e iluminação, texturização, estruturas de aceleração, renderização volumétrica e mais
    • Cada aula aborda, com exemplos reais de implementação, cálculo de coordenadas de pixel, modelo de câmera pinhole, conceitos de BRDF e shaders etc.
  • Matemática para Computação Gráfica (Mathematics for Computer Graphics)

    • Explica a teoria matemática e as ferramentas necessárias para implementar gráficos computacionais
      • Esta seção não é introdutória, mas sim composta como material de referência para consultar conceitos mencionados em outras aulas
    • Os principais temas incluem geometria, inversão de matrizes (método de Gauss-Jordan), interpolação, função LookAt, matemática para shading, métodos de Monte Carlo, transformada de Fourier e mais
  • Computer Graphics Gems

    • Coletânea de tópicos individuais interessantes de computação gráfica que não se encaixam em uma categoria específica
      • Atualmente inclui apenas a aula sobre radiação de corpo negro
  • Geometry

    • Trata de como definir formas na computação gráfica
      • Explica métodos de representação de formas usando curvas e superfícies de Bézier
  • Digital Imaging

    • Trata de processamento de arquivos de imagem e gerenciamento de cores
    • Os principais temas incluem luz e espaços de cor, conversão de arquivos digitais para exibição em tela, manipulação básica de imagens etc.
  • Procedural Generation of Virtual Worlds

    • Trata da simulação procedural de fenômenos naturais
    • Inclui temas como Value Noise, Perlin Noise e simulação da cor do céu
  • Tooling

    • Trata de desenvolvimento de ferramentas 3D e técnicas de interação
    • Inclui conteúdos como gerenciamento de janelas (Windowing), formato de arquivo OBJ e controle de navegação da câmera

Notícias recentes

  • O blog que será lançado em breve abordará não apenas programação 3D, mas também temas relacionados como IA e educação
  • Uma nova aula sobre a Vulkan API será adicionada em breve
  • Também está previsto o lançamento de um livro intitulado "Learn Computer Graphics Programming from Scratch"

1 comentários

 
GN⁺ 2025-12-29
Comentários no Hacker News
  • Este site evoluiu muito mesmo. É tão bom que até o Papai Noel deveria deixar uma doação
    Acho que a área de computação gráfica precisa de mais materiais educacionais abertos. As técnicas antigas ficam enterradas em livros velhos, e as novas ficam escondidas atrás dos muros das empresas. Um bom exemplo é o livro 3D Graphics Programming Games and Beyond, de Sergei Savchenko.
    Hoje em dia, as APIs gráficas estão desnecessariamente complexas, então talvez seja melhor esquecer a GPU por enquanto e começar implementando um rasterizador em software ou um ray tracer por conta própria.
    Dito isso, é uma pena que não exista uma forma de contato além do Discord. Também seria bom se a página de doação estivesse acessível diretamente pela página principal

    • Lembro que, quando um aluno disse que queria fazer um jogo 3D, o professor ficou sem saber muito o que responder. Então eu sugeri: “pegue o livro do Foley & Van Dam na biblioteca”. Hoje já existem várias edições — Computer Graphics (Goodreads)
  • Isso aqui é realmente um tesouro
    Meu apelido vem do motor 3D Reactor que eu fiz no passado. Quake 3 mudou a minha vida no ensino médio. Se Doom me fez entrar no mundo dos computadores, Quake 3 me fez me apaixonar por 3D.
    Eu não entendia muito de matemática, mas fui aprendendo copiando código, e hoje sigo uma carreira misturando web e gráficos. Como WebGL e WebGPU ficaram populares, já cheguei até a ensinar doutores no trabalho sobre vertex packing e como enviar structs para a GPU.
    Também já trabalhei com um desenvolvedor de XNA Silverlight, então sou tipo um primo distante do MonoGame. Agora o novo padrão são abordagens como Vulkan/DX12/Metal

  • Este site é muito legal. Vou dar uma olhada com certeza
    Na época do mestrado, implementei meu próprio ray tracer, e o livro que usei como referência foi An Introduction to Ray Tracing, de Andrew S. Glassner. Hoje dá para baixar de graça — link

  • Tenho uma antiga coleção de materiais gratuitos sobre programação gráfica. Não atualizo muito hoje em dia, mas ainda pode ajudar — link do gist

  • Durante boa parte da minha carreira, gráficos foram um ponto cego. Acabei indo para dados e sistemas distribuídos, mas na verdade comecei a programar porque queria fazer jogos
    Antigamente eu fazia simulações de órbita planetária em OpenGL e até uns jogos de tiro estranhos em Flash. Mas sempre que tento aprender Vulkan, desisto por causa da quantidade de código. Acho que é porque não entendo bem os conceitos fundamentais. Quando eu tiver mais tempo, gostaria de estudar isso seriamente de novo

    • Recomendo WebGL ou, melhor ainda, WebGPU. É muito mais fácil de aprender, e os conceitos que você aprende servem para outras APIs também — WebGPU Fundamentals, WebGL2 Fundamentals
    • Tenho uma sensação parecida. Inspirado por Zbrush e Maya, tentei criar arte com shaders, mas para replicar nem que seja parte de softwares gigantes assim, parece que você teria que viver nessa área todos os dias. O desempenho do Zbrush é realmente impressionante
    • Vulkan não é para iniciantes. Mesmo sabendo o básico, ele é verboso demais. Modern OpenGL já é suficiente, e se você realmente precisar usar Vulkan, é melhor recorrer a uma biblioteca de nível mais alto como SDL3
    • Na minha opinião, os gráficos modernos estão complexos demais. Não dá para confundir programação de GPU com computação gráfica. Para iniciantes, é muito melhor implementar um rasterizador ou ray tracer baseado em CPU do que começar por Vulkan
      Como material de exemplo, recomendo Tiny Renderer e Ray Tracing in One Weekend.
      Passar por esse processo ajuda a entender profundamente por que a GPU foi projetada desse jeito. Depois disso, eu recomendaria expandir para OpenGL 4.6 ou D3D11, e para sites como ShaderToy e ShaderAcademy.
      A renderização baseada em CPU ainda é importante porque renderizadores de cinema usam CPU por causa da precisão. Aliás, WARP e LLVMpipe são rasterizadores em software usados até em produção real
    • Vulkan na verdade não é uma API gráfica, e sim uma API de GPU de baixo nível. Gráficos são só uma das coisas que a GPU pode fazer. Quando você entende isso, o design do Vulkan passa a fazer sentido
  • Estou gostando muito do conteúdo deste site. Também agradeço por terem levado em conta no ano passado o feedback sobre as miniaturas geradas por IAlink do feedback no HN

    • Ainda assim, é uma pena que continuem havendo imagens cheias de erros de ortografia na página principal. Para um site educacional, isso não fica bem
  • Uma das minhas metas deste ano é criar do zero um renderizador 3D em software. Sem engine de jogo, sem GPU, tudo implementado na unha

    • Excelente abordagem. Eu ensino assim há muito tempo. A maioria das pessoas acha que gráficos 3D são sinônimo de rasterização, mas eu me considero sortudo por ter começado com ray tracing
    • Se quiser ver uma perspectiva diferente, também recomendo Computer Graphics from Scratch. É gratuito, e o nome parecido pode causar confusão
    • Outro bom material é Tiny Renderer
    • Há também um guia relacionado na coletânea de projetos “build-your-own-x” — link do GitHub
    • Existe também um vídeo que explica gráficos 3D com uma única fórmula — YouTube: One Formula That Demystifies 3D Graphics
  • Hoje em dia, dá para colocar links de sites ou PDFs em um LLM e transformá-los em material de estudo interativo. Eu mesmo converti hoje um PDF de 1000 páginas dessa forma para estudar engines de jogo. É bom não deixar isso só como favorito

    • Mas fico me perguntando se já existe algum LLM com janela de contexto grande o bastante para processar um PDF de 1000 páginas
  • Espero que algum dia acabem o monopólio da NVIDIA nas APIs gráficas, o domínio do Google sobre a web e a falta de alternativas fortes da AMD