Commit Graph

198 Commits

Author SHA1 Message Date
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 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
Jarrod Doyle c5cbeddcd5
Fix incorrect classification of front/back 2025-01-04 21:04:23 +00:00
Jarrod Doyle 74228a2851
Fix incorrect loop back logic in recursive section 2025-01-04 21:03:57 +00:00
Jarrod Doyle f0cec24cf6
Initial PVS calculation 2025-01-04 20:22:36 +00:00
Jarrod Doyle 54c8176302
Set SpotlightInnerAngle to -1 on non-spotlights
It's a bit odd but it matches what DromEd does
2024-12-26 21:39:29 +00:00
Jarrod Doyle 8b84e5ce3a
Fix incorrect coloured lights 2024-12-26 21:15:53 +00:00
Jarrod Doyle 5aa47d6ea6
Set version 2024-12-26 18:14:55 +00:00
Jarrod Doyle b41d73c0e3
Fix #9: Blocks vision polys always cast shadows 2024-12-26 17:39:24 +00:00
Jarrod Doyle 2e1c90b88a
Close #10: Apply ambient light zones 2024-12-26 17:12:28 +00:00
Jarrod Doyle 42daa8a048
Apply AnimlightCutoff 2024-12-26 14:04:47 +00:00
Jarrod Doyle 196f739afd
Add anim light cutoff to lighting settings 2024-12-26 14:03:52 +00:00
Jarrod Doyle bf602a6964
Use anim light max brightness for light brightness 2024-12-26 14:03:24 +00:00
Jarrod Doyle 2cc5ab44b7
Set SpotAmb spotlight brightness 2024-12-26 14:02:01 +00:00
Jarrod Doyle a5571c9f76
Fix spotlight direction on models with only a light pos vhot 2024-12-26 13:23:07 +00:00
Jarrod Doyle 65dda0194d
Fix #1 #2: Rewrite light gathering
It's now much neater, has support for SpotlightAndAmbient, and uses proper vhot hierarchy transforms
2024-12-23 18:01:33 +00:00
Jarrod Doyle 010757eb6f
Add light helper functions 2024-12-23 17:57:36 +00:00
Jarrod Doyle bf47578133
Tidy up mesh transform calculation 2024-12-23 17:54:52 +00:00
Jarrod Doyle 0f9467b8c4
Use new model joint application in meshbuilder 2024-12-23 17:51:25 +00:00
Jarrod Doyle db01667fb2
Fix 3: Apply hierarchical transforms to models 2024-12-23 12:44:37 +00:00
Jarrod Doyle 8191d30b20
Update dromed lighting mode to objcast 2024-12-11 17:43:47 +00:00
Jarrod Doyle a6e4e85470
Fix incorrect rotation on object polys 2024-12-10 21:33:18 +00:00
Jarrod Doyle fc91970c45
Apply brush rotation to base spotlight direction 2024-12-10 19:51:08 +00:00
Jarrod Doyle f359a19579
Remove AoT from csproj 2024-12-10 17:32:11 +00:00
Jarrod Doyle 06803fa07f
Add light max effective radius method 2024-12-10 16:55:22 +00:00
Jarrod Doyle 9fd33efeed
Add debug stats 2024-12-09 20:49:00 +00:00
Jarrod Doyle ed1b95af35
Properly apply rotation to light offsets 2024-12-09 20:22:49 +00:00
Jarrod Doyle 16dddcb497
Only add sunlight index to cells if sunlight is enabled 2024-12-09 19:03:20 +00:00
Jarrod Doyle df9b21de46
Close #7: Log when too many lights reach cell 2024-12-09 18:40:04 +00:00
Jarrod Doyle 518f387c43
Close #6: Don't add 0 brightness static lights 2024-12-09 18:32:32 +00:00
Jarrod Doyle cb599f24df
Close #1: Finally cracked the colored lighting problem 2024-12-09 18:25:33 +00:00
Jarrod Doyle 00c2d14a06
Make published build AOT and trimmed 2024-12-09 16:04:08 +00:00
Jarrod Doyle 07e7fb1801
Change CLI library 2024-12-09 16:03:27 +00:00
Jarrod Doyle 1b962831a0
Normalise sunlight direction 2024-12-09 15:23:47 +00:00
Jarrod Doyle 7693261cd7
Add the sun to every cell's light list 2024-12-09 15:22:43 +00:00
Jarrod Doyle b34131f3b5
Add sunlight casting 2024-12-09 14:35:53 +00:00
Jarrod Doyle c2b69cda46
Swap inner and outer pixel tracing loop 2024-12-09 12:28:52 +00:00
Jarrod Doyle 27f8dab8fe
Refactor tracing to separate ray points 2024-12-09 12:04:32 +00:00
Jarrod Doyle 9daaa3b73b
Improve note about door light blocking 2024-12-09 10:27:32 +00:00
Jarrod Doyle 5538a0e3ea
Include door blocking in the cast mesh 2024-12-09 10:09:13 +00:00
Jarrod Doyle adf61c0f6f
Move more meshing to MeshBuilder 2024-12-09 08:37:46 +00:00
Jarrod Doyle a0b287b9fa
Separate some mesh stuff 2024-12-09 08:19:50 +00:00
Jarrod Doyle 39dbede993
More accurate object casting 2024-12-07 18:47:31 +00:00
Jarrod Doyle 1532a2750c
Almost there object casting 2024-12-07 18:28:39 +00:00
Jarrod Doyle 84c54ce280
Use AABB for a tighter cull of cell light indices 2024-11-29 17:24:03 +00:00
Jarrod Doyle b3a71e6827
Add lightmapped water 2024-11-04 18:39:10 +00:00
Jarrod Doyle 1d96c06032
Add water surfaces to the Embree scene and surface type map 2024-11-04 18:09:39 +00:00
Jarrod Doyle b47a7536c4
Ray traces now continue through any water they hit (unless the water surface is the target) 2024-11-04 18:08:54 +00:00
Jarrod Doyle e6ca952962
Add surface type map 2024-10-30 08:03:26 +00:00
Jarrod Doyle fe100bb938
Change softness mode switch statement to expression 2024-10-29 18:14:44 +00:00
Jarrod Doyle f6bcce9778
Add nine point shadow softness support 2024-10-29 18:13:04 +00:00
Jarrod Doyle 99697180cd
Add support for most of the shadow softness settings 2024-10-29 18:01:50 +00:00
Jarrod Doyle ca017e3f7b
Removed debug print 2024-10-29 07:45:03 +00:00
Jarrod Doyle f5fa373519
Replace System.CommandLine with CliFx 2024-10-29 07:43:32 +00:00
Jarrod Doyle 350a891118
Add basic command line interface 2024-10-28 20:40:06 +00:00
Jarrod Doyle 0ea00fa109
Refactor to LightMapper class 2024-10-28 20:03:20 +00:00
Jarrod Doyle ba31c21b0d
Add fake quad lighting (multisampling) 2024-10-28 19:07:48 +00:00
Jarrod Doyle fdc84a0d81
Clean up TraceRay function and remove old code (should have been in last commit tbh) 2024-10-28 17:50:08 +00:00
Jarrod Doyle 19882dcff2
Even better cell edge shadow clip handling 2024-10-28 08:06:24 +00:00
Jarrod Doyle 175be69b6d
Make TraceRay more generic 2024-10-28 07:42:26 +00:00
Jarrod Doyle 1282c6be19
Better handling of clipped shadows 2024-10-28 07:38:37 +00:00
Jarrod Doyle 926497b2c2
Use ToLightData on brush lights 2024-10-27 16:33:02 +00:00
Jarrod Doyle 94b8af0f7f
Move light strength calculation to Light class 2024-10-27 15:15:59 +00:00
Jarrod Doyle 025f4d0508
Rename Light fields 2024-10-27 15:12:19 +00:00
Jarrod Doyle 50f3c1e9e1
Move Light to own file 2024-10-27 15:10:28 +00:00
Jarrod Doyle b263bdd77e
Fix incorrect light table 2024-10-27 12:26:01 +00:00
Jarrod Doyle c8e13a7f7b
Split out Light gathering a bit 2024-10-27 10:23:15 +00:00
Jarrod Doyle a9d2d2e193
Code cleanup 2024-10-27 09:48:21 +00:00
Jarrod Doyle c162a5028d
Fix incorrect anim light map layering 2024-10-27 09:21:19 +00:00
Jarrod Doyle 0a41d78cac
Simplify some loops 2024-10-27 08:57:59 +00:00
Jarrod Doyle 7ff91b2fda
Remove infinite radius sphere special casing 2024-10-27 08:14:47 +00:00
Jarrod Doyle 0c26aa1f0e
Extract cell light indices setting to method 2024-10-27 08:07:15 +00:00
Jarrod Doyle cd13cee48f
Move colour conversion to separate class 2024-10-27 07:53:58 +00:00
Jarrod Doyle 940c78e1cf
Somewhat working cell light list setting 2024-10-06 10:57:18 +01:00
Jarrod Doyle 5fcf9db59c
Add sphere to sphere intersection test 2024-10-06 10:55:56 +01:00
Jarrod Doyle 1d32b3ef7b
Set light table index on brush lights 2024-10-05 19:19:45 +01:00
Jarrod Doyle 5d72ba546e
Extract anim mapping update to method 2024-10-05 19:09:16 +01:00
Jarrod Doyle 55c9c2cd31
Set AnimCellMaps and update AnimLight props 2024-10-05 19:06:16 +01:00
Jarrod Doyle 7c733fc9fd
Set cell light palette, lightmap bitmasks, and layers 2024-10-05 18:14:25 +01:00
Jarrod Doyle 0a4dcc6de0
Clear cell anim light palette 2024-10-05 16:27:35 +01:00
Jarrod Doyle 0bcf24f640
Remove unneeded using directives 2024-10-05 15:00:47 +01:00
Jarrod Doyle 3fa86a233f
Use TryGetChunk everywhere 2024-10-05 14:57:40 +01:00