- Plataforma educativa en línea para aprender gratis desde los fundamentos hasta temas avanzados de gráficos por computadora
- Cubre de forma estructurada diversos temas como renderizado 3D, fundamentos matemáticos, imagen digital, generación procedural y tooling
- La estructura de los cursos está centrada en la práctica y diseñada para experimentar primero resultados directos antes que la teoría
- Sigue evolucionando con un curso de Vulkan API (nuevo), un blog de programación 3D (próximamente) y un libro (próxima publicación)
- Recurso gratuito de aprendizaje para que desarrolladores y diseñadores comprendan a fondo los principios y las técnicas de implementación de los gráficos por computadora
- Scratchapixel es un sitio web para aprender gratis gráficos por computadora en su conjunto bajo el eslogan “Learn computer graphics from scratch and for free”
Cursos disponibles actualmente
-
Fundamentos del renderizado 3D (The Foundations of 3D Rendering)
- Curso introductorio de renderizado organizado en un orden amigable para principiantes
- Adopta un enfoque que prioriza implementar resultados visibles directamente antes que la teoría
- Los principales temas del curso son los siguientes
- Introducción a Ray-Tracing, renderizado de escenas 3D, Rasterization, matriz de proyección, shading e iluminación, texturizado, estructuras de aceleración, renderizado de volúmenes, etc.
- Cada lección aborda, junto con ejemplos de implementación reales, temas como cálculo de coordenadas de píxeles, modelo de cámara estenopeica, conceptos de BRDF y shaders, entre otros
-
Matemáticas para gráficos por computadora (Mathematics for Computer Graphics)
- Explica la teoría matemática y las herramientas necesarias para implementar gráficos
- Esta sección no es de introducción, sino que está compuesta como material de referencia para consultar conceptos mencionados en otros cursos
- Los temas principales incluyen geometría, inversión de matrices (método de Gauss-Jordan), interpolación, función LookAt, matemática para shading, métodos de Monte Carlo, transformada de Fourier, etc.
-
Computer Graphics Gems
- Colección de temas individuales de gráficos interesantes que no pertenecen a una categoría específica
- Actualmente solo incluye una lección sobre radiación de cuerpo negro
-
Geometry
- Trata sobre cómo definir formas en gráficos por computadora
- Explica métodos de representación de formas usando curvas y superficies de Bézier
-
Digital Imaging
- Trata sobre procesamiento de archivos de imagen y gestión del color
- Los temas principales incluyen luz y espacios de color, transformación de archivos de imagen digital a pantalla y manipulación básica de imágenes
-
Procedural Generation of Virtual Worlds
- Trata sobre la simulación procedural de fenómenos naturales
- Incluye temas como Value Noise, Perlin Noise y simulación del color del cielo
-
Tooling
- Trata sobre desarrollo de herramientas 3D y tecnologías de interacción
- Incluye contenidos como gestión de ventanas (Windowing), formato de archivo OBJ y control de navegación de cámara
Noticias recientes
- El blog que abrirá pronto abordará no solo programación 3D, sino también temas relacionados como IA y educación
- Se añadirá un nuevo curso sobre Vulkan API
- También está prevista la publicación de un libro titulado "Learn Computer Graphics Programming from Scratch"
1 comentarios
Opiniones de Hacker News
Este sitio web ha mejorado muchísimo. Es tan bueno que hasta dan ganas de dejarle una donación a Santa
Creo que hacen falta más materiales educativos abiertos en el campo de los gráficos por computadora. Las técnicas antiguas están enterradas en libros viejos, y las nuevas quedan ocultas detrás de los muros de las empresas. Un buen ejemplo es un libro como 3D Graphics Programming Games and Beyond de Sergei Savchenko.
Las APIs gráficas de hoy en día son innecesariamente complejas, así que me parece mejor punto de partida olvidarse por un momento de la GPU e implementar por cuenta propia un rasterizador por software o un ray tracer.
Eso sí, es una pena que este sitio no tenga otra forma de contacto aparte de Discord. También estaría bien que la página de donaciones fuera accesible directamente desde la página principal
Esto sí que es un tesoro
Mi apodo viene del motor 3D Reactor que hice hace tiempo. Quake 3 cambió mi vida cuando estaba en la preparatoria. Si Doom fue lo que me introdujo a las computadoras, Quake 3 fue lo que me hizo enamorarme del 3D.
No sabía mucho de matemáticas, pero aprendí copiando código, y ahora llevo una carrera donde se mezclan la web y los gráficos. Gracias a que WebGL y WebGPU se volvieron comunes, incluso me ha tocado enseñarles a doctores en el trabajo sobre vertex packing y cómo enviar structs a la GPU.
También llegué a trabajar con un desarrollador de XNA Silverlight, así que soy algo así como un primo lejano de MonoGame. Ahora lo que domina son enfoques nuevos como Vulkan/DX12/Metal
Este sitio está increíble. Definitivamente tengo que revisarlo
En la maestría implementé mi propio ray tracer, y el libro que usé como referencia en ese momento fue An Introduction to Ray Tracing de Andrew S. Glassner. Ahora se puede descargar gratis — enlace
Tengo una colección de recursos gratuitos sobre programación gráfica que armé hace tiempo. Ya no la actualizo mucho, pero quizá le sirva a alguien — enlace al gist
Durante casi toda mi carrera, los gráficos fueron un punto ciego para mí. Terminé yéndome más hacia datos y sistemas distribuidos, pero en realidad empecé a programar porque quería hacer juegos
Hace tiempo hice una simulación de órbitas planetarias con OpenGL y también un juego de disparos raro en Flash. Pero cada vez que intento aprender Vulkan, me abruma la cantidad de código y termino dejándolo. Supongo que es porque no entiendo bien los conceptos fundamentales. Algún día, cuando tenga más tiempo, me gustaría retomarlo en serio
Como recursos de ejemplo, recomiendo Tiny Renderer y Ray Tracing in One Weekend.
Pasar por ese proceso te permite entender a fondo por qué la GPU está diseñada de esa manera. Después recomendaría expandirse a OpenGL 4.6 o D3D11, y a sitios como ShaderToy y ShaderAcademy
El rendering basado en CPU sigue siendo importante porque los renderizadores de cine usan CPU por cuestiones de precisión. Por cierto, WARP y LLVMpipe son rasterizadores por software que también se usan en producción real
Disfruto mucho el contenido de este sitio web. También agradezco que el año pasado hayan tomado en cuenta los comentarios sobre las miniaturas generadas por IA — enlace al feedback en HN
Una de mis metas para este año es hacer mi propio renderizador 3D por software desde cero. Sin motor de juego, sin GPU, implementado de forma totalmente pura
Hoy en día puedes meterle a un LLM un enlace a un sitio web o un PDF y convertirlo en material de aprendizaje interactivo. Hoy mismo convertí así un PDF de 1000 páginas y lo usé para estudiar motores de juego. Me gusta porque evita que se quede solo como marcador
Ojalá llegue el día en que termine el monopolio de NVIDIA sobre las APIs gráficas, el dominio de Google sobre la web y la debilidad de las alternativas de AMD