Skip to content

SolarisEngine_v1.0.1

Latest
Compare
Choose a tag to compare
@Linjiajie2002 Linjiajie2002 released this 27 Dec 18:30

SolarisEngine

Solaris Engine es un motor de videojuegos desarrollado para la asignatura “Motors De Videojocs” en la Universidad UPC-CITM: Diseño y Desarrollo de Videojuegos, realizado durante el 3.º año por: Martí Sabaté Miranda(@msabate00), Jiajie Lin(@Linjiajie2002), Aleix Botella Llobet(@Aleix3).

Nuestro Motor

Solaris Engine es un motor 3D desarrollado con SDL2, OpenGL, glew, DevIL, GLM, Assimp e ImGui, programado en C y C++17.

Implementaciones

Nuevas

  • Gestión de padres e hijos (transform, propiedades...).
  • Gestión del panel de jerarquía(mover objetos, asignar padres e hijos...).
  • Implementación del componente "camera".
  • Selección de objetos en la escena mediante el ratón.
  • "Frustum Culling" de la cámara (dejar de dibujar objetos que no se ven).
  • Las mallas se guardan en nuestro propio formato.
  • Todos los recursos usan recuento de referencias.
  • El usuario puede navegar por la ventana de "assets" así como mover, añadir, cargar, duplicar o borrar archivos.

Antiguas

  • Carga de FBXs (arrastrar y soltar).
  • Carga de texturas (PNG, JPG, JPEG, DDS).
  • Gestión de GameObjects.
  • Tres componentes básicos para los GameObjects:
    • Transform: Permite ver y modificar la posición, rotación y escala.
    • Mesh: Permite dibujar la malla en la escena y muestra información de esta (normales, Bounding Box).
    • Material: Permite aplicar la textura al objeto, mostrar información de esta y cargar la textura de cuadros para comprobar las UVs.
  • Cámara del editor (renderizado y movimiento).
  • Ventanas del editor:
    • Menú Principal: Barra superior que permite ver estadísticas, editar preferencias, obtener más información sobre el motor, cargar primitivas, etc.
    • Jerarquía: Muestra y permite seleccionar los objetos de la escena, así como eliminarlos y duplicarlos.
    • Inspector: Muestra y permite modificar los componentes del objeto seleccionado.
    • Consola: Muestra el proceso de carga de la geometría y de la inicialización de las bibliotecas, así como los logs escritos por el usuario.
    • Proyecto: Muestra los archivos del proyecto dentro de la carpeta de "Assets".

Controles:

  • Cámara:
    • LMB: Seleccionar objetos.
    • RMB: Rotar cámara.
    • RMB + W: Avanzar cámara.
    • RMB + S: Retroceder cámara.
    • RMB + D: Mover la cámara hacia la derecha.
    • RMB + A: Mover la cámara hacia la izquierda.
    • LSHIFT: Duplica la velocidad de movimiento de la cámara.
    • MMB Scroll: Zoom in / Zoom out.
    • MMB: Desplazamiento de la cámara.
    • ALT + LMB: Orbitar el objeto seleccionado.
    • F: Centra la cámara en el objeto seleccionado.