Improve brute pathtracer

This commit is contained in:
luboslenco
2024-12-10 22:17:20 +01:00
parent 43263ba21e
commit e75904170b
6 changed files with 17 additions and 14 deletions
Binary file not shown.
+2
View File
@@ -1,5 +1,7 @@
.\dxc.exe -Zpr -Fo ..\raytrace_brute_core.cso -T lib_6_3 .\raytrace_brute.hlsl
.\dxc.exe -Zpr -Fo ..\raytrace_brute_full.cso -T lib_6_3 .\raytrace_brute.hlsl -D _FULL
.\dxc.exe -Zpr -Fo ..\raytrace_brute_forge_core.cso -T lib_6_3 .\raytrace_brute.hlsl -D _FORGE
.\dxc.exe -Zpr -Fo ..\raytrace_brute_forge_full.cso -T lib_6_3 .\raytrace_brute.hlsl -D _FORGE -D _FULL
.\dxc.exe -Zpr -Fo ..\raytrace_bake_ao.cso -T lib_6_3 .\raytrace_bake_ao.hlsl
.\dxc.exe -Zpr -Fo ..\raytrace_bake_light.cso -T lib_6_3 .\raytrace_bake_light.hlsl
.\dxc.exe -Zpr -Fo ..\raytrace_bake_bent.cso -T lib_6_3 .\raytrace_bake_bent.hlsl
+2 -1
View File
@@ -1,6 +1,7 @@
./dxc -Zpr -Fo ../raytrace_brute_core.spirv -T lib_6_4 ./raytrace_brute.hlsl -spirv -fvk-use-scalar-layout -fspv-target-env="vulkan1.2" -fvk-u-shift 10 all -fvk-b-shift 11 all
./dxc -Zpr -Fo ../raytrace_brute_full.spirv -T lib_6_4 ./raytrace_brute.hlsl -spirv -fvk-use-scalar-layout -fspv-target-env="vulkan1.2" -fvk-u-shift 10 all -fvk-b-shift 11 all -D _FULL
./dxc -Zpr -Fo ../raytrace_brute_forge.spirv -T lib_6_4 ./raytrace_brute.hlsl -spirv -fvk-use-scalar-layout -fspv-target-env="vulkan1.2" -fvk-u-shift 10 all -fvk-b-shift 11 all -D _FORGE
./dxc -Zpr -Fo ../raytrace_brute_forge_core.spirv -T lib_6_4 ./raytrace_brute.hlsl -spirv -fvk-use-scalar-layout -fspv-target-env="vulkan1.2" -fvk-u-shift 10 all -fvk-b-shift 11 all -D _FORGE
./dxc -Zpr -Fo ../raytrace_brute_forge_full.spirv -T lib_6_4 ./raytrace_brute.hlsl -spirv -fvk-use-scalar-layout -fspv-target-env="vulkan1.2" -fvk-u-shift 10 all -fvk-b-shift 11 all -D _FORGE -D _FULL
./dxc -Zpr -Fo ../raytrace_bake_ao.spirv -T lib_6_4 ./raytrace_bake_ao.hlsl -spirv -fvk-use-scalar-layout -fspv-target-env="vulkan1.2" -fvk-u-shift 10 all -fvk-b-shift 11 all
./dxc -Zpr -Fo ../raytrace_bake_light.spirv -T lib_6_4 ./raytrace_bake_light.hlsl -spirv -fvk-use-scalar-layout -fspv-target-env="vulkan1.2" -fvk-u-shift 10 all -fvk-b-shift 11 all
./dxc -Zpr -Fo ../raytrace_bake_bent.spirv -T lib_6_4 ./raytrace_bake_bent.hlsl -spirv -fvk-use-scalar-layout -fspv-target-env="vulkan1.2" -fvk-u-shift 10 all -fvk-b-shift 11 all
+13 -13
View File
@@ -5,7 +5,7 @@
#define _TRANSLUCENCY
#define _ROULETTE
#define _TRANSPARENCY
#define _FRESNEL
// #define _FRESNEL
#endif
// #define _RENDER
@@ -104,22 +104,22 @@ void raygeneration() {
#endif
#ifdef _EMISSION
if (payload.color.a == -2) {
if (payload.color.a == -3) {
accum += payload.color.rgb;
break;
}
#endif
#ifdef _TRANSPARENCY
if (payload.color.a == -2 && transparent_hits < DEPTH_TRANSPARENT) {
payload.color.a = j;
transparent_hits++;
i--;
}
#endif
// Miss
if (payload.color.a < 0) {
#ifdef _TRANSPARENCY
if (payload.color.a == -2 && transparent_hits < DEPTH_TRANSPARENT) {
payload.color.a = j;
transparent_hits++;
i--;
}
#endif
if (i == 0 && constant_buffer.params.x < 0) { // No envmap
payload.color.rgb = float3(0.032, 0.032, 0.032);
}
@@ -181,7 +181,7 @@ void closesthit(inout RayPayload payload, in BuiltInTriangleIntersectionAttribut
float4 texpaint0 = mytexture0.Load(utex_coord);
#ifdef _TRANSPARENCY
if (texpaint0.a <= 0.1) {
if (texpaint0.a <= 0.01) {
payload.ray_dir = WorldRayDirection();
payload.ray_origin = hit_world_position() + payload.ray_dir * 0.0001f;
payload.color.a = -2;
@@ -268,7 +268,7 @@ void closesthit(inout RayPayload payload, in BuiltInTriangleIntersectionAttribut
#ifdef _EMISSION
if (int(texpaint1.a * 255.0f) % 3 == 1) { // matid
payload.color.xyz *= 100.0f;
payload.color.a = -2.0;
payload.color.a = -3.0;
}
#endif
@@ -283,7 +283,7 @@ void closesthit(inout RayPayload payload, in BuiltInTriangleIntersectionAttribut
void miss(inout RayPayload payload) {
#ifdef _EMISSION
if (payload.color.a == -2.0) {
if (payload.color.a == -3.0) {
return;
}
#endif