Commit Graph

397 Commits

Author SHA1 Message Date
Jonathan 3356b5776e memory on writes 2024-03-13 01:12:24 -04:00
Jonathan 0942b9eb0c simplify light_surfaces storage 2024-03-10 18:20:20 -04:00
Jonathan 3d419853d3 store leaves on surf instead of surface light 2024-03-09 00:14:03 -05:00
Jonathan 6c1feb5af8 cut per-surface memory usage down by making streams re-usable per thread 2024-03-08 23:09:16 -05:00
Eric Wasylishen 12b8066246 light: change remaining double -> float
tiny perf improvement on base1-test.map with light params:

-emissivequality high

before: 7.4s
after: 6.9s

no visible changes in base1.
2024-02-25 23:42:45 -07:00
Jonathan 53850d94ac fix crash in embree tracing due to new batching code
simplify structs for tracing
2024-01-21 08:52:16 -05:00
Jonathan 72611b7e97 batch together traces on the whole surface - saves a small amount of time 2024-01-19 08:48:51 -05:00
Jonathan 0ff4e8ddd5 fix gate on lightgrid 2024-01-17 02:27:50 -05:00
Jonathan a04bb771ce disable gate on high quality 2024-01-14 23:10:21 -05:00
Eric Wasylishen 6351cc50e6 rename: vec_t -> double 2023-12-23 21:09:16 -07:00
Jonathan 1eaf2170f8 Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
# Conflicts:
#	light/trace_embree.cc
2023-12-07 14:13:36 -05:00
Jonathan 9ed4f3d042 bunch of double -> float
fix Q2 animated textures
2023-12-07 14:11:46 -05:00
Jonathan ec452e2291 remove implicit conversion for qplane3 2023-11-19 19:41:58 -05:00
Eric Wasylishen 22ad2f4141 light: cache list of lightsurfs that are actuall emissive
light.exe -visapprox none ad_sepulcher.bsp

45.5s -> 22.7s
2023-11-13 23:35:32 -07:00
Eric Wasylishen 7e5ad9a39b lightpreview: add support for Q1 visdata 2023-11-06 22:54:21 -07:00
Jonathan b83c4a6440 use fold expr instead of for statements in vec3
fix a bunch of clang warnings
2023-11-04 19:01:08 -04:00
Eric Wasylishen 91734ac8f6 light: fix gcc9 build 2023-09-17 21:24:04 -06:00
Eric Wasylishen e6d9605b86 light: fix lightgrid assertion failure if lightgrid gets a nan (separate bug) 2023-09-17 20:27:29 -06:00
Jonathan 0509c9a790 fix multiple bounce interaction with lightgrid 2023-09-16 11:55:10 -04:00
Jonathan 147be8f87a some optimizations in indirect lighting code
multiple bounce support
2023-09-16 00:41:05 -04:00
Jonathan 5619e2abef map file separation 2023-09-07 14:55:37 -04:00
Jonathan 7d881768fa Revert "Revert "reduce memory usage by only storing VPLs when we need to, and only once""
This reverts commit 2e0e23622b.

Disable rescale by default on sky faces.
Light is now in control of rescales' default value.
Multiply omni light faces by 0.5 to better match qrad3
Remove some asserts to increase perf
2023-09-04 02:51:20 -04:00
Eric Wasylishen b893e67309 light: add _light_twosided 1 key for forcing two-sided light receiving on opaque surfaces 2023-08-29 01:44:16 -06:00
Eric Wasylishen b71a4ebaf1 light: wip fix for two-sided liquid lighting + surface lights 2023-08-28 23:33:55 -06:00
Jonathan 2e0e23622b Revert "reduce memory usage by only storing VPLs when we need to, and only once"
This reverts commit fcf39b2ef8.

