-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathcompute.render.common.hlsl
More file actions
62 lines (50 loc) · 1.96 KB
/
compute.render.common.hlsl
File metadata and controls
62 lines (50 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef PATH_TRACER_USE_RWMC
#error PATH_TRACER_USE_RWMC must be defined before including compute.render.common.hlsl
#endif
#ifndef PATH_TRACER_ENABLE_LINEAR
#define PATH_TRACER_ENABLE_LINEAR 1
#endif
#ifndef PATH_TRACER_ENABLE_PERSISTENT
#define PATH_TRACER_ENABLE_PERSISTENT 1
#endif
#if !PATH_TRACER_ENABLE_LINEAR && !PATH_TRACER_ENABLE_PERSISTENT
#error At least one path tracer entrypoint mode must be enabled
#endif
#include "nbl/builtin/hlsl/cpp_compat.hlsl"
#include "nbl/builtin/hlsl/glsl_compat/core.hlsl"
#include "nbl/builtin/hlsl/random/pcg.hlsl"
#include "nbl/builtin/hlsl/random/xoroshiro.hlsl"
#if PATH_TRACER_ENABLE_PERSISTENT
#include "nbl/builtin/hlsl/morton.hlsl"
#endif
#include "nbl/builtin/hlsl/bxdf/reflection.hlsl"
#include "nbl/builtin/hlsl/bxdf/transmission.hlsl"
#include "nbl/builtin/hlsl/path_tracing/basic_ray_gen.hlsl"
#include "nbl/builtin/hlsl/path_tracing/unidirectional.hlsl"
#include "render_common.hlsl"
#if PATH_TRACER_USE_RWMC
#include "nbl/builtin/hlsl/rwmc/CascadeAccumulator.hlsl"
#include "render_rwmc_common.hlsl"
#else
#include "nbl/builtin/hlsl/path_tracing/default_accumulator.hlsl"
#endif
#if PATH_TRACER_USE_RWMC
[[vk::push_constant]] RenderRWMCPushConstants pc;
#else
[[vk::push_constant]] RenderPushConstants pc;
#endif
[[vk::combinedImageSampler]] [[vk::binding(0, 0)]] Texture2D<float3> envMap;
[[vk::combinedImageSampler]] [[vk::binding(0, 0)]] SamplerState envSampler;
[[vk::combinedImageSampler]] [[vk::binding(1, 0)]] Texture2D<uint2> scramblebuf;
[[vk::combinedImageSampler]] [[vk::binding(1, 0)]] SamplerState scrambleSampler;
[[vk::image_format("rgba16f")]] [[vk::binding(2, 0)]] RWTexture2DArray<float32_t4> outImage;
#if PATH_TRACER_USE_RWMC
[[vk::image_format("rgba16f")]] [[vk::binding(3, 0)]] RWTexture2DArray<float32_t4> cascade;
#endif
#include "example_common.hlsl"
#include "rand_gen.hlsl"
#include "intersector.hlsl"
#include "material_system.hlsl"
#include "next_event_estimator.hlsl"
using namespace nbl;
using namespace hlsl;