Giter Site home page Giter Site logo

flwmxd / luxgi Goto Github PK

View Code? Open in Web Editor NEW
230.0 7.0 20.0 251.72 MB

Hybrid GI solution, based on DDGI ( include Ray-Tracing and SDF-Tracing )

GLSL 0.32% CMake 0.29% C++ 63.04% C 29.76% HTML 5.35% Shell 0.03% Batchfile 0.01% Objective-C 0.07% Makefile 0.01% JavaScript 0.36% CSS 0.07% HLSL 0.03% TeX 0.66% Objective-C++ 0.01% ShaderLab 0.01%
ddgi global-illumination vulkan sdfgi raytracing sdfddgi realtime-raytracing realtime-renderer game-engine hybrid-renderer

luxgi's Introduction

💡 Lux-GI

Hybrid GI solution, based on DDGI ( include Ray-Tracing and SDF-Tracing )

The project is a Hybrid GI solution, partly inspired by Lumen and DDGI. The main core idea is to provide a complete GI solution (including Indirect-Light, Infinite-Bounce, Emissive-Lighting, Glossy-Reflection, Shadow, AO) that can run on both Raytracing-supported and non-raytracing hardware. Due to the shortage of time, there are still some performance issues in this project, but as a throwaway, I believe it can provide some new ideas to most of the people who are interested in GI.

Overview

Left is SDF-On, Right is Raytracing-On

Overview

Showcase

Document

English-Version

中文版

Main Features

  • Hybrid rendering and Global Illumination
    • using Raytracing and SDF-Tracing to make DDGI in realtime
    • Surface Cache for SDF Material representation
    • Deferred-Shading
    • SDF/Ray tracing reflection
    • SDF/Ray tracing soft shadow
    • SVGF denoiser
    • Standard PBR with GGX and roughness/metalness
  • ECS IoC Container
    • Data Driven ECS architecture
    • Auto Injection ECS System(based on entt)
  • RHI Interface
    • Vulkan 1.3
    • SPIR-V reflection

Compile

  • Windows
      1. Click gen_build_win.bat
      1. Choose Game as main project
      1. Building with RelWithDebInfo
  • Linux
    • Not support now
  • Mac
    • Not support now

Controls in the Game app

  • WSAD, QE - movement
  • Mouse + Right Button - rotate the camera
  • Shift - move faster

Acknowledgments

This project is made with lots of awesome open-source code, they are

  • RTXGI, the fully raytracing DDGI implementation.

  • cereal, A C++11 library for serialization.

  • entt, high performance ECS library

  • glad, an vulkan/opengl function loader

  • glfw, open source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development

  • imgui, is a bloat-free graphical user interface library for C++

  • libacc, About Acceleration structure library (BVH-, KD-Tree) with basic parallel construction

  • hybrid-rendering, provide raytracing and denoise.

  • spriv-cross, SPIRV-Cross is a tool designed for parsing and converting SPIR-V to other shader languages.

  • tracer, c++ crash tracer.

  • glm, OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software.

  • spdlog, Very fast, header-only/compiled, C++ logging library

  • stb, single-file public domain (or MIT licensed) libraries for C/C++

  • flax-engine, open source game engine. provide the idea how to generate and trace sdf.

Also Paper Reference

Star History

Star History Chart

luxgi's People

Contributors

flwmxd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

luxgi's Issues

vkCreateDevice失败

VulkanDevice.cpp文件中第358行
cpp VK_CHECK_RESULT(vkCreateDevice(*physicalDevice, &deviceCreateInfo, VK_NULL_HANDLE, &device)); /*if (result != VK_SUCCESS) { LOGC("[VULKAN] vkCreateDevice() failed!"); return false; }*/

报错 ERROR_EXTENSION_NOT_PRESENT,请问是硬件或者版本问题吗

Cmake error

CMake Error at Maple/lib/tracer/src/CMakeLists.txt:89 (set_target_properties):
set_target_properties called with incorrect number of arguments.

vkCreateDevice失败

VulkanDevice.cpp文件中第358行
cpp VK_CHECK_RESULT(vkCreateDevice(*physicalDevice, &deviceCreateInfo, VK_NULL_HANDLE, &device));
报错 ERROR_EXTENSION_NOT_PRESENT,请问是硬件或者版本问题吗

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.