Git Product home page Git Product logo

prisma-engine's Introduction

Prisma Engine

DamagedHelmet

Prisma Engine is an OpenGL-based rendering engine designed for creating dynamic 3D applications. It is a personal project created to showcase the capabilities of modern OpenGL. The engine is constantly evolving, so there could be significant changes from one version to another.

Features

  • OpenGL 4.6 Support
  • Clustered rendering pipelines
  • Directional and Omni Lights
  • Bullet Physics Integration
  • Indirect Drawing
  • Omni and Directional lights Shadows
  • glTF Loader
  • Physically Based Rendering (PBR)
  • Image Based Lighting (IBL)
  • Scene Graph
  • Editor:
    • Transform Modifier
    • Physics Modifier
    • Show Scene Graph
    • Change Render Pipeline (Forward clustered/Deferred clustered)

Getting Started

To start using Prisma Engine in your projects, follow these steps:

  1. Clone the repository:
git clone --recursive https://github.com/deni2312/prisma-engine.git
  1. Install dependencies with vcpkg:
cd prisma-engine
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg integrate install
cd ..
.\vcpkg\vcpkg install
  1. Open the project with visual studio

  2. Click on main.cpp and run the default scene

  3. (Optionally) In configuration\settings.json file you can change some settings like width, height and camera options.

Demos

Sponza

An example of a Sponza scene that utilizes 1000 point lights through clustered shading, with some post-processing, and includes animations taken from Mixamo. (Click on the image for the youtube video)

https://www.youtube.com/watch?v=T0_1JGvYyl0

Sponza

Physics

An example of a scene with bullet physics, point shadows and the dynamic loading of a sponza scene (Click on the image for the youtube video)

Sponza

Cascaded Shadow Mapping

An example of NVIDIA Orca scene that has Cascaded Shadow Maps, animations and 1000 lights rendered in realtime. (Click on the image for the youtube video)

https://www.youtube.com/watch?v=PT4RTldmVqc

Sponza

Default scene

The scene models showcased can be found on the official repository for KhronosGroup's glTF Sample Models:

https://github.com/KhronosGroup/glTF-Sample-Models

Contributing to Prisma Engine

We welcome contributions to Prisma Engine! Whether it's bug fixes, new features, or documentation improvements, your contributions help make Prisma better for everyone.

Bug Reports

If you encounter a bug, please submit an issue with detailed information about how to reproduce it.

Next updates

  • Code refactoring
  • Cache physic states
  • Transparency
  • Frustum culling(compute shader)
  • Run/Debug buttons

LICENSE

All the software is under MIT (see the LICENSE file) and the icons are from Icons8

The NVIDIA Orca scene has a CC BY-NC-SA 4.0 ( https://creativecommons.org/licenses/by-nc-sa/4.0/ )

Feature Requests

If you have a feature request, open an issue and describe the feature you would like to see.

Thank you for contributing to Prisma Engine!

Bibliography/Sitography

prisma-engine's People

Contributors

denis-beqiraj avatar deni2312 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.