Commit Graph

136 Commits

Author SHA1 Message Date
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
Jarrod Doyle ab738203d6
Reset lighting table and lightmaps 2024-10-05 14:52:09 +01:00
Jarrod Doyle b9eae0e437
Split lightmap pixels array into layers 2024-10-04 18:49:37 +01:00
Jarrod Doyle bc01e91dbc
Fix not applying spotlight settings 2024-09-29 11:53:14 +01:00
Jarrod Doyle 7ec7f71239
Slightly handle unfound models 2024-09-29 11:27:36 +01:00
Jarrod Doyle 47d95307b5
Use existing lighttable info to apply anim lights 2024-09-29 11:03:26 +01:00
Jarrod Doyle 69b29c15f6
Fix incorrect anim light brightness and light table mapping 2024-09-29 11:02:47 +01:00
Jarrod Doyle 93410a46d5
Gather anim lights 2024-09-29 10:39:40 +01:00
Jarrod Doyle 067cd2cc00
Slight light gather refactor 2024-09-29 10:22:43 +01:00
Jarrod Doyle b57d15f6f0
Remove outdated comment 2024-09-29 10:14:46 +01:00
Jarrod Doyle bd72554b9a
Add ability to not inherit properties 2024-09-29 10:09:09 +01:00
Jarrod Doyle d7fcf7a2d8
Add model vhots and model light offset/dir 2024-09-26 20:25:01 +01:00
Jarrod Doyle 2420bbef4f
Handle spotlight property 2024-09-26 17:16:11 +01:00
Jarrod Doyle 22600a27e5
Add inner radius support 2024-09-26 16:03:50 +01:00
Jarrod Doyle cb526c634c
Make lighting use all cores 2024-09-26 13:10:42 +01:00
Jarrod Doyle dca1b1e5ed
Extract light strength calculation to method in prep for inner radius handling 2024-09-26 12:12:14 +01:00
Jarrod Doyle dcecc33bcd
Handle HDR and light strength multiplication in AddLight 2024-09-26 12:04:58 +01:00
Jarrod Doyle 196e97a8fd
Apply light property position offset 2024-09-25 18:50:30 +01:00
Jarrod Doyle fa360b02cc
Remove ClipPoly3d 2024-09-25 18:39:51 +01:00
Jarrod Doyle b480753c13
Share 2d mapped points of poly across all light calculations 2024-09-25 18:39:40 +01:00
Jarrod Doyle ef32b47e02
Implement plane mapper struct and use it in clipping functions 2024-09-25 18:25:54 +01:00
Jarrod Doyle 422630c2d9
Neaten up ClipPointToPoly3d 2024-09-25 17:43:31 +01:00
Jarrod Doyle 2c74cc5594
Replace epsilon usages with constant 2024-09-25 17:39:44 +01:00
Jarrod Doyle 5957b5b53f
Apply HDR mapping to ambient light 2024-09-24 21:48:45 +01:00
Jarrod Doyle ce7002477e
Mostly fix missed raycasts 2024-09-24 21:13:02 +01:00
Jarrod Doyle 49a1b4bfcc
More accurate handling of lights hitting the luminance limit 2024-09-24 18:43:33 +01:00
Jarrod Doyle ca43e6f8a5
Correctly handle light strength close to light source 2024-09-24 17:07:35 +01:00
Jarrod Doyle 860080ada3
Add HDR lightmap support 2024-09-24 16:16:50 +01:00
Jarrod Doyle d144bdb6e9
Add Sphere AABB intersection test 2024-09-24 08:55:05 +01:00
Jarrod Doyle edd01952e7
Discard planes that don't intersect with sphere 2024-09-24 08:19:14 +01:00
Jarrod Doyle ead1943820
Add math utility class 2024-09-24 08:11:35 +01:00
Jarrod Doyle 10a8a31520
Add light falloff and diffuse angle 2024-09-23 20:32:47 +01:00
Jarrod Doyle e004292e53
Handle object lights with radius 0 2024-09-23 18:08:21 +01:00
Jarrod Doyle 63133da6a4
Time everything 2024-09-23 16:57:02 +01:00
Jarrod Doyle 94286e134f
Add timing class from TMV 2024-09-23 16:56:47 +01:00
Jarrod Doyle 68eed0a821
Remove debug print 2024-09-23 08:24:55 +01:00
Jarrod Doyle 3a445ef6d8
Add light radius check 2024-09-23 08:19:29 +01:00
Jarrod Doyle 8bde33ebf2
Simplify lightmap origin calculation and adjust to cast from center of pixel 2024-09-23 07:57:59 +01:00
Jarrod Doyle f4c4237306
Per lightmap pixel raycasting 2024-09-23 07:51:07 +01:00
Jarrod Doyle 6a9aac972d
Bit of cleanup 2024-09-22 19:16:12 +01:00
Jarrod Doyle b55d58b9fe
Fix incorrect radius on object light 2024-09-22 15:03:24 +01:00
Jarrod Doyle 6c143058e9
Fix incorrect hue on object lights 2024-09-22 13:36:06 +01:00
Jarrod Doyle 7c786a5f4c
Add light objects to the light list 2024-09-22 13:18:32 +01:00
Jarrod Doyle fe3f13e372
Fix reapplying ambient on non-lit pixels 2024-09-22 12:01:02 +01:00
Jarrod Doyle 45ad76855f
Don't cast for lights facing away 2024-09-22 11:59:23 +01:00
Jarrod Doyle 4bc55b9130
Add RendParams and writers for each chunk 2024-09-22 11:14:34 +01:00
Jarrod Doyle 8af9740eb6
Add LGS lib reference 2024-09-20 16:33:17 +01:00
Jarrod Doyle 0596ef1d2d
Add TinyEmbree 2024-09-20 16:29:41 +01:00
Jarrod Doyle 50bcb41134
Initial commit 2024-09-20 16:26:36 +01:00