- 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
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
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
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
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 IA — link do feedback no HN
Uma das minhas metas deste ano é criar do zero um renderizador 3D em software. Sem engine de jogo, sem GPU, tudo implementado na unha
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
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