Skip to content

Bloom Engine. A graphics engine initially made for the Computer Graphics course made with C++/OpenGL. (XMake 🚀)

Notifications You must be signed in to change notification settings

Daniel-Boll/bloomCG-xmake

Repository files navigation

Bloom Engine

A graphics engine initially made for the Computer Graphics course at UNIOESTE.

Dependencies

The code dependencies are:

The code is built using xmake and the dependencies are installed automatically through xrepo.

TL;DR

To run it.

xmake && xmake run

Showcase

Initial scene


Hierarchy

This is where the entities are listed and created.


When you right click on the hierarchy it opens this pane where you can create entities and control the scene


Creating entities opens a modal in the center of the screen with the inputs for that specific entity

Inspector

When you click in a element from the hierarchy it will display into the inspector it's information


Here are some of the inspectors for different objects

Cube Sphere Point Light Ambient Light
image image image image
This cube is the floor entity in the hierarchy, you can see in the transform section that he is indeed scaled in X and Z to a large amount to give the impression of a huge floor This is the main sphere of the scene, located at (0, 0, 0), shaded through phong, it's material given the red color and the amount of sectors and stacks needed to render it that way This is one of the point lights of the scene you can control it's intensity and the coeficients of the attenuation formula This is the ambient light, which you cannot create a new one as it works as a global source of light that affects every object in all directions, because of that it doesn't has a position
Viewport

The viewport is the main area of render, this is were OpenGL draw frames

In this scene the red, green, yellow and blue objects are all spheres with different values for stacks and sectors, shading model, radius, position, etc. There are also two cubes, one bellow white as the floor, and the other purple rotated and scaled.

Gizmos

You can control elements through the gizmos changing their position. You can also notice the scene orientation through the mapped cube in the top right.

Controllers

You can also control whether to show or not the movement gizmo, scale the scene, clear the elements all through this controller section in the top of the engine.

Features

Objects

You can add the following objects to the scene:

  • Sphere
  • Cube
  • Point light
  • Directional light

Shading

⚠️ The current version of the Bloom engine only supports local shading. Amongst the shading models available, you can choose between:

  • Flat shading
  • Gouraud shading
  • Phong shading
  • Blinn-Phong shading

OBS: The shading model is chosen per object.

Enhancements

  • Scale window with the buttons +1 and -1.
  • Base refactor
  • Global shadows
  • Ray casting from the camera
    • Select objects with the mouse
  • Ray tracing support?

About

Bloom Engine. A graphics engine initially made for the Computer Graphics course made with C++/OpenGL. (XMake 🚀)

Topics

Resources

Stars

Watchers

Forks