Commit graph

329 commits

Author SHA1 Message Date
Magnus Norddahl
0655ffd7f5 Slightly improve performance 2023-04-14 16:55:56 +02:00
Magnus Norddahl
74b81bc65a Fix crash for maps with vertices above 32768 2023-04-12 18:00:47 +02:00
Magnus Norddahl
08be3607ce Fix descriptor pool allocation error on AMD cards 2023-04-12 01:44:45 +02:00
Magnus Norddahl
c142f11248 Upgrade to latest version of zvulkan and hook up minAccelerationStructureScratchOffsetAlignment 2023-04-12 01:23:06 +02:00
Magnus Norddahl
b44e54743b Add sun direction and color to the lightmap lump 2023-04-06 15:55:06 +02:00
Magnus Norddahl
11c4e5900c Fix warning: result of comparison of constant -1 with expression of type 'uint16_t' is always true
Fix warning: illegal character encoding in string literal
2022-11-07 23:38:52 +01:00
Magnus Norddahl
1420e4f6d5 Fix missing vector include statement 2022-11-07 23:32:34 +01:00
Magnus Norddahl
5bf393364f Rewrite CMakeLists.txt 2022-11-07 23:24:24 +01:00
Magnus Norddahl
8427e4c98d Switch to using zvulkan 2022-11-07 21:36:27 +01:00
Magnus Norddahl
001a936994
Merge pull request #51 from MrRaveYard/pr_portal_pointlights
Full Portal Light Support
2022-10-31 14:52:25 +01:00
RaveYard
91c0871b0b Fix edge case where relativePosition of light is valid at 0,0,0 2022-10-31 11:07:56 +01:00
RaveYard
ea5b1a3cac Refactor light propagation 2022-10-31 11:07:56 +01:00
RaveYard
22f24e7993 Fix smoothing groups causing pixels to bleed over portals 2022-10-31 11:07:56 +01:00
RaveYard
1a94878e4e Move portal stuff from levelmesh.h to portal.h 2022-10-31 11:07:56 +01:00
RaveYard
364d71a24a Group together equal portals 2022-10-31 11:07:56 +01:00
RaveYard
0a9c2cf131 Implement sector groups 2022-10-31 11:07:56 +01:00
RaveYard
cb9416269e Initial implementation of recursive portal pointlight propagation 2022-10-31 10:57:34 +01:00
RaveYard
b003565ad2 Fix CheckAndMakePortal missing tagged sectors 2022-10-31 10:50:24 +01:00
RaveYard
e8e339c8f7 Fix typo in CreatePlanePortal 2022-10-31 10:44:02 +01:00
RaveYard
0a618298a2 Fix buffer flush 2022-10-30 14:18:39 +01:00
RaveYard
e064c7a01a Fix uninitialized args in struct IntLineDef 2022-10-29 23:34:29 +02:00
Magnus Norddahl
7503219d3e
Merge pull request #50 from MrRaveYard/pr_portals
Initial portal support for sunlight
2022-10-29 19:00:28 +02:00
RaveYard
e9bf098195 Add support for Sector_SetPortal 2022-10-29 17:23:22 +02:00
RaveYard
4605f06308 Move line portal to its own function 2022-10-29 16:13:09 +02:00
RaveYard
38916e7f75 Implement basic linedef sunlight portal support 2022-10-29 15:16:27 +02:00
Magnus Norddahl
1427ca5f35
Merge pull request #49 from MrRaveYard/pr_renderdoc
Add RenderDoc support
2022-10-26 17:57:06 +02:00
RaveYard
525365637c Fix Linux/macOS build 2022-10-26 12:07:24 +02:00
RaveYard
bfbf97c2f6 Add RenderDoc support 2022-10-26 11:52:10 +02:00
Magnus Norddahl
ee0740b0eb
Merge pull request #48 from MrRaveYard/pr_flush_cmd_buffer
Flush scene buffers if next surface is out of space
2022-10-25 23:42:10 +02:00
RaveYard
7aff36dfb4 Flush scene buffers if next surface is out of space 2022-10-15 19:11:38 +02:00
RaveYard
8fb35aca7f Use default member initializers in IntThing 2022-10-15 13:59:26 +02:00
Magnus Norddahl
207352f0c5
Merge pull request #47 from MrRaveYard/pr_negative_lights
Allow use of negative color values for lights
2022-10-15 12:36:43 +02:00
RaveYard
0a53030010 Fix non-rtx version of TraceFirstHitTriangleT
This fixes sunlight
2022-10-15 11:24:21 +02:00
RaveYard
67bd6c62ab Support negative light intensities on pointlights 2022-10-14 20:27:28 +02:00
dpjudas
4b05dccb8a Fix include error 2022-09-01 02:16:30 +02:00
Magnus Norddahl
1e62255b28 Update the vulkan support classes and enable runtime detection for falling back to non-rayquery rendering if the device does not support it 2022-09-01 01:04:17 +02:00
Magnus Norddahl
0c6954a767 Add --no-rtx option for testing the non-rayquery path on hardware that can do RTX 2022-09-01 00:10:33 +02:00
Magnus Norddahl
3202713eee Implement TraceFirstHitTriangle for the non-rayquery path 2022-09-01 00:03:29 +02:00
Magnus Norddahl
d347464597 Implement TraceAnyHit for the non-rayquery variant 2022-08-31 23:07:31 +02:00
Magnus Norddahl
83153c9e45 Implement the C++ side of not using ray queries 2022-08-31 21:40:07 +02:00
Magnus Norddahl
c80f611924 Some initial support for doing GPU ray tracing without RTX 2022-08-31 09:54:08 +02:00
Magnus Norddahl
e225118e8e Remove light probes
Remove emissive surface code
Change default sample count to 16
2022-08-31 08:48:10 +02:00
Magnus Norddahl
8dcd37691c Remove the CPU raytracer 2022-08-31 08:09:12 +02:00
Magnus Norddahl
8ed96484c2 Remove the old GPU raytracer 2022-08-31 06:22:02 +02:00
Magnus Norddahl
59c58b75f1 Clean up some code by moving it into functions 2022-08-31 06:15:37 +02:00
Magnus Norddahl
66124477b2 Some stats code for knowing how many lights are touching surfaces 2022-08-28 21:57:42 +02:00
Magnus Norddahl
941cf6228a Sort surfaces into smoothing groups and render the entire group into a surface tile
Extend the raytracing of a surface tile by one to get better transitions
Fix Plane.Distance(point) not actually returning the distance to the point!
2022-08-28 21:04:41 +02:00
Magnus Norddahl
9c43d0336d Add multisampling 2022-08-27 05:38:40 +02:00
Magnus Norddahl
c53ebe8121 Only process lights within range of a surface 2022-08-17 16:10:10 +02:00
Magnus Norddahl
f6f11af04a Make the fragment shader a little more readable 2022-08-17 02:38:05 +02:00