Jonathan
84b4388f4b
Added a deprecation sniffer so I can find problematic areas later
...
Revert tjunc fixes
Add -notjunc to match other editors
Rid Light_Add since it's too simple
2021-10-20 04:27:22 -04:00
Jonathan
95b47db922
More qmat/qvec where appropriate
...
Add a json.hh file which includes common JSON serialization types
surfflags_t::extended uses booleans instead of a bitflag for simplicity
JSON serialization for surfflags
2021-10-19 21:15:00 -04:00
Jonathan
a7de4bdae2
Remove unused thingies
...
Use qplane3 where we can
2021-10-17 06:24:02 -04:00
Jonathan
fd18fc154c
Fix various warnings by testing a clang-cl compile
2021-10-12 14:39:15 -04:00
Jonathan
e1290fd0f4
Snap normals/tangents/bitangents written from WriteNormals to save some bits
...
Texvec inherits mat<2, 4> now, since it's the most logical type for it to be based on.
2021-10-12 13:52:47 -04:00
Jonathan
e6fd6b653e
A few more vec3_t -> qvec
...
qmat follows other type conventions (T, N, M) and is annotated differently so it's not as confusing to follow
Removed qmat::operator[] - it's not clear from calling it that it's column-major (as evidenced by the comments needing to explicitly make clear at call sites that it's column, not row), so I've collapsed them into two separate functions that explicitly fetch either a column or a row. This also ties them nicely into qvec<N>.
2021-10-12 12:03:59 -04:00
Jonathan
01b8abf93c
Removed a lot of unused functions
...
Moved vector-related operations from mathlib to qvec, moved a few into qv::
Use clamp/max/min directly instead of #define'ing them
Move a few single-use functions directly above their usages
2021-10-10 14:04:09 -04:00
Eric Wasylishen
f0f7722909
light: fix build
2021-10-09 11:48:18 -06:00
Eric Wasylishen
9dcef7839a
common: remove dead code (mesh_t, octree)
2021-10-09 11:40:35 -06:00
Eric Wasylishen
4accc4d56b
light: remove incorrect assertion face->lightofs != -1
...
This can happen for Q1 with a solid black face
2021-10-09 00:13:23 -06:00
Eric Wasylishen
bf8f00df01
build: don't compile qbsp + light twice
2021-10-08 20:30:18 -06:00
Eric Wasylishen
34b6462641
build: build common as a static library
2021-10-08 20:08:26 -06:00
Eric Wasylishen
76d0dae890
mathlib: GLM_InterpolateNormal: quick hack to fix build of testlight
2021-10-08 19:31:06 -06:00
Eric Wasylishen
5cf82ee023
qbsp: restore use of options.worldExtent
...
should fix minor precision differences in .prt files
2021-10-08 19:04:11 -06:00
Jonathan
1b1679fa22
normals are now a special tuple-ish type, so that we can calculate tangents and bitangents for Q2RTX if requested (currently it always does it, but we can fix that later)
...
always emit texinfo for q2 brush sides
2021-10-08 14:17:48 -04:00
Jonathan
16d3bcc7c7
Revert "clang /macOS: un-constexpr things that were erroring"
...
This reverts commit 33745c3cb8 .
Value-initialize v which removes the need for the bottom `if constexpr` expression.
2021-10-06 03:42:46 -04:00
Eric Wasylishen
cb0c97e163
test_common.cc: fix build
2021-10-05 23:43:49 -06:00
Eric Wasylishen
33745c3cb8
clang /macOS: un-constexpr things that were erroring
...
neither clang nor gcc like the qvec(Args..) constructor
being constexpr.
GCC's error says:
error: member ‘qvec<3, double>::v’ must be initialized by mem-initializer in ‘constexpr’ constructor
2021-10-05 23:18:52 -06:00
Jonathan
f4fc8bc72b
Remove unused functions, fix math issues
...
MacOSX potential fix for __VA_ARGS__
2021-10-05 22:35:30 -04:00
Jonathan
81b7fbf916
Fix MSVC extension for setp
...
Fix PointsAlongLine
2021-10-05 21:38:04 -04:00
Jonathan
52839d4e7f
Run clang-format pass
2021-10-05 15:54:06 -04:00
Jonathan
4ad798e29c
Fix origin brushes
...
Fix merge stuff from qbsp-contentflags
2021-10-05 15:50:18 -04:00
Jonathan
0833d84a7a
Calculate tangents and bitangents (need to clean this up)
...
Implement formatters for qvec
Add -nolighting, which skips all non-lightstyled lights
2021-10-05 01:07:13 -04:00
Jonathan
037c587352
Merge remote-tracking branch 'remotes/origin/qbsp-contentflags' into type-cleanup
...
# Conflicts:
# bspinfo/bspinfo.cc
# include/common/bspfile.hh
# include/light/light.hh
# include/light/trace.hh
# light/light.cc
# light/ltface.cc
# light/trace.cc
# qbsp/brush.cc
# qbsp/csg4.cc
# qbsp/outside.cc
# qbsp/qbsp.cc
2021-10-03 13:08:50 -04:00
Jonathan
ae4512da2c
BSPX structurization and cleanup
...
Some more vec3_t removals
A bunch of float -> vec_t in light
Simplified construction of lockables
mapdata_t writes directly to an mbsp instead of vector copies
2021-10-03 12:16:13 -04:00
Eric Wasylishen
2fc1e9099a
light: remove dead / non-working code for non-embree light tracing
2021-10-02 21:12:12 -06:00
Eric Wasylishen
8a7164791e
light: fix "don't do this on Q2" logic for 0 light faces
2021-10-02 21:00:45 -06:00
Jonathan
792951792c
some more cleanup
2021-10-02 05:56:45 -04:00
Jonathan
9d828d2085
Structured texture data!
...
Move vis decompress/compress back to vis since phs is handled there now too
Fix missing textures in Q1BSP
Comment areaportaling for now
2021-09-30 11:33:04 -04:00
Jonathan
cc932a96ee
Fix BSP being invalid in Q2 if vis is not run
...
Fixes for skylight in Q2
Don't throw on invalid area
2021-09-27 22:40:43 -04:00
Jonathan
b205127e81
Fix exactEmpty
...
Simplify output_dir
2021-09-27 21:03:24 -04:00
Jonathan
a6f6cc2d15
qvec now has an empty default initializer, for speed purposes; fixed up places that relied on this behavior
...
simplified constructor for qvec(T...) that uses fold expressions
simplified rgba_miptex_t
fixed a lot of broken winding_base_t behavior
merged all winding types into winding_base_t
removed now-empty files
2021-09-27 20:44:15 -04:00
Jonathan
87d31e6d4f
A lot of type-y stuff here:
...
- bsp store vectors now
- vis stored in a way that is compatible with both Q2 and Q1
- binary reading of stuff, so swapping is done at load time now
- vis cleanup, although there's still a lot of raw long modification that should get simplified later
2021-09-25 23:58:02 -04:00
Eric Wasylishen
f7c0c80a26
qbsp, light: allow _minlight to go up to 510 instead of 255 on func_detail/etc.
2021-09-25 13:11:15 -06:00
Jonathan
41b9a79e83
Merge branch 'qbsp-contentflags' into type-cleanup
...
# Conflicts:
# bsputil/bsputil.cc
# common/bspfile.cc
# common/cmdlib.cc
# include/common/bspfile.hh
# include/common/cmdlib.hh
# qbsp/brush.cc
# qbsp/portals.cc
# qbsp/writebsp.cc
# vis/vis.cc
2021-09-23 18:42:25 -04:00
Eric Wasylishen
d5a647c6a3
trace_embree.cc: try <climits> for UCHAR_MAX
2021-09-22 23:08:06 -06:00
Eric Wasylishen
5cfe40d79a
trace_embree.cc: add missing <cstdint> include (for UCHAR_MAX)
2021-09-22 22:58:33 -06:00
Jonathan
6ff2d67d12
major C++-esque change to BSP conversion:
...
- main mbsp types are declared first in the files, and types that were single-member are now not structs
- conversion is handled by the sub-types themselves. Currently no diagnostic for *what* members overflow, but, overflow is handled via thrown exceptions on all overflowable members
- aabb type is used where appropriate now, simplifying a few areas
2021-09-22 17:30:46 -04:00
Eric Wasylishen
80a4aa1b97
Merge branch 'master' into qbsp-contentflags
2021-09-22 00:12:27 -06:00
Eric Wasylishen
6c19c3c927
Revert "Revert "Q2bsp VIS support ( #315 )""
...
This reverts commit 5465ab4ff6 .
2021-09-20 18:38:31 -06:00
Eric Wasylishen
405ce25913
Revert "Revert "Q2BSP + QBSP ( #313 )""
...
This reverts commit e9052f3002 .
2021-09-20 18:38:28 -06:00
Jonathan
2ebfdb096f
Remove COM_Parse, use parser_t
...
Game controls hull sizes now
2021-09-20 19:45:09 -04:00
Eric Wasylishen
a6f90438f6
build: fix homebrew build
2021-09-19 20:35:44 -06:00
Jonathan
49fd62b9f3
Lotta more file stuff. Have to think about fscanf though.
2021-09-19 22:20:39 -04:00
Jonathan
326626f127
Remove some old stuff
...
Cleanup/rework of logging system. I'm not too happy about it still, but, it's at least a bit easier to follow now.
Started cleanup of file-related stuff.
2021-09-19 18:17:28 -04:00
Eric Wasylishen
e9052f3002
Revert "Q2BSP + QBSP ( #313 )"
...
This reverts commit eaa86c71c6 .
2021-09-19 14:58:34 -06:00
Eric Wasylishen
5465ab4ff6
Revert "Q2bsp VIS support ( #315 )"
...
This reverts commit 90973e1198 .
2021-09-19 14:56:25 -06:00
Jonathan
17606fde4b
Use variant instead of having all BSP types allocated at once (even though they are smol)
...
Move ownership of pointers to the bsp structures themselves for now.
2021-09-16 11:52:37 -04:00
Jonathan
e8bd554cc0
winding_t is now a C++ type - a hybrid stack/heap array.
...
In preparation for converting all of the vec_t[3] to qvec's, the Vector routines are now templated and work with any type that provides indexing operators.
Polylib.cc is gone, since this all needs to be in header now
qvec can now implicitly convert from T[N]
constexpr where appropriate
static inline -> inline
side_t is now an enum, moved into mathlib
2021-09-16 03:10:51 -04:00
Jonathan
1dd4df1b20
calloc/malloc/free -> new/new/delete (except for specific scenarios)
2021-09-14 11:39:12 -04:00
Jonathan
eb6bb81d61
use the C++ includes
...
stdbool not required
_vsnprintf and _snprintf are standard in MSVC since 2015, so I just use them directly now. They'll be replaced by std::fmt later anyways.
use <thread> for threading, instead of pthreads/windows.h thread directly
2021-09-14 08:46:03 -04:00
Jonathan
7f8d2cfb49
Fix single line functions
2021-09-14 02:56:44 -04:00
Jonathan
4e7542b111
Clang format pass
...
typedef -> using
include guards -> pragma once
typedef struct x { } y; -> struct y { }
some fixes to extremely old code that shouldn't be required any more
2021-09-14 02:32:26 -04:00
Jonathan
c575334dff
Fix testlight
2021-09-13 10:15:11 -04:00
Eric Wasylishen
28b4ec7f3f
ci: fix linux CI ( #321 )
2021-09-12 16:40:56 -06:00
Jonathan
c95a1e2ccb
q2 and bug fixes
...
# Conflicts:
# include/qbsp/qbsp.hh
# include/qbsp/winding.hh
# qbsp/brush.cc
# qbsp/csg4.cc
# qbsp/merge.cc
2021-09-12 08:34:01 -04:00
Eric Wasylishen
3f2d8c57c1
build: fix finding embree license with mac package
2021-09-12 01:30:20 -06:00
Eric Wasylishen
bd3452bfdc
build: simplify light build (embree handling)
2021-09-12 01:30:20 -06:00
Eric Wasylishen
3d9d167360
build: fix build-osx.sh
2021-09-11 13:12:25 -06:00
Jonathan
00efa6e67d
Fix operator<
...
Introduce gamedef, to reduce rewriting of data in bspversions
fix name of needs_subdivision
include value in texinfo, in prep for Q2
2021-09-07 01:41:32 -04:00
Jonathan
437459a4dd
Finish using game everywhere
2021-09-06 18:09:13 -04:00
Jonathan
3bc9b1b0f8
Instead of directly comparing BSP version pointers just for game type, I compacted quake2/hexen2 into a single enum.
...
Feature check in bspver for colored lightmaps, which replaces the many "version == q2 || version == qbism || version == hl".
2021-09-06 17:13:37 -04:00
Jonathan
8fd1d89b8d
Fix double-delete
...
Fix typo
2021-09-05 17:39:17 -04:00
Jonathan
dad0e61f63
Fix for texinfo/miptex searching routines
...
surf flags now use the "native + extended" format that will eventually be used for brush contents. Q1 output seems identical, haven't tested Q2 yet.
2021-09-05 16:56:29 -04:00
Jonathan
90973e1198
Q2bsp VIS support ( #315 )
...
* Add QBSP - the BSP2-esque variant to Q2BSP - to bspinfo, and all of its accompanying structures.
* pass around ident, since Q2 needs it - admittedly it's a bit ugly, but it works for now.
conversion for QBSP
* Fix light
* _qbsp_ -> _qbism_
* Introduced bspversion_t, a struct that holds pertinent information about different BSP versions and also acts as a tagged pointer type for direct comparisons. This makes a lot of code paths simpler. I'm not entirely set on the wordings or usages yet, and maybe we can stuff boolean flags inside of them for different behaviors (for instance Q2, QBism and HL would have the "colored lightmap" boolean set to true, which replaces the check-for-all-three in the lightmapper)
Swapped arguments to ConvertBSPFormat to have the conversion target last instead of first
Finished rename of qbsp -> qbism
Tested:
- bspinfo on various BSPs I had laying around (Q1, Q2, Qbism)
- bsputil converting between Q2 and Qbism, and that they loaded in engine/roundtripped properly
Not tested:
- vis/rad on anything major (I still can't run rad due to embree being weird)
- bsputil conversion of Q1-esque maps
* Q2 VIS
Almost working, just in-game is not 100% functional
* PHS! Q2 VIS!
* Fix missing loadversion assignment
Fix missing \n
* Implement q2bsp -> mbsp visdata copy
fix sky lighting to use arghrad compat
2021-08-31 22:38:12 -06:00
Eric Wasylishen
968a840e47
light: make a certain degenerate face non-fatal
...
seen compiling ad_sepulcher.map with qbism q2 tools
2021-08-29 20:43:55 -06:00
Jonathan
eaa86c71c6
Q2BSP + QBSP ( #313 )
...
* Add QBSP - the BSP2-esque variant to Q2BSP - to bspinfo, and all of its accompanying structures.
* pass around ident, since Q2 needs it - admittedly it's a bit ugly, but it works for now.
conversion for QBSP
* Fix light
* _qbsp_ -> _qbism_
* Introduced bspversion_t, a struct that holds pertinent information about different BSP versions and also acts as a tagged pointer type for direct comparisons. This makes a lot of code paths simpler. I'm not entirely set on the wordings or usages yet, and maybe we can stuff boolean flags inside of them for different behaviors (for instance Q2, QBism and HL would have the "colored lightmap" boolean set to true, which replaces the check-for-all-three in the lightmapper)
Swapped arguments to ConvertBSPFormat to have the conversion target last instead of first
Finished rename of qbsp -> qbism
Tested:
- bspinfo on various BSPs I had laying around (Q1, Q2, Qbism)
- bsputil converting between Q2 and Qbism, and that they loaded in engine/roundtripped properly
Not tested:
- vis/rad on anything major (I still can't run rad due to embree being weird)
- bsputil conversion of Q1-esque maps
2021-08-23 09:56:33 -06:00
Eric Wasylishen
3b17e577b5
build: fix linking to embree under vcpkg
2021-08-22 13:48:53 -06:00
Eric Wasylishen
2ff31d012e
light: fix all rays missing on debian/ubuntu's embree builds
2021-08-05 20:11:44 -06:00
Eric Wasylishen
ff5572f97d
light: log number of bounce lights at the end of MakeBounceLights
2021-07-13 22:47:53 -06:00
Eric Wasylishen
ffe90adc1c
light: improve logging
2021-05-21 22:01:09 -06:00
Eric Wasylishen
6ecdd444ca
light: optimize surface light generation
2021-05-21 22:01:09 -06:00
Eric Wasylishen
3f00d2fd00
light: add fixme
2021-05-21 20:47:25 -06:00
Eric Wasylishen
fbde6065fa
light: raise max verts in SubdividePolygon to 64 (for surface lights)
2021-04-11 20:57:30 -06:00
Eric Wasylishen
fea7849315
common: preserve order of key/value pairs
2021-02-10 00:05:53 -07:00
Eric Wasylishen
fcf0ebbbfe
build: upgrade googletest
2021-02-07 14:42:12 -07:00
Eric Wasylishen
b5fcdec19e
cleanup: remove "byte" typedef
2021-02-07 14:02:35 -07:00
Eric Wasylishen
f12e87f2b7
light: build fix. Glass/fence textures will need to be fixed.
2021-02-01 02:20:02 -07:00
Eric Wasylishen
9124653156
common: move EntData_ function to common
2021-01-30 21:11:25 -07:00
Eric Wasylishen
a8be516bf4
light: embree3 port
2021-01-02 02:21:03 -07:00
Eric Wasylishen
94c30afac4
light: refactoring necessary to support embree3
2021-01-01 23:48:22 -07:00
Eric Wasylishen
cce0fd98f9
light: document some intersection vs occlusion trace choices
2021-01-01 22:58:09 -07:00
Eric Wasylishen
09623934e8
light: q2: change sky lighting logic: only emit light if: sky flag set, light flag set, value nonzero
...
TODO: may need to use "value" more than just checking for nonzero
2021-01-01 00:30:40 -07:00
Eric Wasylishen
3b629f3ce9
light: fix q2 lightstyles
2021-01-01 00:14:52 -07:00
Eric Wasylishen
00e41688c3
light: quake2: arghrad-compatible phong support
...
(set face "value" to the same non-zero number, have light flag unset)
2020-12-31 12:39:17 -07:00
Eric Wasylishen
d8b30c1080
light: don't throw an error on -v (passed by quark)
2020-12-29 16:40:09 -07:00
Eric Wasylishen
2d15d20410
light: q2: avoid black seams on geometry near sky
2020-12-29 15:58:40 -07:00
Eric Wasylishen
eb842ba165
light: arghrad compat: preliminary sky_surface implementation
2020-12-29 13:43:06 -07:00
Julian Priestley
1b714108cd
Add ability to set phong in worldspawn #267 ( #305 )
2020-11-30 00:42:42 -07:00
Eric Wasylishen
b6e6688ab4
light: use RTC_SCENE_HIGH_QUALITY. Fixes leaking through a joint
...
between 2 ceiling faces in a test case from 4LT
2020-08-20 18:02:38 -06:00
Eric Wasylishen
b35cb8eb7e
light: fixes for bjptools skip faces (which have no associated model)
2020-08-20 12:08:46 -06:00
Eric Wasylishen
5ca74ec8b3
light: don't apply AO when gathering light to bounce
2020-08-04 19:18:14 -06:00
Eric Wasylishen
263f6301a6
light: change switchable shadows to only block style 0
...
The interactions with switchable/flickering lights were bad, previously
(a switched-off light would become "on" after passing through a switched
off shadow)
2020-08-04 18:14:01 -06:00
Eric Wasylishen
a0e7f1eccb
light: refactor last commit's std::pair to a custom struct
2020-08-04 18:05:54 -06:00
Eric Wasylishen
1b53d458f4
light: support bounce and switchable shadows
...
fixes #251
2020-08-03 23:53:07 -06:00
Eric Wasylishen
03ed0697a4
light: add -litonly option for re-lighting a bsp without modifying it
2020-08-03 00:40:13 -06:00
Eric Wasylishen
4e9e94e7bd
ltface: GetLightContrib: handle light right on top of sample point
2020-06-25 00:03:38 -06:00
Eric Wasylishen
7b5824ad2b
build: mark embree as required
2020-01-29 23:10:17 -07:00
Eric Wasylishen
060c44bd02
light: move function
2019-12-28 22:47:15 -07:00
Eric Wasylishen
d6136c154d
light: add _light_alpha func_group key for making faces translucent for
...
light
2019-12-28 21:48:33 -07:00
Eric Wasylishen
2d3aa22242
light: add _nostaticlight key
2019-12-26 17:13:21 -07:00
Eric Wasylishen
22469857f0
light: rename new -light flag to -radlights, because it was clobbering
...
the existing -light flag for setting minlight
2019-12-11 01:17:53 -07:00
Eric Wasylishen
a4c1ce6ff6
qbsp, light: support _lightignore on func_detail/group
2019-12-09 00:09:20 -07:00
Eric Wasylishen
6b1bbf25ae
light: fix order of settings loading for last commit
2019-10-31 00:51:56 -06:00
Eric Wasylishen
b132152891
light: allow starting assigning switchable styles before default of 32
2019-10-31 00:40:23 -06:00
Eric Wasylishen
cf66248261
light: add update to use rtcOccluded1Ex missed in last commit
2019-10-28 01:19:20 -06:00
Eric Wasylishen
4456020b30
light: remove 65536 ray limit, fixes #276
2019-10-28 01:12:23 -06:00
Eric Wasylishen
79d3aa99de
qbsp: fix relative paths for .wad files
...
Fixes #279
2019-10-27 19:03:45 -06:00
Eric Wasylishen
99cdf3e4dd
cmdlib: another test for StripFilename
2019-10-27 17:44:41 -06:00
Eric Wasylishen
f7a55af513
common: add StripFilename test
2019-10-27 14:06:10 -06:00
Eric Wasylishen
dca61f8bc2
light: fix "unexpected geomID" error with bounce
2019-10-10 09:14:35 -06:00
Eric Wasylishen
d4cc19afc5
light: rename _dome to _sunlight2/_sunlight3
2019-10-09 20:24:18 -06:00
Eric Wasylishen
fa62b20603
light: add a limited version of Lunaran's "_dome" light feature
...
that only supports domes oriented up/down like sunlight2/3
2019-10-09 02:12:04 -06:00
Eric Wasylishen
70336339ca
light: fix "_suntexture" interaction with -bounce
2019-10-09 00:59:49 -06:00
Eric Wasylishen
f220b2f531
light: support "_suntexture" key on "_sun" "1" entities to limit them
...
to being cast from a specific sky texture.
Fixes #110
2019-10-09 00:47:39 -06:00
Eric Wasylishen
d2ecc73db3
light: support "style" / "targetname" on "_sun" "1" entities.
...
Fixes #253
2019-10-08 23:43:22 -06:00
Eric Wasylishen
af4deba237
light: print key name for Key length > MAX_ENT_KEY-1 error
2019-08-10 20:42:16 -06:00
Shpoike
89365949bc
Squashed commit of the following:
...
commit 8ca122916d
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 20:54:23 2019 -0600
fix linker error (radlights is in 2 .cpp files)
commit 8f06fc9c8d
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 20:53:57 2019 -0600
add clarification comment
commit 038a553fb0
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 20:30:27 2019 -0600
fix tests compilation
commit 02e94ec507
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 19:59:25 2019 -0600
hlbsp: use q_snprintf
commit 669a5a7911
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 19:56:21 2019 -0600
Reformat
commit 6653760982
Merge: 347a455 ac3553c
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 19:28:06 2019 -0600
Merge remote-tracking branch 'origin/master' into hlbsp
# Conflicts:
# include/qbsp/qbsp.hh
commit 347a455102
Author: Shpoike <Shpoike@users.noreply.github.com>
Date: Thu Mar 28 02:18:16 2019 +0000
Misc HLBSP tweaks
Added support for multiple -wadpath args.
Added -xwadpath (for eg valve/*.wad to avoid bloat/license issues).
Reworked hint brushes - the non-hint surfaces can use any name, just so long as they're not 'hint', for compat with zhlt.
Support 'bevel' and 'null' textures for compat with zhlt.
commit 7fb22c7367
Author: Shpoike <Shpoike@users.noreply.github.com>
Date: Thu Mar 28 01:59:42 2019 +0000
Support for halflife-style .rad surface lights (probably too bright, but the basics work).
commit 2da504fb62
Author: Shpoike <Shpoike@users.noreply.github.com>
Date: Thu Mar 28 01:56:27 2019 +0000
Add minus-prefixed textures for halflife's randomised-textures feature, instead of getting crash-to-desktop errors when the map is loaded.
commit 6366199bdb
Author: Shpoike <Shpoike@users.noreply.github.com>
Date: Thu Mar 21 04:51:24 2019 +0000
First attempt at hlbsp output.
2019-07-04 21:08:17 -06:00
Eric Wasylishen
5010dc92fb
light: bounce: also make shadow-casting bmodels bounce (unless they
...
opt-out with _bounce -1)
2019-05-12 16:39:06 -06:00
Eric Wasylishen
ba7bdf86a1
light: increase max sky distance to 1M
2019-04-20 12:27:27 -06:00
Eric Wasylishen
b343b9504a
qbsp, light: support _minlight_exclude on func_group, detail, etc.
2019-04-05 21:14:39 -06:00
Eric Wasylishen
707acbc9c5
light: fix lighting artifacts with _mirrorinside. Was missing a plane side
...
check, so the inside faces were incorrectly considered as neighbours
for distributing sample points onto.
Fixes #236
2019-03-25 20:24:39 -06:00
Eric Wasylishen
fd8b205dd2
light: fix fix_coord bug (for sampling fence textures) and
...
rename clamp_texcoord. Thanks to mxd for spotting the bug.
Fixes #260
2019-03-24 23:43:47 -06:00
Eric Wasylishen
cf4a491de8
light: fix black faces with sunlight pointing straight down
...
The angle < 0 check was too aggressive because the sun vector
didn't end up being exactly Z=-1, it had a bit of X component.
2019-03-10 18:27:22 -06:00
Eric Wasylishen
2df839cfc2
light: Add "_bounce" "-1" to disable bouncing for a func_detail/etc.
2019-01-22 00:02:46 -07:00
Eric Wasylishen
fa06716545
common: make VecStrf/VecStr threadsafe
2018-07-24 00:18:43 -06:00
Eric Wasylishen
c6386c8ec0
light: fix format string warnings
2018-07-23 23:12:03 -06:00
MaxED
07447a633e
Rewritten parts of surface light logic. Should resemble qrad3 looks a bit more now...
...
Added "surflightscale", "surflightbouncescale" and "surflightsubdivision" cmdline/worldspawn settings.
Fixed: a face should not be skipped when it has both sky and nodraw texinfo flags.
Fixed some non-windows compilation errors.
2018-05-25 14:59:22 +03:00
MaxED
520ad485a4
Merge branch 'master' of https://github.com/ericwa/ericw-tools into q2-surfacelights
2018-05-08 15:50:45 +03:00
MaxED
0661098bc5
Quake 2 support: area lights, palette/texture loading, transparent/sky/fence face flags.
2018-05-08 15:50:01 +03:00
MaxED
00e60f923e
Q2 doesn't need .lit files ( #211 )
...
* Ignore embree
* Don't ignore embree...
* Q2 doesn't need .lit files.
Also fixed a typo.
2018-04-14 15:43:46 -07:00
Eric Wasylishen
f663792307
light: fix surface lights crash
2018-04-05 22:32:22 -06:00
Eric Wasylishen
339c1d0219
light: add area weighting to phong calculation
2018-01-31 22:52:30 -07:00
Eric Wasylishen
cae501972e
light: _phong_angle_concave support
2018-01-30 01:48:25 -07:00
Eric Wasylishen
6b14e166b8
light: make GLM_InterpolateNormal return failure on degenerate input
2018-01-28 02:19:09 -07:00
Eric Wasylishen
c3183429fb
light: fix for inalid_texture_axes.map
2018-01-15 20:33:52 -07:00
Eric Wasylishen
d10dec1803
light: make GLM_PolyCentroid accept degenerate faces (todo: must rename these)
2018-01-12 00:36:12 -07:00
Eric Wasylishen
82e3aef283
light: add FacePairConcavity
2018-01-11 21:57:48 -07:00
Eric Wasylishen
ebb508c7db
light: remove transparent lightmaps spam
2017-12-28 12:50:32 -07:00
Eric Wasylishen
3675805f54
light: add some disabled code
2017-12-11 00:40:41 -07:00
Eric Wasylishen
91abc7362d
light: add flood-filling to fix black seams in detailwall.map when no -extra/-extra4 used
2017-12-11 00:39:04 -07:00
Eric Wasylishen
701589ffe9
light: rewrite -highlightseams code
2017-12-11 00:30:11 -07:00
Eric Wasylishen
d31d3621bc
light: add MakePlane function
2017-12-10 21:28:35 -07:00
Eric Wasylishen
6c529fb0c3
light: disable bad test
2017-12-10 17:59:39 -07:00
Eric Wasylishen
fb18881a5b
light: fix color->greyscale conversion to be compatible with MarkV
...
Unfortunately this means .bsp's released with the previous code
will look different in MarkV.
2017-12-10 17:27:52 -07:00
Eric Wasylishen
33bc1ee05e
light: wip work on CalcPointNormal
2017-12-06 23:38:59 -07:00
Eric Wasylishen
4c86676b6f
light: NeighbouringFaces_new: make sure returned edges are orderer right
2017-12-06 00:39:14 -07:00
Eric Wasylishen
71d9f8ce8a
light: move NeighbouringFaces_new to phong.cc
2017-12-06 00:23:21 -07:00
Eric Wasylishen
69879b4104
light: add -highlightseams flag
2017-12-05 15:09:34 -07:00
Eric Wasylishen
cf9344f684
light: try to make -debugneighbours more useful
2017-12-05 00:34:32 -07:00
Eric Wasylishen
b8b17123d1
light: don't set up bounce lights in debug modes
2017-12-04 23:37:43 -07:00
Eric Wasylishen
d9f112a97f
light: add -phongdebug_obj flag
2017-11-25 23:12:23 -07:00
Eric Wasylishen
d4d2d537eb
light: split GLM_PolyRandomPoint into precomputed portion
...
take uniform random params explicitly
2017-11-24 18:01:18 -07:00
Eric Wasylishen
92bacbe7e1
light: FacesOverlappingEdge: return the edge that overlaps
2017-11-24 14:22:54 -07:00
Eric Wasylishen
8ce7a682b1
light: add -debugneighbours
2017-11-23 23:45:15 -07:00
Eric Wasylishen
7170aac1c3
light: FacesOverlappingEdge
2017-11-23 23:45:05 -07:00
Eric Wasylishen
88ee157b97
mathlib: add LinesOverlap function
2017-11-23 23:45:00 -07:00
Eric Wasylishen
501fb9ee40
light: add FacesUsingVert
2017-11-19 23:47:29 -07:00
Eric Wasylishen
b85d627c8f
change branding to ericw-tools
2017-10-19 16:35:37 -06:00
Eric Wasylishen
41527a1c39
light: don't discard near-black lightmaps in q2
2017-10-03 18:16:28 -06:00
Eric Wasylishen
2dc22b7088
common: add loadversion to mbsp_t
2017-10-03 14:17:42 -06:00
Eric Wasylishen
71d675ce09
light: factor out TEX_SPECIAL tests to Face_IsLightmapped
2017-10-03 14:10:57 -06:00
Eric Wasylishen
dff71edfe9
light: very early q2 support. half of the faces seem to be saved without lightmaps for some reason
2017-10-03 00:33:14 -06:00
Eric Wasylishen
8813d272cb
common, light, vis: change from bsp2_t to mbsp_t
2017-10-01 22:32:20 -06:00
Eric Wasylishen
f7635162c9
common: bspfile refactoring
2017-10-01 20:51:16 -06:00
Eric Wasylishen
41b85db84d
light: add comment about last commit.
2017-09-30 21:43:00 -06:00
Eric Wasylishen
0a8a25b95c
Revert "light: for curved surfaces, don't reject hits when the dot product of the surface point normal and surface-point-to-light vector is < 0, since "anglescale" will typically boost the angle factor to 0.5"
...
This reverts commit 26c5f65f4e .
2017-09-30 20:07:27 -06:00
Eric Wasylishen
993e8fb590
light: don't mark sample points inside semi-transparent shadow casters as occluded.
...
fixes #178
2017-09-23 20:31:57 -06:00
Eric Wasylishen
7252ba7841
light: hack -soft to give better results on https://github.com/ericwa/tyrutils-ericw/issues/171
2017-09-16 17:47:40 -06:00
Eric Wasylishen
26c5f65f4e
light: for curved surfaces, don't reject hits when the dot product of the surface point normal and surface-point-to-light vector is < 0, since "anglescale" will typically boost the angle factor to 0.5
...
fixes https://github.com/ericwa/tyrutils-ericw/issues/172
2017-09-16 17:10:48 -06:00
MaxED
d86913aaaf
light: fixed "_sun" light direction was calculated incorrectly when using a light without a target and mangle
2017-08-27 14:20:43 -06:00
MaxED
15871d2531
light: add _spotlightautofalloff
2017-08-27 14:20:03 -06:00
MaxED
604aa92e6f
light: remove dead code
2017-08-27 14:08:18 -06:00
MaxED
fe1e040cd1
Added "_falloff" light property. Allows to set light falloff in map units.
2017-08-23 15:00:32 -06:00
Eric Wasylishen
1d12d6ab4e
Support multiple suns with "_sun" "1" entities.
...
Drop support for overriding properties of these entities with worldspawn keys.
2017-08-23 13:37:59 -06:00
Eric Wasylishen
e5ac4da8a2
Convert indentation to spaces
2017-08-23 12:43:29 -06:00
MaxED
97ab6fcdab
Added arghrad-style sun setup using light entity.
2017-08-23 14:18:10 +03:00
Eric Wasylishen
c8ac9d2670
light: print position of degenerate faces during phong shading
2017-07-30 12:01:00 -06:00
Eric Wasylishen
c0b88b7e99
light: fixes for degenerate faces
2017-07-05 20:43:47 -06:00
Eric Wasylishen
c5370b16eb
light: update -help text
2017-06-27 19:31:19 -06:00
Eric Wasylishen
6f07303504
light: implement _shadowworldonly, fix _shadowself which was broken
2017-06-27 14:48:27 -06:00
Eric Wasylishen
fef1142808
light: add shadowworldonlylist
2017-06-27 13:13:32 -06:00
Eric Wasylishen
78ed70e2a5
light: modelinfo_t: take bsp param
2017-06-27 12:59:17 -06:00
Eric Wasylishen
4dcfc12f50
light: refactor _shadowself handling
2017-06-26 17:42:50 -06:00
Eric Wasylishen
563307445d
light: fix logic for switching lightmaps for switchable shadows
2017-06-26 14:20:15 -06:00
Eric Wasylishen
6e707130be
light: rename dynamic shadow stuff to switchshadstyle" for QC,
...
and "_switchableshadow" for the mapper.
2017-06-26 13:41:24 -06:00
Eric Wasylishen
b71f769c0a
light: experimental support for switchable bmodel shadows:
...
Current specs/limitations:
- only supported for sunlight and regular lights
- enabled with "_dynamicshadow" "1"
- writes the lightstyle to a "dynshadowstyle" entity key, hardcoded
- only handles one dynamic occluder for a given lightmap sample
- styled lights passing through a dynamic occluder turn non-styled
2017-06-25 20:06:46 -06:00
Eric Wasylishen
ce8ad6c384
light: handle iffy faces
2017-06-15 13:43:42 -06:00
Eric Wasylishen
2c0e58e628
mathlib: add test for FractionOfLine with degenerate line
2017-06-15 03:30:48 -06:00
Eric Wasylishen
42af888f3d
testlight: add failing test for ClosestPointOnLineSegment_Degenerate
2017-06-15 03:30:35 -06:00
Eric Wasylishen
3fc72e37d1
build: fix path for embree .dylibs/.so's
2017-06-10 22:00:49 -06:00
Eric Wasylishen
ea099775ef
qbsp, light: allow _shadow -1 to disable shadows from func_detail
2017-06-05 14:01:12 -06:00
Eric Wasylishen
197697ca73
light: fix black rotators
2017-06-05 14:00:50 -06:00
Eric Wasylishen
66bc8209eb
light: loosen point off plane assertion
2017-06-05 14:00:16 -06:00
Eric Wasylishen
b096019237
build: update mac and linux for embree 2.15.0
2017-04-28 15:26:40 -06:00
Eric Wasylishen
f0935f1f93
build: fix light CMakeLists.txt
2017-04-28 14:07:36 -07:00
Eric Wasylishen
e0564e8c2a
common: mathlib: don't need #define ANGLEEPSILON
2017-04-26 14:29:07 -06:00
Eric Wasylishen
ca58e90e15
common: remove EQUAL_EPSILON from mathlib.hh
2017-04-26 14:25:55 -06:00
Eric Wasylishen
902c45c946
all: make VectorCompare take an explicit epsilon
2017-04-26 14:20:45 -06:00
Eric Wasylishen
15cc98eb27
common: move SignedDegreesBetweenUnitVectors from qbsp, add test
2017-04-26 14:04:33 -06:00