# Conflicts:
#	include/light/light.hh
#	include/light/surflight.hh
#	light/bounce.cc
#	light/light.cc
#	light/ltface.cc
#	light/surflight.cc
2023-08-26 23:03:25 -04:00
Eric Wasylishen 7608a78b44 style: use std::min/std::max/std::clamp and remove using 2023-08-07 15:42:29 -06:00
Eric Wasylishen f8886b6e60 style: remove all "using namespace std" 2023-08-07 15:28:50 -06:00
Eric Wasylishen db42b2116a use std::abs in remaining places that were using C abs() 2023-08-07 15:23:12 -06:00
Eric Wasylishen 7691706bda build: only use <fmt/core.h>, other headers have a heavy compilation time impact 2023-07-02 17:08:14 -06:00
Eric Wasylishen 1c85bb882a light: minimize includes 2023-06-26 01:19:54 -06:00
Eric Wasylishen fbea58d679 code formatting pass 2023-06-25 18:29:48 -06:00
Jonathan 1fbe12767e decouple lightmapping state from emissive state
allow sky to skip lightmapping if lightgrid is enabled in Q2 mode again
2023-06-19 04:11:20 -04:00
Jonathan 94357818f9 experiment with keeping sample data all together in memory, which might help caching. not certain. 2023-06-18 14:06:58 -04:00
Jonathan fcf39b2ef8 reduce memory usage by only storing VPLs when we need to, and only once
fix visapprox auto not actually being auto
2023-06-18 13:29:53 -04:00
Eric Wasylishen 1c6a76e1f8 light: autominlight extensions
- now apply per-luxel, not just to faces that are fully occluded
- add "_autominlight_target" key for specifying a target
  to take the light sample from
- add "_autominlight" key: 0 = force off, default = apply to occluded luxels, 1 = apply to all luxels

wip / subject to change!
2023-06-16 00:14:27 -06:00
Jonathan 0c8c10f553 post-process phase, so minlight doesn't affect emissives 2023-06-10 14:20:53 -04:00
Eric Wasylishen 502a490e5b light: hack around surface lights getting a black spot when a luxel lines up with a surflight emission point 2023-06-06 22:29:51 -06:00
Eric Wasylishen 17bea71bbe light: experiment with alt lightgrid formula
take brightest side of cube, rather than averaging all 6 sides of cube
2023-05-22 20:41:11 -06:00
Eric Wasylishen 356e5ab963 build: fix build (avoid std::identity) 2023-05-11 00:37:35 -06:00
Eric Wasylishen 895a28584c light: experimental autominlight for solid black sides of doors 2023-05-11 00:17:47 -06:00
Eric Wasylishen 290af832af style: rename dirt related member variables to match the actual names 2023-05-08 23:02:59 -06:00
Eric Wasylishen a73075234e light: fix inheriting worldspawn _minlight_color by bmodels 2023-05-08 00:24:53 -06:00
Eric Wasylishen c9e41ab4db style: remove GLM_ prefix (no longer using glm) 2023-05-07 21:44:29 -06:00
Eric Wasylishen 3e446e6ea6 qbsp, light: fix inheriting minlight from worldspawn
Update q2_light_group.map to support this
2023-05-07 21:44:29 -06:00
Eric Wasylishen 5f7e08d0ef light: CalcPoints: fix check for luxels being too far from the face to be visible 2023-04-29 19:52:31 -06:00
Jonathan 6035290c70 Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
# Conflicts:
#	include/common/imglib.hh
#	light/entities.cc
#	light/light.cc
#	light/surflight.cc
2023-04-24 02:19:04 -04:00
Jonathan dddc48e98b simplify `needs_write` for surfflags
add `_surflight_color` key; allows overriding surface light color on an entity basis
load the .wal from wal_json and use the values as a base, if they exist
allow `_surflight_minlight_scale` to be specified on entities
2023-04-24 02:16:39 -04:00
Eric Wasylishen e069d7b9b8 style: update settings api to follow current coding style 2023-04-16 11:55:38 -06:00
Eric Wasylishen c2a787f6a3 light: add missing model offset for luxel occlusion check against bmodels with origin brush 2023-04-08 12:37:44 -06:00
Jonathan 5daaeee6fb allow `surflight_minlight_scale` to be specified per brush 2023-03-26 18:29:37 -04:00