Repolode
ssloy

ssloy/tinyrenderer

Curso paso a paso para aprender renderizado 3D creando un renderizador por software en unas 500 líneas de C++ puro, sin bibliotecas de terceros.

Estrellas
24,450
Forks
2,311
Issues abiertos
4
Último commit
hace 3 meses

¿Qué es?

Tinyrenderer es una serie de tutoriales que explica cómo funcionan internamente las API de gráficos 3D, como OpenGL, Vulkan, Metal y DirectX. En lugar de llamar a una API de GPU, crea desde cero un renderizador simplificado por software y aborda el trazado de líneas, la rasterización de triángulos, las coordenadas baricéntricas, el z-buffer, el manejo de la cámara, el sombreado, el mapeado de texturas y normales, el mapeado de sombras y la oclusión ambiental.

El código es intencionalmente pequeño: unas 500 líneas de C++ sin dependencias gráficas externas. Su único componente auxiliar es una clase para leer y escribir archivos de imagen TGA. El proyecto es un recurso didáctico: las notas del curso, que constituyen el contenido principal, recorren cada etapa en orden, y el código fuente está pensado para estudiarse, no para reutilizarse como biblioteca.

El programa recibe un modelo 3D triangulado con texturas y genera una imagen renderizada, sin interfaz gráfica. Se compila con CMake.

Funciones clave

  • 01Crea desde cero un renderizador por software en unas 500 líneas de C++.
  • 02Aborda paso a paso la rasterización, el z-buffer, la configuración de la cámara y el sombreado.
  • 03Incluye temas como el mapeado de texturas y normales, el mapeado de sombras y la oclusión ambiental.
  • 04No utiliza bibliotecas gráficas de terceros; solo incluye un pequeño lector y escritor de imágenes TGA.
  • 05Está organizado como una serie numerada de artículos del curso.

Casos de uso

  • Aprender cómo funcionan internamente los pipelines de OpenGL o Vulkan.
  • Impartir un curso o taller de gráficos sobre los fundamentos de la rasterización.
  • Entender las coordenadas baricéntricas, los z-buffers y el mapeado de normales antes de usar API de GPU.

Inicio rápido

  1. 1

    Clona el repositorio

    git clone https://github.com/ssloy/tinyrenderer.git
  2. 2

    Entra en el directorio del proyecto

    cd tinyrenderer
  3. 3

    Configura y compila con CMake

    cmake -Bbuild && cmake --build build -j
  4. 4

    Ejecuta el renderizador con los modelos de ejemplo; la salida se guarda en framebuffer.tga

    build/tinyrenderer obj/diablo3_pose/diablo3_pose.obj obj/floor.obj

Antes de usarlo

  • El código es un ejercicio didáctico y el README indica que no debe usarse directamente.
  • Es un renderizador por software y no muestra cómo crear aplicaciones para GPU.
  • La licencia no está especificada claramente (NOASSERTION).

Temas

Preguntas frecuentes

¿Qué es tinyrenderer?
Curso paso a paso para aprender renderizado 3D creando un renderizador por software en unas 500 líneas de C++ puro, sin bibliotecas de terceros. Tinyrenderer es una serie de tutoriales que explica cómo funcionan internamente las API de gráficos 3D, como OpenGL, Vulkan, Metal y DirectX. En lugar de llamar a una API de GPU, crea desde cero un renderizador simplificado por software y aborda el trazado de líneas, la rasterización de triángulos, las coordenadas baricéntricas, el z-buffer, el manejo de la cámara, el sombreado, el mapeado de texturas y normales, el mapeado de sombras y la oclusión ambiental.
¿tinyrenderer es gratuito? ¿Qué licencia tiene?
tinyrenderer es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿tinyrenderer sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de tinyrenderer fue el 29 jul 2026.
¿Para qué puedo usar tinyrenderer?
Aprender cómo funcionan internamente los pipelines de OpenGL o Vulkan. Impartir un curso o taller de gráficos sobre los fundamentos de la rasterización. Entender las coordenadas baricéntricas, los z-buffers y el mapeado de normales antes de usar API de GPU.
¿Cómo se instala tinyrenderer?
Clona el repositorio: git clone https://github.com/ssloy/tinyrenderer.git Entra en el directorio del proyecto: cd tinyrenderer Configura y compila con CMake: cmake -Bbuild && cmake --build build -j Ejecuta el renderizador con los modelos de ejemplo; la salida se guarda en framebuffer.tga: build/tinyrenderer obj/diablo3_pose/diablo3_pose.obj obj/floor.obj
¿Dónde consigo tinyrenderer?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/ssloy/tinyrenderer

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados