@GraphicalPlayground/gp-engine
🌎 Leer en: English | Español | Français | 简体中文
Tabla de contenido
Descripción
┕ Primeros Pasos
┕ Prerrequisitos
┕ Compilar el Motor
┕ Galería
Arquitectura
┕ Sistemas Principales
┕ Abstracciones Progresivas
┕ Pipelines de Renderizado (OpenGL / Vulkan / DirectX / ...)
Uso y Experimentación
┕ Proyectos de Ejemplo
┕ Programación de Shaders
Documentación
┕ Referencia de API
┕ Rutas de Aprendizaje
Contribuir
┕ Código de Conducta
┕ Seguridad
┕ Licencia
┕ Donaciones
Contacto
gp-engine es un motor de gráficos en C++ específicamente diseñado para el aprendizaje, la experimentación y la enseñanza de arquitecturas de renderizado modernas.
Construido alrededor de una Pedagogía Deconstructivista, el motor tiende un puente entre las herramientas creativas de alto nivel y la programación de hardware de bajo nivel. En lugar de ocultar la complejidad detrás de un sistema de caja negra, gp-engine proporciona abstracciones progresivas sobre las APIs de renderizado modernas (OpenGL y Vulkan). Permite a los usuarios desmontar, estudiar, modificar y reimplementar limpiamente los conceptos gráficos fundamentales, desde algoritmos de renderizado básicos hasta arquitecturas avanzadas de GPU, sin necesidad de dominar millones de líneas de código heredado.
Bienvenido al ecosistema Graphical Playground. Para comenzar a experimentar con gp-engine, necesitarás clonar el repositorio y configurar el entorno de compilación. El motor está construido con una cadena de herramientas moderna C++23 y se basa en una arquitectura modular de grado de producción.
Primero, clona el repositorio junto con sus submódulos:
git clone --recursive https://github.com/GraphicalPlayground/gp-engine.git
cd gp-engineDado que gp-engine aprovecha las APIs gráficas modernas y las últimas características de C++, asegúrate de que tu entorno de desarrollo cumpla con los siguientes requisitos:
- Compilador: Un compilador compatible con C++23 (GCC 13+, Clang 16+, o MSVC 19.38+)
- Sistema de Compilación: CMake (Versión 3.20 o superior)
- Controladores Gráficos: Controladores GPU actualizados con soporte para:
- Vulkan
tba - OpenGL
tba - DirectX
tba(solo Windows) - Metal
tba(solo macOS)
- Vulkan
El motor utiliza CMake Presets para simplificar la configuración y compilación en diferentes plataformas y entornos. Recomendamos realizar una compilación fuera del árbol de fuentes, que los presets manejan automáticamente para mantener limpio el directorio de tu proyecto.
Prerrequisitos importantes para Linux: Nuestros presets de Linux requieren específicamente el compilador Clang (clang y clang++) así como ccache (caché del compilador) instalados en tu sistema antes de compilar.
1. Listar los presets disponibles:
Primero, comprueba los presets de configuración disponibles para tu plataforma específica (Linux, Windows o macOS):
cmake --list-presetsEjemplo de salida:
Available configure presets:
"linux-release"
"linux-debug"
"linux-profile"
"linux-development"
(Nota: Verás prefijos
windows-...omacos-...según tu sistema operativo).
Para información detallada sobre lo que implica cada configuración, consulta la documentación sobre Tipos de Compilación.
2. Configurar el proyecto:
Selecciona el preset adecuado para tu entorno y genera los archivos de compilación. Por ejemplo, para configurar una compilación de desarrollo en Linux:
cmake --preset linux-developmentNota: Puedes añadir flags como
-DGP_USE_VULKAN=ONo-DGP_USE_OPENGL=ONa tu comando de preset según el backend de renderizado que desees usar. Lee la documentación para más detalles sobre la configuración de backends de renderizado.
3. Compilar el proyecto:
Compila el motor usando el preset de compilación correspondiente. También puedes añadir el flag -j para utilizar múltiples núcleos de CPU y acelerar el proceso:
cmake --build --preset linux-development -j$(nproc)Una vez que la compilación se complete con éxito, los binarios compilados y los proyectos de ejemplo estarán ubicados en el directorio binaries/bin/. Puedes ejecutar uno de los ejecutables de ejemplo básicos para verificar que el pipeline de renderizado y el contexto de ventana se hayan inicializado correctamente.
en progreso...
en progreso...
en progreso...
en progreso...
en progreso...
en progreso...
en progreso...
en progreso...
La documentación completa de gp-engine está alojada en nuestro portal de documentación principal. Ya sea que estés dibujando tu primer triángulo o escribiendo un renderizado Vulkan personalizado, nuestras guías están diseñadas para apoyar tu experimentación.
Nuestra detallada documentación de la API de C++ describe las clases principales, los pipelines de renderizado y las bibliotecas matemáticas que componen gp-engine. Si estás extendiendo el motor o modificando sus componentes principales, revisa nuestras guías de C++ y las normas de formato para garantizar que tu código se alinee con la arquitectura del proyecto.
Graphical Playground está construido alrededor de una Pedagogía Deconstructivista: queremos que desmontes el motor y aprendas cómo funciona. Para orientar tus estudios, hemos elaborado rutas de aprendizaje estructuradas que te llevan desde los conceptos fundamentales de la programación gráfica hasta la arquitectura avanzada de motores.
¡Damos la bienvenida a las contribuciones de todos! Ya sea que estés corrigiendo un error, implementando nuevas funcionalidades o mejorando nuestra documentación, tu ayuda es apreciada. Consulta nuestra guía completa CONTRIBUTING.md para información detallada sobre nuestros estándares y el proceso de revisión de pull requests.
Para garantizar un entorno acogedor, colaborativo e inclusivo para todos los que aprenden y construyen dentro del ecosistema Graphical Playground, se espera que todos los colaboradores y participantes cumplan con nuestro Código de Conducta. Por favor, revísalo antes de participar en discusiones comunitarias o enviar código.
Si descubres una vulnerabilidad de seguridad en gp-engine, por favor no la reportes abriendo un issue público. En su lugar, consulta nuestra Política de Seguridad para obtener instrucciones sobre cómo divulgar la vulnerabilidad de forma segura a los mantenedores.
gp-engine es software de código abierto. Consulta el archivo LICENSE.md en el directorio raíz para conocer los términos completos sobre modificación, distribución y uso en tus propios proyectos.
Si encuentras gp-engine útil para tu aprendizaje, investigación académica o desarrollo de videojuegos, considera apoyar el proyecto. ¡Mantener un motor de gráficos moderno en C++ requiere tiempo y recursos significativos!
Puedes patrocinar el proyecto Graphical Playground a través de los siguientes enlaces:
Puedes ver la lista completa de patrocinadores y colaboradores en nuestra Página de Patrocinadores o en DONORS.md. Tu apoyo nos ayuda a continuar desarrollando recursos educativos de alta calidad y mantener el motor para la próxima generación de ingenieros gráficos.
Si tienes preguntas, sugerencias o quieres compartir tus proyectos construidos con gp-engine, ¡nos encantaría saber de ti! Puedes contactarnos a través de los siguientes canales:
- GitHub Discussions: Únete a la Conversación
- Email:
- Support: mailto:support@graphical-playground.com
- Contact: mailto:contact@graphical-playground.com
- Security: mailto:security@graphical-playground.com
- Marketing: mailto:marketing@graphical-playground.com
- Legal: mailto:legal@graphical-playground.com
- Sponsor: mailto:sponsor@graphical-playground.com
- Press: mailto:press@graphical-playground.com
- Billing: mailto:billing@graphical-playground.com
- Partnerships: mailto:partnerships@graphical-playground.com
- Feedback: mailto:feedback@graphical-playground.com
- Accessibility: mailto:accessibility@graphical-playground.com
- Abuse: mailto:abuse@graphical-playground.com
- Careers: mailto:careers@graphical-playground.com
- Privacy: mailto:privacy@graphical-playground.com
- Redes Sociales:
© 2026 Graphical Playground. Construido para la próxima generación de ingenieros gráficos.