Commit Graph

221 Commits

Author SHA1 Message Date
Jarrod Doyle fafae43c56
Don't try and compute visibility for lights outside of the world 2025-01-28 17:49:52 +00:00
Jarrod Doyle db0b1f9c7a
Pre-compute cell visibility in parallel 2025-01-28 17:35:52 +00:00
Jarrod Doyle b493c447c7
Make Nodes readonly and track Node computation on PVS 2025-01-28 17:35:10 +00:00
Jarrod Doyle 77f69be219
Only compute mightsee for edges of cells with lights in 2025-01-28 17:33:25 +00:00
Jarrod Doyle 3040914afb
Precalculate edge list capacity 2025-01-28 17:23:08 +00:00
Jarrod Doyle 1f0b87f3de
Set correct length on edge MightSee arrays 2025-01-28 16:57:16 +00:00
Jarrod Doyle ec9c20423d
Use BitArray for MightSee 2025-01-27 19:25:51 +00:00
Jarrod Doyle f12e723056
Early outs for portals fully behind target/source 2025-01-27 18:58:41 +00:00
Jarrod Doyle e93efb91f2
Early out of valid portal checks if destination is already marked as mightsee 2025-01-27 18:09:46 +00:00
Jarrod Doyle 13929e44a6
Change MightSee to a bool array 2025-01-27 18:09:11 +00:00
Jarrod Doyle 54655254b9
Use faster plane distance calculation 2025-01-27 18:07:59 +00:00
Jarrod Doyle e48393b856
Update version to 0.5.0 2025-01-26 18:16:08 +00:00
Jarrod Doyle 65c248de84
Add PVS flag 2025-01-26 17:54:09 +00:00
Jarrod Doyle 392c7b24b5
Add custom TinyEmbree package with backface culling 2025-01-26 17:27:31 +00:00
Jarrod Doyle 8ae23eafb6
Reverse mesh poly winding order 2025-01-26 17:20:46 +00:00
Jarrod Doyle 007b4f8f1c
Mark object polys as Object surface type 2025-01-26 12:57:17 +00:00
Jarrod Doyle cae43f12ad
Fix shadow acne on super shallow lighting angles 2025-01-26 12:55:20 +00:00
Jarrod Doyle c28626bf20
Rewrite occlusion checks to use different scenes where relevant 2025-01-26 12:35:35 +00:00
Jarrod Doyle 223aee980e
Slight GetTracePoints refactor 2025-01-26 12:33:01 +00:00
Jarrod Doyle 3f6ed89667
Build two scenes, one with objects and one without 2025-01-26 12:26:27 +00:00
Jarrod Doyle 62f2886eb4
Make ComputeEdgeMightSee iterative 2025-01-20 18:48:57 +00:00
Jarrod Doyle c97cf31ccb
Use foreach for edge might see loop 2025-01-20 18:30:50 +00:00
Jarrod Doyle b0e4c8dff3
Semi-fast coarse PVS 2025-01-20 18:10:07 +00:00
Jarrod Doyle 6a7ee922b5
Fall back to a cast if clipping point to poly gives us something sucky 2025-01-15 22:16:52 +00:00
Jarrod Doyle 477eb692c5
Update to version 0.4.1 2025-01-15 21:33:47 +00:00
Jarrod Doyle 785442e60e
Unzip resources in reverse order and overwrite 2025-01-15 21:24:19 +00:00
Jarrod Doyle 6b96f33132
Update version 2025-01-15 20:56:48 +00:00
Jarrod Doyle a5078b0f2b
Use occlusion rays for non-sun tracing
More performant, no longer requires annoying fiddling to check distances, and removes the need for water surfaces in the mesh. Also reduces the number of edge case misses
2025-01-15 20:26:23 +00:00
Jarrod Doyle 4b3016d895
Combine plane facing and initial radius checks 2025-01-14 21:16:25 +00:00
Jarrod Doyle df8cb6f1ca
Fix logging null when failing to find object model 2025-01-14 20:54:21 +00:00
Jarrod Doyle 8682942102
Enable AoT in csproj rather than in CI 2025-01-14 20:32:35 +00:00
Jarrod Doyle be95907352
Only use OD quad lighting when ShadowSoftness is Standard 2025-01-14 20:23:42 +00:00
Jarrod Doyle d7f6bfa0c3
Use larger epsilon for ray traces 2025-01-14 20:22:47 +00:00
Jarrod Doyle 74b175648b
Fix incorrect offset on 4 point softness modes 2025-01-14 19:24:25 +00:00
Jarrod Doyle 9bf80b1b5f
Additional logging around initialisation 2025-01-13 19:11:06 +00:00
Jarrod Doyle 0136dc1141
Update CI to use .NET 9 2025-01-12 12:26:14 +00:00
Jarrod Doyle 9f5a90358c
Dynamically grow lightmap layers
This can be a huge memory saving on large maps. For example TPOAIR M2 goes from ~3gb of RAM to ~500mb
2025-01-12 11:49:26 +00:00
Jarrod Doyle 224d79e1df
Buffer log file writes 2025-01-11 21:38:36 +00:00
Jarrod Doyle cb7cff80bf
Upgrade TinyEmbree 2025-01-11 21:35:43 +00:00
Jarrod Doyle 347f20b609
Upgrade projects to .net 9.0 2025-01-11 21:32:09 +00:00
Jarrod Doyle 5beba9f9f4
Handle dynamic lights correctly 2025-01-11 17:57:52 +00:00
Jarrod Doyle a0790f50bd
Fix performance regression. Discard Lights with 0 brightness 2025-01-11 17:17:12 +00:00
Jarrod Doyle 2ecf17400e
Replace console writes with logging 2025-01-11 13:16:31 +00:00
Jarrod Doyle 19aefb6ac5
Add Serilog and configure logger 2025-01-11 12:32:13 +00:00
Jarrod Doyle b8c16a1ffc
Reduce allocations 2025-01-06 21:26:24 +00:00
Jarrod Doyle 9c371b0d6f
PVS now works it's just slow as fuck 2025-01-06 20:50:35 +00:00
Jarrod Doyle 317b17ab02
Only cast to lights in the cell light list 2025-01-04 23:30:32 +00:00
Jarrod Doyle c37739b029
Make use of the PVS to reduce light casts 2025-01-04 23:08:18 +00:00
Jarrod Doyle ceb86c0a97
Simplify edge definition 2025-01-04 21:17:53 +00:00
Jarrod Doyle 74283f976d
Always create a new edge to the portal graph 2025-01-04 21:12:54 +00:00