Skip to content

Basic engine created for academic reasons for the UPC's Talent School Master Degree in Advanced Programming for AAA Video Games.

License

Notifications You must be signed in to change notification settings

Jordi-Gil/RebelEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rebel Engine

Basic engine created for academic reasons for the UPC's Talent School Master Degree in Advanced Programming for AAA Video Games.

Features

  • 3D Scene view with Unity-like controls
  • Loading 3D models into the scene by dragging and dropping files
    • For now, one 3D model at a time
  • Console log
  • Configuration window
  • Inspector window

Additional features

  • Rendering the scene into framebuffers to, lately, show it inside a ImGui window.

Authors

How to use

Loading a 3D Model and textures

There are a simple File Explorer inside the application where you can drag some 3DModel recognized by Assimp and drop in the Hierarchy window to load it into the scene. [1]. [2].

Also, you need to use this File Explorer in order to change the Diffuse/Specular or Normal texture of any mesh.

The first load of a 3D Model file, like FBX, is done by parsing the Assimp aiNode structure and converted in our custom file format. The materials are extracted in the same way as meshes.

Hierarchy

Window with the scene tree. In this window the parent of any GameObject can be change. Also, it can be used to select GameObjects to show their components information in the Inspector window or transform via Guizmos in the Scene Window.

Scene

Window that allows the user to view the rendered scene. With Guizmos the user can manipulate all the GameObjects that are present in the scene.

Frustum Culling

In order to implement the frustum culling we implemented an Octree. The frustum culling can be deactivated or activated by a bar menu.

Menu Items

  • File
    • Open (inactive)
    • Exit
  • Windows
    • Scene
    • Inspector
    • Configuration
    • Terminal
  • Help
    • Documentation
    • Download latest release
    • Report bug
    • About

Inspector

This window displays all information of components of a GameObject and able you to edit some attributes of they.

  • Transform
  • MeshRenderer
    • Textures
  • Lights
    • Light type
    • Intensity
    • Etc.

Serialize

In order to loaded scenes, materials, 3D Models, etc. We use JSONCpp to serialize all the 3D Models loaded into the engine in a custom format file JSON style.

Terminal

This window shows us all the logs generated by the application. We can copy all the log shown in the clipboard, as well as delete all the log buffer. You can filter through a text input, but also the LOG's have a type assigned that you can filter through them. [3].

Configuration

Application

In this window we can visualize two histograms about the evolution of the frame rate of the application. We can also activate or deactivate VSYNC.

Window

In this window we can modify the size of the window, as well as activate or deactivate the full screen mode.

Render

In this window we can activate or deactivate some OpenGL options. [4]. Also modify the clear color.

Hardware information

In this window we can see information related to the CPU and GPU.[5].

Libraries used

License

GNU General Public License

Github

https://github.com/Jordi-Gil/RebelEngine/

Aditional coments to corrector

If an error about "fonts" occurs, don't panic. Click on 'retry' and works prefectlly. Tested in four PC and in one of them this error occurs, but the application don't crash.

  1. At the moment, only models in .FBX format have been tested.
  2. Allows to load textures in any of the formats supported by DevIL.
  3. At the moment there are no commands available.
  4. Some options, such as stencil test, do not affect the current pipeline.
  5. The information about the graph memory is not necessarily accurate.

About

Basic engine created for academic reasons for the UPC's Talent School Master Degree in Advanced Programming for AAA Video Games.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published