Skip to content

VisPsyche is an open-source, cross-platform 3D engine in C++ using OpenGL. Ideal for learning graphics programming, it focuses on advanced lighting, rendering, and features an ImGui GUI. It's a practical tool for understanding 3D graphics and rendering intricacies.

License

Notifications You must be signed in to change notification settings

altpsyche/vis-psyche

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

111 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VizPsyche

VizPsyche is an open-source 3D graphics engine written in C++20 using OpenGL 4.6. Designed for learning graphics programming, it provides clean abstractions over OpenGL primitives and includes an ImGui-based interface for real-time parameter editing.

Demo Video


Table of Contents


Documentation

The full documentation for VizPsyche is available as a submodule in docs/vis-psyche-docs. To clone it separately:

git clone --recursive git@github.com:DiggingNebula8/vis-psyche-docs.git

Features

  • Modern C++ & OpenGL 4.6 rendering pipeline
  • Abstraction classes: VertexBuffer, IndexBuffer, VertexArray, Shader, Texture, Renderer
  • glTF 2.0 Model Loading
  • Texture Support
  • Unified shader format (vertex and fragment shaders in a single file)
  • ImGui integration for runtime parameter adjustment
  • spdlog-based logging with separate core and client loggers
  • Engine/Application architecture for creating custom applications

Prerequisites

Windows

  1. Visual Studio 2019, 2022, or 2026 with the "Desktop development with C++" workload installed.

  2. CMake 3.16 or later. Either use the version bundled with Visual Studio, or download from https://cmake.org/download/.

  3. Git for cloning the repository with submodules.


Building

Option 1: Build Script (Recommended)

Open a terminal in the repository root and run:

.\build.bat debug
.\build.bat release
.\build.bat clean debug
.\build.bat clean release

The script automatically detects your installed Visual Studio version.

Option 2: Manual CMake

mkdir build
cd build
cmake -G "Visual Studio 17 2022" -A x64 ..
cmake --build . --config Debug

Replace "Visual Studio 17 2022" with your installed version:

  • Visual Studio 2019: "Visual Studio 16 2019"
  • Visual Studio 2022: "Visual Studio 17 2022"
  • Visual Studio 2026: "Visual Studio 18 2026"

Option 3: Open in Visual Studio

After running CMake, open the generated solution:

cmake --open build

Or directly open build\VizPsyche.sln.


Running

After a successful build, the output is located in:

build\bin\Debug\Sandbox.exe
build\bin\Debug\VizEngine.dll
build\bin\Debug\src\resources\

Run the application:

.\build\bin\Debug\Sandbox.exe

For release builds, replace Debug with Release.


Dependencies

All dependencies are included as git submodules in VizEngine/vendor/.

Library Purpose
GLFW 3.3+ Window creation and input handling
GLAD OpenGL 4.6 function loader
GLM Mathematics library (vectors, matrices, transformations)
Dear ImGui Immediate mode graphical user interface
spdlog Fast C++ logging library
stb_image Single-header image loading
tinygltf glTF 2.0 Model Loading

To update submodules manually:

git submodule update --init --recursive

Troubleshooting

"Could not find any instance of Visual Studio"

CMake cannot locate Visual Studio. Verify that:

  • Visual Studio is installed with the "Desktop development with C++" workload
  • You are using a supported version (2019, 2022, or 2026)

Submodule directories are empty

Run:

git submodule update --init --recursive

Missing DLL error when running Sandbox.exe

Ensure you are running from the correct directory (build\bin\Debug\ or build\bin\Release\). The build places VizEngine.dll alongside Sandbox.exe.

OpenGL errors or black screen

  • Update your GPU drivers
  • Verify your GPU supports OpenGL 4.6
  • Check the console output for shader compilation errors

Linker errors (unresolved external symbols)

  • Clean the build directory and rebuild: .\build.bat clean debug
  • Verify all source files are listed in VizEngine/CMakeLists.txt

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

VisPsyche is an open-source, cross-platform 3D engine in C++ using OpenGL. Ideal for learning graphics programming, it focuses on advanced lighting, rendering, and features an ImGui GUI. It's a practical tool for understanding 3D graphics and rendering intricacies.

Resources

License

Stars

Watchers

Forks

Packages

No packages published