Archived
1
Fork 0
3D game engine focusing on real-time graphics
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
redstrate ee2771f45f Add compute pipeline support for Vulkan
* Image transition layouts are not handled correctly yet, so auto exposure does not work
* Image usage and guessed image layout is redone to remove some errors
2021-05-11 19:16:54 -04:00
.github/workflows Add SDL2 dev lib to Linux CI 2021-05-09 20:06:32 -04:00
addon Add initial files 2020-08-11 12:07:21 -04:00
cmake Remove unused Lua CMake find module 2021-05-11 16:41:34 -04:00
data Add empty material 2021-02-04 09:01:21 -05:00
engine Add compute pipeline support for Vulkan 2021-05-11 19:16:54 -04:00
example Specifying -1 in your window positions will make SDL center the window 2021-04-20 12:57:59 -04:00
extern Completely redo the CMake shader compilation system 2021-05-09 19:10:23 -04:00
misc Update PCSS and Sponza screenshots 2020-08-19 22:33:35 -04:00
platforms SDL backend now provides an accurate delta time 2021-05-11 17:38:09 -04:00
tools Fix macOS build 2021-05-10 07:58:22 -04:00
.gitignore Update .gitignore to ignore KDevelop files 2021-02-15 15:05:13 -05:00
CMakeLists.txt Add find_package for SDL2 on Linux (oops) 2021-05-09 20:11:12 -04:00
LICENSE Add initial files 2020-08-11 12:07:21 -04:00
README.md Fix typo in README 2021-02-08 20:25:29 -05:00

Prism

A cross-platform engine that integrates a real-time physically based renderer and makes it easy to get started writing games or other graphical applications in C++!

Here are a couple of screenshots that provide a sense of the graphical capabilities of Prism:

pcss sponza

buddha custom models

These are screenshots taken on macOS, using the Metal API. Work is still in progress to bring the Vulkan backend up to the same feature set.

The sibenik, sponza and buddha models shown are from the McGuire Computer Graphics Archive, any other models shown are created by me.

Development

Prism is still a heavy work in progress, and stuff is expected to break. I don't work full time on Prism, so updates are expected to be erratic.

Submitting bug reports and showing stuff you made in Prism is always appreciated! However, if you're submitting a feature request, please look at the Wiki, Issues and Projects first to see my current development plans.

If you're building content for Prism, there is a Blender addon in addon/ that integrates a content pipeline for easy exporting without leaving Blender!

Features

Using C++, you can easily build graphically powered applications that is expected to work consistently regardless of the platform used. There is a PBR renderer included in the repository, but anything can built on top of the GFX api and other platform abstractions.

If you're building a game, there is Input, UI and a basic Audio system available to use. There is also a lot of tools in tools/ that allow you to curate content using the built-in Prism systems such as scenes, cutscenes and materials.

If you're building a tool, ImGui is available to use and uses the docking branch. See tools/ in the repository for examples, most of them is actually built on top of Prism.

You can view a more comprehensive list of features here.

Usage

Requirements

  • CMake
  • C++ compiler that fully supports C++17
    • (2019) MSVC, Clang, and GCC have been tested

There are instructions for Windows, Linux, macOS, tvOS and iOS/iPadOS targets in the wiki. There is an example app provided in example/. If you want to build the tooling or the example, use the CMake options BUILD_EXAMPLE and BUILD_TOOLS respectively.