GithubHelp home page GithubHelp logo

alipbcs / zetaray Goto Github PK

View Code? Open in Web Editor NEW
186.0 5.0 2.0 42.1 MB

Real-time Direct3D 12 path tracer

License: MIT License

CMake 1.97% C++ 70.75% C 0.43% HLSL 26.85%
gpu graphics rendering restir cplusplus directx hlsl dxr path-tracing ray-tracing

zetaray's Introduction

ZetaRay

MIT

A hobby real-time Direct3D 12 ray tracer. Mainly developed for learning and experimenting with the latest research in real-time rendering.

To achieve real-time frame rates, this renderer utilizes recent developments such as hardware-accelerated ray tracing (DXR), advanced sampling (ReSTIR), denoising, and smart upscaling (AMD FSR2).

Sponza

Subway Station based on the NYC R46 subway, rendered by ZetaRay. (Scene by Alex Murias.)

Highlight Features

  • ReSTIR DI for many-light sampling from emissive meshes and sky [4]. Sampling efficiency is increased by
    • Power sampling using the alias method
    • A world-space voxel grid with stochastic light reservoirs per each voxel [5]
  • Multi-bounce indirect lighting using ReSTIR GI [1]
  • Ray differentials for texture MIP selection with camera rays, ray cones for secondary rays
  • Physically-based BSDF with roughness, metallic mask, normal, and emissive maps
  • Single scattering sky and atmosphere [2, 3]
  • Reference path tracer
  • Render graph for automatic resource barrier placement and multi-threaded GPU command list recording and submission (more details below)
  • AMD FSR2 upscaling
  • Temporal anti-aliasing (TAA)
  • Auto exposure using luminance histogram
  • glTF scene loading with the metalness-roughness workflow. Following extensions are also supported:
    • KHR_materials_emissive_strength
    • KHR_materials_ior
    • KHR_materials_transmission

Render Graph

Modern APIs such as Vulkan and Direct3D 12 require resource barriers to be placed manually by the programmer. These barriers control synchronization, memory visibility, and additionally for textures, resource layout. As program complexity grows, manual placement can lead to issues such as:

  • Becoming highly error-prone and limiting extensibility and prototyping.
  • GPU command buffers can be recorded in multiple threads; correct usage and prevention of data-race issues may be hard to achieve.

Furthermore, using multiple command buffers requires a correct submission order—e.g., command list A writes to a resource that is read by command list B, so A has to be submitted before B.

A render graph can help with all of the above; by analyzing resource dependencies, a directed acyclic graph (DAG) is formed from which submission order is derived and barriers are automatically placed. A visualization is shown below.

Render graph

A sample frame render graph.

Requirements

  1. GPU with hardware-accelerated ray tracing support (Nvidia RTX 2000 series or later, AMD RX 6000 series or later). Tested on RTX 3070 desktop and RTX 3060 laptop.
  2. Windows 10 1909 or later (required by Agility SDK).
  3. Visual Studio 2019 or later.
  4. CMake 3.21 or later.

Build

