Commit Graph

977 Commits

Author SHA1 Message Date
Jonathan e97ad64bdc allow a global override to enable radiosity mode on _surface
allow Q2-style rads and Q1-style rads to be added together; also mimic the behavior of _surface which loads multiple lights for a single surface
2022-06-21 17:29:26 -04:00
Jonathan 210d994445 cherry pick commit 96cd23761c from @Shpoike
Removed legacy switchable lightstyles limit (requires updated engines when exceeded). Added -facestyles argument that allows for >4 styles per face, as well as potentially increasing style indexes to 16bit for far far more switchable styles.
2022-06-21 15:35:39 -04:00
Jonathan 827d382d5a support color on surflights 2022-06-21 15:07:30 -04:00
Jonathan 72914b4724 moving more raw pointers to vectors/smart pointers
support for radiosity _surface lights with `_surface_radiosity` key
allow lightstyles for _surface radiosity lights
bounce enabled by default on Q2
remove ValueForKey, use epairs directly
2022-06-21 13:41:51 -04:00
Jonathan df3e6d3988 remove Little* funcs, not used any more
remove byteswap as it wasn't used any more
re-introduce imemstream and omemstream to make it harder to accidentally use the wrong operators
add dynamic padding stream manipulator
use memstreams for BSPX
2022-06-20 21:39:08 -04:00
Jonathan c79e263753 simplify bspx code
remove old obj preview for wrnormals
2022-06-20 20:42:34 -04:00
Jonathan 2b43f2f0c6 slight speed up to compiling surf lights 2022-06-19 12:35:43 -04:00
Jonathan 51f2bc1ff0 fix visapprox rays crashing
fix visapprox rays to work with surface lights; it's slower than vis but it at least works now
2022-06-19 12:09:12 -04:00
Jonathan e366898796 re-introduce vis culling, mainly for Q2/surface lit maps
-novisapprox gone; replaced with -visapprox auto|none|vis|rays
2022-06-18 23:56:45 -04:00
Jonathan e57633bbca the old Safe read/writes are gonedy now 2022-06-16 20:22:03 -04:00
Jonathan 41ef66190f consistency rename; gtexinfo_t -> mtexinfo_t 2022-06-16 09:36:31 -04:00
Jonathan 17656eff78 don't return string ref, since it can be modified after it's inserted because of the vector growing 2022-06-14 18:34:01 -04:00
Jonathan 78b979d670 Merge branch 'type-cleanup' into brushbsp
# Conflicts:
#	include/light/entities.hh
#	qbsp/brush.cc
#	qbsp/map.cc
2022-06-14 17:19:30 -04:00
Jonathan d24ea4922a entdict cleanup 2022-06-14 17:18:13 -04:00
Jonathan b2a0f8039e remove dm/start/coop checking
remove entity target(name) checking; as mods and maps get more complex, this is best left up to the editors to use the FGD to report these things.
2022-06-13 07:10:53 -04:00
Jonathan 4a20305077 clean up light conditional 2022-06-12 06:38:29 -04:00
Jonathan 812797f7ed enable lighting for warp/sky in Q2
simplify bitflag definitions
change nudging light warning to make more sense
another #define -> constexpr pass
2022-06-10 06:29:14 -04:00
Jonathan 42c4060a64 canonize plane stuff into an enum type, remove duplicates
more macros into constexpr's
use options.epsilon directly instead of ON_EPSILON in qbsp
2022-06-10 04:43:56 -04:00
Jonathan 0d56c49d7a remove hardcoded lightstyles max, use config option 2022-06-10 04:22:12 -04:00
Jonathan 19fafd9d46 don't add bounce lights that have no color
increase bounce scale a bit to match Q2 again
2022-06-03 14:59:06 -04:00
Eric Wasylishen 3d8da90eec Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into type-cleanup 2022-06-02 20:58:06 -06:00
Eric Wasylishen 5488f47eda light: GetDirectLighting: fix wrong order in surfpointToLightDist calculation 2022-06-02 20:58:03 -06:00
Jonathan a824b9436c hardcode omnidirectional surface lights - seems closer to Q2's defaults
hardcode dot of 1.0 for surface lights
halve bounce data since the former changes blow out lighting a bit
2022-06-02 22:12:31 -04:00
Jonathan 464b87f095 remove a debugbreak
"fix" broken q2 maps
2022-06-02 10:23:39 -04:00
Jonathan 11f937f0ad add mottling that was used for _minlight on objects in Q2 maps
fix _minlight for Q2
set up a few better defaults for Q2
temp-ish fix for areaportals
2022-06-02 01:05:41 -04:00
Jonathan 65852ef042 adjust settings_set to only accept one token per entry
radlights is now a set (only loads one though)
2022-06-01 20:42:06 -04:00
Eric Wasylishen a4ebfab691 tests: fix case issue with catch includes 2022-05-15 13:19:46 -06:00
Eric Wasylishen 03d9df50e5 tests: don't include(CTest) as it generates unwanted targets 2022-05-15 12:43:35 -06:00
Eric Wasylishen c925f7be74 test: convert test case macros to Catch2 2022-05-15 12:27:43 -06:00
Eric Wasylishen 28bea85d97 test: convert assertions to Catch2 format 2022-05-15 12:18:09 -06:00
Eric Wasylishen 9fe42ef6c7 test: swap GTest out in favour of Catch2 2022-05-15 12:00:50 -06:00
Eric Wasylishen 254310dc2c tests: switch to Catch2 style 2022-05-15 11:20:02 -06:00
Eric Wasylishen 9c806d2d15 settings: don't call exit(0) in printHelp() as it's problematic for tests 2022-05-14 18:11:14 -06:00
Eric Wasylishen 15a136a742 light/CMakeLists.txt: fix vcpkg builds
improve tbb12.dll hack, which is only desired for the embree binary releases
2022-05-12 00:25:18 -06:00
Eric Wasylishen a1b8a38283 merge non-brush bsp specific changes from brushbsp branch 2022-05-11 01:58:53 -06:00
Eric Wasylishen e9abb212bb settings: allow setting_enum to parse numeric representation of enums
use it for light forumla. disallow enums in setting_numeric.
2022-05-10 22:55:41 -06:00
Eric Wasylishen d763b2e336 build: support clang-cl 2022-05-10 21:39:58 -06:00
Eric Wasylishen 4042f1c7b9 light: fix compile after previous change 2022-05-09 23:27:33 -06:00
Jonathan cc0e1a5561 move Face_IsLightmapped to light
Fix q2rtx, needs to include lightstyle for nodraw for emissive invisibles with lightstyles
fix wal (for the 900th time)
auto-set -nolighting for -q2rtx
2022-04-30 23:27:21 -04:00
Bryan Haley ccac9d4979 Add check for SSE2 in light.cc (#328) 2022-03-28 23:08:07 -06:00
Jonathan f5cda68416 clean up percent stuff
comment out "didn't split" message
fix winding resize
merge phong loops together
2022-03-07 14:49:50 -05:00
Jonathan c81e9ace28 remove old threading code entirely
add new parallel logging stuff in common/parallel which wraps parallel_for(_each) and provides automatic percentage indicator
fix issue with light not pulling in settings
move logging stuff into its own namespace and simplify
2022-03-01 10:28:59 -05:00
Jonathan 6baea3bc03 Fix three bugs that slipped by for cmdargs
Remove old threading code, use tbb internally
2022-02-27 04:09:28 -05:00
Jonathan df92d9ce12
Command line args systems (#2)
* cmd

* cmake change for tbb DLLs
add in test for double-hyphens

* cmd

* game version

* settings!

* bsp texture usage
decompile fix for q1bsp

* finish up the options for qbsp

* light finished?

* finish up the few missing bits

* move scalar/int32 up

* Run clang-format pass

* natvis for our mathlib
use slightly faster storage for winding
fix light tests

* allow dictionary to be a base type

* re-run style

* Remove cfg_static
Fix options summary

* natvis for lockable_value<T>

* last-ish pass?

* format

* forgot last few lockables
2022-02-27 00:01:57 -05:00
Eric Wasylishen 466d9adaa6 light: fix backwards interpretation of _bouncecolorscale 2022-02-15 00:54:02 -07:00
Jonathan 77d0e58084 Fix broken SubdividePolygon 2022-02-08 17:23:42 -05:00
Jonathan 8dbb18cc94 Use stem() instead of filename() when we're only wanting to change filename without extension 2022-01-22 17:55:37 -05:00
Jonathan 008d6db056 Fix detail for Q2 maps
Simplify winding::flip
Add an assert that a generated surface has a non-empty bounds (have a map that generates a face with 0,0,0 bounds)
2022-01-20 19:25:58 -05:00
Jonathan 0cca14d1b2 Fix bug in bitangent calculation - thank you AlexP
Allow `calc_sides` to skip writing outputs if they are not required, & return counts since they are constant sized
2022-01-20 16:35:56 -05:00
Jonathan 10fa97e6b8 Use string_view where appropriate for parser, add some additional constructors for ease of use 2022-01-16 04:17:06 -05:00