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
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