40 puntos por GN⁺ 2025-12-29 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2025-12-29
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

    • Recuerdo que una vez un estudiante dijo que quería hacer un juego 3D y el profesor no supo muy bien qué responder. Entonces le aconsejé: “ve a la biblioteca y presta el libro de Foley & Van Dam”. Ahora ya existen varias ediciones revisadas — Computer Graphics (Goodreads)
  • 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

    • Recomiendo WebGL o, mejor aún, WebGPU. Es mucho más fácil de aprender y los conceptos que aprendes se aplican también a otras APIs — WebGPU Fundamentals, WebGL2 Fundamentals
    • Yo siento algo parecido. Inspirado por Zbrush y Maya, quise hacer arte con shaders, pero para replicar aunque sea una parte de software tan enorme parece que habría que dedicarse a esto todos los días. El rendimiento de Zbrush es verdaderamente asombroso
    • Vulkan no es para principiantes. Incluso sabiendo lo básico, sigue siendo demasiado verboso. Modern OpenGL es más que suficiente, y si de verdad necesitas usar Vulkan, conviene apoyarte en una librería de más alto nivel como SDL3
    • En mi opinión, los gráficos modernos son demasiado complejos. No hay que confundir programación de GPU con gráficos por computadora. Para un principiante, es mucho mejor implementar por cuenta propia un rasterizador o un ray tracer basado en CPU que ponerse con Vulkan
      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
    • En realidad, Vulkan no es una API gráfica sino una API de GPU de bajo nivel. Los gráficos son solo una de las cosas que la GPU puede hacer. Cuando entiendes eso, el diseño de Vulkan tiene mucho más sentido
  • 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 IAenlace al feedback en HN

    • Aun así, sigue siendo una lástima que todavía queden en la portada imágenes llenas de errores tipográficos. Para un sitio educativo no se ve bien
  • 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

    • Es un enfoque excelente. Yo también lo he enseñado así durante mucho tiempo. La mayoría de la gente piensa que los gráficos 3D equivalen a rasterización, pero yo siento que tuve suerte de haber empezado más bien con ray tracing
    • Si quieres verlo desde otra perspectiva, también recomiendo Computer Graphics from Scratch. Es gratis y el nombre es parecido, así que puede prestarse a confusión
    • Otro buen recurso es Tiny Renderer
    • En la colección de proyectos “build-your-own-x” también hay una guía relacionada — enlace de GitHub
    • También hay un video que explica los gráficos 3D con una sola fórmula — YouTube: One Formula That Demystifies 3D Graphics
  • 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

    • Pero me pregunto si existe algún LLM con una ventana de contexto lo bastante grande como para procesar un PDF de 1000 páginas
  • 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