Carlos Correa
← Proyectos

VenRadnombre provisional

Mi motor gráfico, escrito desde cero en C++ y OpenGL: un renderer, un sistema de entidades y mundos que se cargan por zonas.

Estado:
fase temprana
Hecho con:
C++, OpenGL, GLSL
Código:
privado, lo enseño en una llamada

La idea

Quiero entender cómo funciona un motor por dentro, y la mejor forma que conozco es construir uno. Cada pieza la escribo yo: desde cómo llega un triángulo a la pantalla hasta cómo se organiza todo lo que se mueve en un mundo.

A largo plazo, este motor es la base para un mundo de fantasía por zonas que se simule solo. Eso es la visión, no lo que existe hoy.

Las piezas

RendererLuces, materiales, skybox y miles de objetos instanciados en pantalla.Ver cómo funciona → Generador de cuevasSalas que crecen solas, se conectan entre sí y acaban siendo paredes en 3D.Ver cómo funciona →
Mundo por zonasCada zona se genera una vez y no se rehace al volver.en desarrollo
Sistema de entidadesLo que organiza todo lo que vive y se mueve.en desarrollo

Dónde estoy

Hecho

  • Luces direccionales, puntuales y focos
  • Instancing estático y dinámico
  • Carga de modelos 3D
  • Paredes de cueva suavizadas
  • Un jugador controlable sobre el sistema de entidades

Ahora

  • Mejorar las luces
  • Sombras
  • Normal maps

Siguiente

  • Suelo y techo de la cueva siguiendo las paredes
  • Frustum culling
  • Cielo procedural
  • Guardar y cargar partida