Commit Graph

201 Commits

Author SHA1 Message Date
Jarrod Doyle 477eb692c5
Update to version 0.4.1 2025-01-15 21:33:47 +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 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