Skip to content

tigrazone/gkNextRenderer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gkNextRenderer

English | 简体中文

windows ci linux ci macOS ci android ci

这是一个什么项目?

一句话简介

一个基于Vulkan的实时路径跟踪渲染器,目标是实现 质量效率 能用于 实时 的路径跟踪渲染。

技术特点

不同于目前游戏中实装的各种光追辅助技术,本项目的目标是最接近GroundTruth的路径跟踪, 并提供最接近游戏的运行时环境,验证实时光追的可行性,并实验最新的GPU特性,为下一代渲染架构作准备。

开发前提

本项目的初衷是:学习,验证,进步。因此,会激进的使用最新技术,有意的规避陈旧技术,利用新c++规范和标准库,全时跨平台开发。

图库 (TrueHDR)

githubShow.mp4

10 seconds Showcase Video

Alt text

RayTracing Renderer - QX50

Alt text

RayTracing Renderer - City

Alt text

RayTracing Renderer - Still

Alt text

RayTracing Renderer - PlayGround

Alt text

RayTracing Renderer - LuxBall

Alt text

RayTracing Renderer - Kitchen

Alt text

RayTracing Renderer - Living Room

Alt text

Hybrid Renderer (Android) - QX50

Alt text

Hybrid Renderer (Android) - Complex Cubes

技术特性

  • Rendering

    • Importance Sampling
    • VNDF Sampling for GGX, by tigrazone
    • Adaptive Sampling, thanks tigrazone
    • Ground Truth Path Tracing
    • Phsyical Light Unit
    • Temporal Reproject
    • High Performance Bilateral Filter Denoiser
    • OpenImageDenoise Denoiser
    • RayQuery on Android
    • Visibiliy Buffer Rendering
    • Legacy Rendering
    • RayTraced Hybrid Rendering
    • Realtime Renderer Switch
    • GPU Draw
    • GPU Raycast
  • Scene Management

    • Wavefront OBJ File PBR Scene Support
    • Full GLTF Scene File Support
  • System

    • CrossPlatform support for Windows/Linux/MacOS/Android
    • EditorApp including node based MaterialEditor
    • Global Bindless TexturePool
    • MultiThread Resource Loading
    • HDR Display Support
    • Benchmark System
    • Screenshot HDR and encode to avif / jpg

构建方式

首先,需要安装 Vulkan SDK。各个平台根据lunarG的指引,完成安装。其他的依赖都基于 Microsoft's vcpkg 构建,执行后续的脚本即可完成编译。

项目的Github Action包含windows,linux,android的自动ci脚本,作者会维护其正确性。如有任何环境问题可参阅解决。

本地开发环境部署完成后,各平台可按一下脚本构建

Windows (Visual Studio 2022)

vcpkg_windows.bat
build_windows.bat

Windows (MinGW)

init the MSYS2 MINGW64 shell with following packages,the MSYS2's cmake is not competible with vcpkg, so use cmake inside.

pacman -S --needed git base-devel mingw-w64-x86_64-toolchain ninja

cmake's module FindVulkan has a little bug on MingGW, try modified FindVulkan.cmake as below set(_Vulkan_library_name vulkan) -> set(_Vulkan_library_name vulkan-1) then, execute scripts bellow

vcpkg_mingw.sh
build_mings.sh

Android On Windows

JAVA SDK should be JAVA17 or higher Install Android Studio or Android SDK Tool, with NDK 25.1.8937393 installed

set ANDROID_NDK_HOME=\path\to\ndk
#like: set ANDROID_NDK_HOME=C:\Android\Sdk\ndk\25.1.8937393
vcpkg_android.bat
build_android.bat
deploy_android.bat

Linux

各平台需要提前安装对应的依赖,vcpkg才可以正确运行。

例如,ubuntu

sudo apt-get install ninja-dev curl unzip tar libxi-dev libxinerama-dev libxcursor-dev xorg-dev
./vcpkg_linux.sh
./build_linux.sh

SteamDeck Archlinux

sudo steamos-readonly disable
sudo pacman -S devel-base ninja
./vcpkg_linux.sh
./build_linux.sh

MacOS

brew install molten-vk
brew install glslang
brew install ninja
./vcpkg_macos.sh
./build_macos.sh

Next Todolist

  • Pure GPU AuxRenderer, display gpu helpers
  • WireFrame Rendering
  • Realtime Renderer Switch
  • GPU Frustum / Occulusion Culling
  • GPU Lod Swtiching
  • Dynamic Scene Management
  • Multi Material Execution
  • Huge Landscape

参考项目

随感

项目的发展,学习心得,一些随感,记录于 Thoughts.md,随时更新。

About

A Modern gkRenderer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 80.9%
  • C 9.3%
  • GLSL 4.4%
  • CMake 4.0%
  • Batchfile 0.8%
  • Shell 0.5%
  • Other 0.1%