Standard CMake build. Make a build directory somewhere you like, then call CMake from inside that directory and point it to (./CMakeLists) in the top-level project directory (./build is preferred as it's included in .gitignore).

Sample App

The main sample application (Samples/ZetaLab/) works by loading a glTF scene and then proceeding to rendering that scene while exposing various settings through the UI window.

Note that glTF scenes need to be preprocessed first by generating mipmaps and converting textures to DDS format. A command-line utility app (Tools/BCnCompressglTF) is provided for that purpose. It can be used as follows:

> cd bin
> .\BCnCompressglTF <path-to-gltf>

The outputs are:

  1. The converted glTF scene file in the same directory with a _zeta suffix (e.g., myscene.gltf -> myscene_zeta.gltf)
  2. The compressed textures in the <path-to-gltf-directory>/compressed directory.

For convenience, a preprocessed Cornell Box scene is provided (Assets/CornellBox/cornell9.gltf). After building the project, you can run it as follows:

> cd bin
> .\ZetaLab ..\Assets\CornellBox\cornell9.gltf

Currently, unicode paths are not supported. Support is planned for a future release.

Screenshots

Subway Station

Subway Station. (Scene by Alex Murias.)


Subway Station

Subway Station. (Scene by Alex Murias.)


Bistro

Amazon Lumberyard Bistro. (Scene from Open Research Content Archive (ORCA).)


San Miguel

San Miguel 2.0. (Scene from Morgan McGuire's Computer Graphics Archive.)


San Miguel

San Miguel 2.0. (Scene from Morgan McGuire's Computer Graphics Archive.)


San Miguel

San Miguel 2.0. (Scene from Morgan McGuire's Computer Graphics Archive.)


Junk Shop

Modified Blender 2.81 Splash Screen. (Original scene by Alex Treviño, hair model by bbb59149.)


Sponza

Sponza Atrium. (Scene from Intel Samples Library.)


Custom scene made in Blender, rendered by ZetaRay. (Reference art)

References

[1] Y. Ouyang, S. Liu, M. Kettunen, M. Pharr and J. Pantaleoni, "ReSTIR GI: Path Resampling for Real-Time Path Tracing," Computer Graphics Forum, 2021.

[2] S. Hillaire, "A Scalable and Production Ready Sky and Atmosphere Rendering Technique," Computer Graphics Forum, 2020.

[3] MinimalAtmosphere, https://github.com/Fewes/MinimalAtmosphere

[4] B. Bitterli, C. Wyman, M. Pharr, P. Shirley, A. Lefohn and W. Jarosz, "Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting," ACM Transactions on Graphics, 2020.

[5] J. Boksansky, P. Jukarainen, and C. Wyman, "Rendering Many Lights With Grid-Based Reservoirs," in Ray Tracing Gems 2, 2021.

External Libraries

License

MIT license—see LICENSE for more details.

zetaray's People

Contributors

alipbcs 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

Forkers

yhyu13 happydpc

zetaray's Issues

How many logic cores are you running with?

Hi,

I just found out that this project assumed max 16 threads for some reason?

Everything about threads just breaks on my rig which has 16 physical cores detected.

2MhRDgHBZH

I think it is because this project has fixed a maximum of 16 threads, and that you have related num of threads equal to physical cores + num backgrounds threads (which in my case is 16 + 2 = 18 exceed MAX_NUM_THREADS which causes numerous heap corruption for cocurrent queue)

In my local workspace, limiting physical cores fix's this issue for short, but it's weird.

rider64_06GMGAMdTd

Can`t build with Visual Studio 2019

Several problems with build solution.

  1. with error C2641: cannot deduce template arguments for 'fastdelegate::FastDelegate1'
  2. ZetaRay\Tools\BCnCompressglTF\BCnCompressglTF.cpp(11,10): fatal error C1083: Cannot open include file: 'json/json.hpp': No such file or directory

cmake failure

cmake .
-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.20348.0 to target Windows 10.0.19045.
-- The CXX compiler identification is MSVC 19.39.33522.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Downloading DXC from https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.8.2403/dxc_2024_03_07.zip...
-- Downloading ImGui 1.90 from https://github.com/ocornut/imgui/archive/refs/tags/v1.90.zip...
-- Downloading ImPlot 0.15 from https://github.com/epezent/implot/archive/refs/tags/v0.15.zip...
-- Downloading imnodes from https://github.com/Nelarius/imnodes/archive/d88f99125bb72cdb71b4c27ff6eb7f318d89a4c5.zip...
-- Downloading WinPixEventRuntime from https://www.nuget.org/api/v2/package/WinPixEventRuntime/1.0.231030001...
-- Downloading xxHash 0.8.1 from https://github.com/Cyan4973/xxHash/archive/refs/tags/v0.8.1.zip...
-- Downloading cgltf 1.13 from https://github.com/jkuhlmann/cgltf/archive/refs/tags/v1.13.zip...
CMake Error at CMake/Setupcgltf.cmake:20 (message):
  Setting up cgltf failed.
Call Stack (most recent call first):
  Source/ZetaCore/CMakeLists.txt:72 (Setupcgltf)


-- Configuring incomplete, errors occurred!

cmake error: Setupcgltf.cmake

cmake .
-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.20348.0 to target Windows 10.0.19045.
-- The CXX compiler identification is MSVC 19.39.33522.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Downloading DXC from https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.8.2403/dxc_2024_03_07.zip...
-- Downloading ImGui 1.90 from https://github.com/ocornut/imgui/archive/refs/tags/v1.90.zip...
-- Downloading ImPlot 0.15 from https://github.com/epezent/implot/archive/refs/tags/v0.15.zip...
-- Downloading imnodes from https://github.com/Nelarius/imnodes/archive/d88f99125bb72cdb71b4c27ff6eb7f318d89a4c5.zip...
-- Downloading WinPixEventRuntime from https://www.nuget.org/api/v2/package/WinPixEventRuntime/1.0.231030001...
-- Downloading xxHash 0.8.1 from https://github.com/Cyan4973/xxHash/archive/refs/tags/v0.8.1.zip...
-- Downloading cgltf 1.13 from https://github.com/jkuhlmann/cgltf/archive/refs/tags/v1.13.zip...
CMake Error at CMake/Setupcgltf.cmake:20 (message):
  Setting up cgltf failed.
Call Stack (most recent call first):
  Source/ZetaCore/CMakeLists.txt:72 (Setupcgltf)


-- Configuring incomplete, errors occurred!

Build fails on VS 2022

Rebuild started at 09:40...
1>------ Rebuild All started: Project: CopyWinPixDLL, Configuration: Debug x64 ------
2>------ Rebuild All started: Project: CopyFsr2SDKBins, Configuration: Debug x64 ------
3>------ Rebuild All started: Project: CopyFontDLL, Configuration: Debug x64 ------
4>------ Rebuild All started: Project: CopyDX12AgilitySDKBins, Configuration: Debug x64 ------
5>------ Rebuild All started: Project: CompileShaders, Configuration: Debug x64 ------
1>1>Copying WinPixEventRuntime.dll into D:/Personal/Projects/ProjZetaRay/bin...
2>1>Copying ffx_fsr2_api_dx12_x64.dll into D:/Personal/Projects/ProjZetaRay/bin/...
2>2>Copying ffx_fsr2_api_x64.dll into D:/Personal/Projects/ProjZetaRay/bin/...
3>1>Copying Font.dll into D:/Personal/Projects/ProjZetaRay/bin/...
4>1>Copying D3D12Core.dll into D:/Personal/Projects/ProjZetaRay/bin/D3D12/...
4>2>Copying d3d12SDKLayers.dll into D:/Personal/Projects/ProjZetaRay/bin/D3D12/...
5>16>Compiling HLSL source file PresampleEmissives.hlsl...
5>13>Compiling HLSL source file IndirectDnsr_Spatial.hlsl...
5>10>Compiling HLSL source file FireflyFilter.hlsl...
6>------ Rebuild All started: Project: ZetaCore, Configuration: Debug x64 ------
5>14>Compiling HLSL source file IndirectDnsr_Temporal.hlsl...
5>6>Compiling HLSL source file AutoExposure_Histogram.hlsl...
5>15>Compiling HLSL source file Inscattering.hlsl...
5>8>Compiling HLSL source file EstimateCurvature.hlsl...
5>4>Compiling HLSL source file Compositing.hlsl...
5>In file included from D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/IndirectDnsr_Temporal.hlsl:3:
5>In file included from D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_Resampling.hlsli:4:
5>D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_PathTracing.hlsli(244,13): error G5793C645: parameter 'eta' is uninitialized when used here [-Werror,-Wparameter-usage]
5> return false;
5> ^~~~~~
5>D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_PathTracing.hlsli:237:40: note: variable 'eta' is declared here
5> out BSDF::ShadingData surface, out float eta)
5> ^
5>
5>The system cannot find the batch label specified - VCEnd
5>5>Compiling HLSL source file BuildLightVoxelGrid.hlsl...
5>D:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(237,5): error MSB8066: Custom build for 'D:\Personal\Projects\ProjZetaRay\build\CMakeFiles\301b84fbc1b63d76d4a5fe3509caba56\IndirectDnsr_Temporal_cs.cso.rule' exited with code 1.
5>3>Compiling DXIL library GBufferRT.hlsl...
5>1>Compiling HLSL source file AutoExposure_ExpectedVal.hlsl...
5>12>Compiling HLSL source file ImGui.hlsl...
5>2>Compiling HLSL source file GBufferRT_Inline.hlsl...
5>9>Compiling HLSL source file EstimateTriLumen.hlsl...
5>11>Compiling HLSL source file GenerateDepthBuffer.hlsl...
5>7>Compiling HLSL source file Display.hlsl...
5>6>Compiling HLSL source file ReSTIR_DI_DNSR_Spatial.hlsl...
6>CommandList.cpp
6>CommandQueue.cpp
6>DescriptorHeap.cpp
6>Device.cpp
6>Direct3DUtil.cpp
6>GpuMemory.cpp
6>GpuTimer.cpp
6>PipelineStateLibrary.cpp
6>RendererCore.cpp
6>RenderGraph.cpp
6>RootSignature.cpp
6>SharedShaderResources.cpp
6>BVH.cpp
6>Common.cpp
6>Sampling.cpp
6>Surface.cpp
5>1>Compiling HLSL source file ReSTIR_DI_SpatioTemporal_LP.hlsl...
5>12>Compiling HLSL source file ReSTIR_DI_DNSR_Temporal.hlsl...
5>8>Compiling HLSL source file ReSTIR_DI_SpatioTemporal.hlsl...
5>In file included from D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_NPS.hlsl:5:
5>In file included from D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_LVG.hlsl:7:
5>In file included from D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI.hlsl:1:
5>In file included from D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_Resampling.hlsli:4:
5>In file included from D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI.hlsl:1:
5>In file included from D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI.hlsl:1:
5>In file included from D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_Resampling.hlsli:4:
5>In file included from D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_Resampling.hlsli:4:
5>D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_PathTracing.hlsli(244,13): error G5793C645: parameter 'eta' is uninitialized when used here [-Werror,-Wparameter-usage]
5> return false;
5> ^~~~~~
5>D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_PathTracing.hlsli:237:40: note: variable 'eta' is declared here
5> out BSDF::ShadingData surface, out float eta)
5> ^
5>
5>The system cannot find the batch label specified - VCEnd
5>11>Compiling HLSL source file ReSTIR_GI_NPS.hlsl...
5>D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_PathTracing.hlsli(244,13): error G5793C645: parameter 'eta' is uninitialized when used here [-Werror,-Wparameter-usage]
5> return false;
5> ^~~~~~
5>D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_PathTracing.hlsli(244,13): error G5793C645: parameter 'eta' is uninitialized when used here [-Werror,-Wparameter-usage]
5>D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_PathTracing.hlsli:237:40: note: variable 'eta' is declared here
5> return false;
5> out BSDF::ShadingData surface, out float eta)
5> ^~~~~~
5> ^
5>
5>D:/Personal/Projects/ProjZetaRay/Source/ZetaRenderPass/IndirectLighting/ReSTIR_GI_PathTracing.hlsli:237:40: note: variable 'eta' is declared here
5>The system cannot find the batch label specified - VCEnd
5> out BSDF::ShadingData surface, out float eta)
5>9>Compiling HLSL source file ReSTIR_GI_LVG.hlsl...
5> ^
5>
5>The system cannot find the batch label specified - VCEnd
5>10>Compiling HLSL source file ReSTIR_GI.hlsl...
5>D:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(237,5): error MSB8066: Custom build for 'D:\Personal\Projects\ProjZetaRay\build\CMakeFiles\301b84fbc1b63d76d4a5fe3509caba56\ReSTIR_GI_cs.cso.rule' exited with code 1.
5>D:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(237,5): error MSB8066: Custom build for 'D:\Personal\Projects\ProjZetaRay\build\CMakeFiles\301b84fbc1b63d76d4a5fe3509caba56\ReSTIR_GI_NPS_cs.cso.rule' exited with code 1.
5>D:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(237,5): error MSB8066: Custom build for 'D:\Personal\Projects\ProjZetaRay\build\CMakeFiles\301b84fbc1b63d76d4a5fe3509caba56\ReSTIR_GI_LVG_cs.cso.rule' exited with code 1.
5>16>Compiling HLSL source file SkyDI_DNSR_Spatial.hlsl...
5>15>Compiling HLSL source file SkyDI_DNSR_Temporal.hlsl...
5>5>Compiling HLSL source file SkyDI_SpatioTemporal.hlsl...
5>7>Compiling HLSL source file SkyViewLUT.hlsl...
5>4>Compiling HLSL source file SunShadow.hlsl...
5>6>Compiling HLSL source file TAA.hlsl...
5>2>Compiling HLSL source file ffx_denoiser_spatial_filter.hlsl...
6>glTF.cpp
6>Mesh.cpp
6>RtAccelerationStructure.cpp
5>13>Compiling HLSL source file ffx_denoiser_temporal.hlsl...
6>Sampler.cpp
6>Asset.cpp
6>Camera.cpp
6>SceneCore.cpp
6>MemoryPool.cpp
6>MemoryArena.cpp
6>OffsetAllocator.cpp
6>Param.cpp
6>Task.cpp
6>ThreadPool.cpp
6>ThreadSafeMemoryArena.cpp
6>Error.cpp
6>Win32App.cpp
6>Win32Filesystem.cpp
6>Win32Timer.cpp
6>Win32Common.cpp
6>imgui.cpp
6>imgui_draw.cpp
6>imgui_tables.cpp
6>imgui_widgets.cpp
5>Done building project "CompileShaders.vcxproj" -- FAILED.
6>imnodes.cpp
6>implot.cpp
6>implot_items.cpp
6>ZetaCore.vcxproj -> D:\Personal\Projects\ProjZetaRay\bin\ZetaCored.lib
7>------ Rebuild All started: Project: ZetaRenderPass, Configuration: Debug x64 ------
8>------ Rebuild All started: Project: Tests, Configuration: Debug x64 ------
9>------ Rebuild All started: Project: BCnCompressglTF, Configuration: Debug x64 ------
8>TestContainer.cpp
8>TestMath.cpp
8>TestAliasTable.cpp
8>TestOffsetAllocator.cpp
8>TestOptional.cpp
9>BC.cpp
7>RenderPass.cpp
8>main.cpp
9>BC4BC5.cpp
9>BC6HBC7.cpp
9>DirectXTexCompress.cpp
9>DirectXTexConvert.cpp
9>DirectXTexDDS.cpp
9>DirectXTexImage.cpp
9>DirectXTexMipmaps.cpp
9>DirectXTexMisc.cpp
9>DirectXTexResize.cpp
9>DirectXTexUtil.cpp
9>DirectXTexFlipRotate.cpp
9>DirectXTexWIC.cpp
9>BCDirectCompute.cpp
9>DirectXTexCompressGPU.cpp
9>DirectXTexD3D11.cpp
7>AutoExposure.cpp
7>Compositing.cpp
7>DirectLighting.cpp
7>SkyDI.cpp
7>Display.cpp
7>FSR2.cpp
7>GBufferRT.cpp
7>GenerateDepthBuffer.cpp
7>GuiPass.cpp
7>IndirectLighting.cpp
7>PreLighting.cpp
7>Sky.cpp
7>SunShadow.cpp
7>TAA.cpp
8>D:\Personal\Projects\ProjZetaRay\Tests\TestMath.cpp(376,23): error C2039: 'DegreeToRadians': is not a member of 'ZetaRay::Math'
8>D:\Personal\Projects\ProjZetaRay\Source\ZetaCore\Math\Sampling.h(11,11):
8>see declaration of 'ZetaRay::Math'
8>D:\Personal\Projects\ProjZetaRay\Tests\TestMath.cpp(376,23): error C3861: 'DegreeToRadians': identifier not found
9>texconv.cpp
9>BCnCompressglTF.cpp
7>ZetaRenderPass.vcxproj -> D:\Personal\Projects\ProjZetaRay\bin\ZetaRenderPassd.lib
10>------ Rebuild All started: Project: ZetaRenderer, Configuration: Debug x64 ------
8>Done building project "Tests.vcxproj" -- FAILED.
10>GBuffer.cpp
10>PostProcessor.cpp
10>RayTracer.cpp
10>DefaultRenderer.cpp
10>ZetaRenderer.vcxproj -> D:\Personal\Projects\ProjZetaRay\bin\ZetaRendererd.lib
11>------ Rebuild All started: Project: ZetaLab, Configuration: Debug x64 ------
11>ZetaLab.cpp
11> Creating library D:/Personal/Projects/ProjZetaRay/bin/ZetaLabd.lib and object D:/Personal/Projects/ProjZetaRay/bin/ZetaLabd.exp
11>ZetaLab.vcxproj -> D:\Personal\Projects\ProjZetaRay\bin\ZetaLabd.exe
9>BCnCompressglTF.vcxproj -> D:\Personal\Projects\ProjZetaRay\bin\BCnCompressglTFd.exe
12>------ Skipped Rebuild All: Project: ALL_BUILD, Configuration: Debug x64 ------
12>Project not selected to build for this solution configuration
========== Rebuild All: 9 succeeded, 2 failed, 1 skipped ==========
========== Rebuild completed at 09:41 and took 12.961 seconds ==========

Cornell Box scene dark & RenderDoc launch fails at Dx12 ray tracing feature tier 1.1 not supported

Hi,

I was running this project with latest commit 3c57d8166f7044eef7b151797508892714fab1ee

1,
But I found that the already preprocessed gltf cornell box scene mentioned in the README fails to render with complete darkness

ZetaLab_tKwui433G2

2,

So I was trying to debug this scene with RenderDoc v1.28 (latest stable release), but when launching from renderdoc, I got this

ZetaLab_UramyqXOUY

Triggerd by this line of code

Check(feature.RaytracingTier == D3D12_RAYTRACING_TIER_1_1, "Raytracing Tier 1.1 is not supported.");

I tried to change it to,

Check(feature.RaytracingTier != D3D12_RAYTRACING_TIER_NOT_SUPPORTED, "Raytracing Tier not supported.");

and it still fails with renderdoc but pass the ordinary launch. I guess it is a problem regard to renderdoc not supporting dx12 raytracing? But I cannot find any solutions online.

I wonder what tools you used to debug shader in this case. I am pretty sure it is problem with ray tracing shaders but I am not sure where to start at this embarrassing moment.

My rig is RTX2080super desktop.

Thanks!

Launching Zetalab fails silently

Hi,

I've now tried building & running this using two different machines (a really beefy NVidia A6000 desktop machine, and an RTX 2080 super laptop), without much success. I'm using VS 2022 version 17.5.2 and CMake 3.25.1.

On both machines I'm able to build the solution in VS 2022 without errors, but when I launch the Zetalab app using cornell box gltf as the test scene, it just flashes up for a half a sec (I can see an empty app frame for a while), and quits silently without any error.

I wonder if there's some step(s) that I'm doing wrong, or am I missing something? Can you share a build I could try?

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.