8000 GitHub - Kyhaiu/mrx-scene: A graphics engine initially made for the final paper at Computer Graphics course at UNIOESTE. Made from scratch using C++ without using any engine to draw objects
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

A graphics engine initially made for the final paper at Computer Graphics course at UNIOESTE. Made from scratch using C++ without using any engine to draw objects

Notifications You must be signed in to change notification settings

Kyhaiu/mrx-scene

Repository files navigation

MRX Engine

A graphics engine initially made for the final paper at Computer Graphics course at UNIOESTE. Made from scratch using C++ without using any engine to draw objects

Dependencies

The code dependencies are:

The code is built using xmake and the dependencies are installed automatically through. The only exception is the ImGui library, which is included as a submodule. xrepo.

TL;DR

To run it.

On Linux:

xmake && xmake run

On Windows:

xmake; xmake run

In case of errors during the installation of the dependencies:

Sometimes the dependencies are not installed correctly, due to a lot of reasons. When this happens, you can try to install manually the dependencies.

Showcase

Initial scene


Hierarchy

This is where the entities are listed and created.

Inspector

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

Viewport

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

Features

Pipelines

  • Left-handed coordinate system (Adair)
  • Right-handed coordinate system (Smith)

Objects

You can add the following objects to the scene:

  • Sphere (IcoSphere)
  • Cube
  • Pyramid (tetrahedron)
  • Torus
  • Cone
  • Cylinder
  • Point light
  • Directional light

Shading

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

  • Flat shading
  • Gouraud shading
  • Phong shading

OBS: The shading model is chosen globally.

Enhancements

  • Apply paralelism on the rasterization
  • Fix some bugs marked as TODO in the project code
  • 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

A graphics engine initially made for the final paper at Computer Graphics course at UNIOESTE. Made from scratch using C++ without using any engine to draw objects

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0