Commit Graph

1050 Commits

Author SHA1 Message Date
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
Eric Wasylishen b1f86d7ac1 common: implement buildMeshFromBSP 2017-04-24 02:01:16 -06:00
Eric Wasylishen 5eb4fd8790 common: make Face_Plane_E return a plane3f 2017-04-24 01:54:25 -06:00
Eric Wasylishen 0a64905df8 common: fix msvc build errors 2017-04-24 00:34:37 -06:00
Eric Wasylishen 68b084a6c3 replace glm with qvec 2017-04-24 00:26:49 -06:00
Eric Wasylishen 122b5ff51c common: qmat: use NaN to indicate no inverse 2017-04-24 00:19:47 -06:00
Eric Wasylishen 7887318def common: move vec_from_mangle and mangle_from_vec to mathlib 2017-04-23 19:31:00 -06:00
Eric Wasylishen 881f12da52 common: add test for RotateFromUpToSurfaceNormal 2017-04-23 19:28:05 -06:00
Eric Wasylishen 4da864707c light: remove use of glm::quaternion 2017-04-23 17:58:24 -06:00
Eric Wasylishen eeb00bf74c common: tidy qmat 2017-04-23 17:41:19 -06:00
Eric Wasylishen efd48b48f5 common: add test for matrix inverse 2017-04-23 16:08:58 -06:00
Eric Wasylishen 8a4d1ff218 common: add 4x4 (from mesa) and 2x2 matrix inverse 2017-04-23 15:58:51 -06:00
Eric Wasylishen 0358bc07b8 common: mesh_t: first draft of tjunc fixing 2017-04-23 02:06:20 -06:00
Eric Wasylishen 3f067e001a common: add DistToLineSegment 2017-04-23 02:05:19 -06:00
Eric Wasylishen 56513cdb8e common: add DistToLine 2017-04-23 01:39:59 -06:00
Eric Wasylishen b8f5a4f8e1 common: change mesh_t to use qvec3f 2017-04-22 20:39:50 -06:00
Eric Wasylishen 4996796944 light: reduce size of mathlib.octree_basic perf test 2017-04-22 20:36:03 -06:00
Eric Wasylishen 28081f50c6 common: make float/double versions of aabb3 2017-04-22 15:11:41 -06:00
Eric Wasylishen ee7181521d fix build 2017-04-22 13:54:12 -06:00
Eric Wasylishen c1189abccd common: split up new octree/mesh/aabb/qvec stuff 2017-04-22 13:29:32 -06:00
Eric Wasylishen 60418ce9a7 light: add maximum switchable lights to log message 2017-04-22 11:53:55 -06:00
Eric Wasylishen f4c9b6c1a7 mathlib: expand qvec constructors 2017-04-20 12:32:37 -06:00
Eric Wasylishen 814e1675c9 test_light.cc: add missing include 2017-04-19 19:59:20 -06:00
Eric Wasylishen 5b63ddbeba mathlib: octree, aabb_t rework 2017-04-19 14:02:30 -06:00
Eric Wasylishen 055b5061f1 light: start a mesh_t class 2017-04-19 14:02:19 -06:00
Eric Wasylishen a0a7021707 light: refactor position_t from tuple to class 2017-03-29 16:09:49 -06:00
Eric Wasylishen 10386581a6 light: make bounce of styled lights opt in with "_bouncestyled" worldspawn key 2017-03-27 16:44:04 -06:00
Eric Wasylishen f957cba775 light: experimental bounce version using final gather 2017-03-21 21:01:09 -06:00
Eric Wasylishen b911c70372 light: do bounce after phong 2017-03-19 14:20:47 -06:00
Eric Wasylishen 30d9a53341 light: move FractionOfLine to mathlib 2017-03-18 23:26:16 -06:00
Eric Wasylishen 3e7b4448c1 mathlib: add GLM_PolyArea 2017-03-18 23:26:10 -06:00
Eric Wasylishen 15dd49e093 light: fix last commit 2017-03-18 17:04:22 -06:00
Eric Wasylishen 9c82068160 light: phong: guard against accessing phong caches before they are built 2017-03-18 16:43:22 -06:00
Eric Wasylishen 880ad3b381 bpsutil, common, light, vis: bounds check bsp->dfaces access 2017-03-18 16:31:52 -06:00
Eric Wasylishen 29884e2b4a bsputils: add bounds checking to Face_GetNum 2017-03-18 16:17:01 -06:00
Eric Wasylishen 8a83e3d351 light: BounceLightsForFaceNum(): return indices so we have 1 main copy of the bounce lights 2017-03-15 13:22:43 -06:00
Eric Wasylishen c2c3e915e6 light: fix leak of lightsurf->realfacenums 2017-03-15 13:22:35 -06:00
Eric Wasylishen 18b75ec904 light: rewrite -bouncelightsdebug to handle patches smaller than a face 2017-03-15 10:59:40 -06:00
Eric Wasylishen 33fbe56e12 light: save poly edge planes for bouncelights 2017-03-15 10:59:31 -06:00
Eric Wasylishen 1d66039b2c light: save poly for bouncelights 2017-03-15 10:59:25 -06:00
Eric Wasylishen 154158ddba light: BounceLightsForFaceNum: avoid an unnecessary std::vector copy 2017-03-15 10:59:16 -06:00
Eric Wasylishen b8f015d452 light: Texture_AvgColor: return glm vector 2017-03-12 15:56:46 -06:00
Eric Wasylishen 686696c362 light: Palette_GetColor: return glm vector 2017-03-12 15:41:52 -06:00
Eric Wasylishen 102bdc49f0 light: drop IntersectSingleModel api 2017-03-12 15:06:07 -06:00
Eric Wasylishen 0eb6864744 mathlib: add GLM_PolyRandomPoint 2017-03-12 12:58:36 -06:00
Eric Wasylishen 63e8f42c87 light: ray stream api: allow getting hit face 2017-03-07 13:37:52 -07:00
Eric Wasylishen 553f02d582 light: restore performance of bounce lighting 2017-03-06 22:50:20 -07:00
Eric Wasylishen 8e24cc764d Revert "build: force a test failure"
This reverts commit f45a1a715d.
2017-03-06 14:01:56 -08:00
Eric Wasylishen e314a3547f light: vs2013 doesn't support constexpr 2017-03-06 13:54:47 -08:00
Eric Wasylishen f45a1a715d build: force a test failure 2017-03-06 13:48:48 -07:00
Eric Wasylishen 48a6314dfb light: bounce styled lights 2017-03-05 20:05:34 -07:00
Eric Wasylishen bc5d293072 light: try moving rpath setting in CMakeLists.txt 2017-03-05 13:21:29 -07:00
Eric Wasylishen 461afbc15d light: remove ltface2.cc/hh 2017-03-01 13:20:09 -07:00
Eric Wasylishen b163f766bb light: drop unneeded light2.cc/hh 2017-02-27 19:10:55 -07:00
Eric Wasylishen 34947ced9c light: delete RotationAboutLineSegment 2017-02-27 19:06:28 -07:00
Eric Wasylishen 69d5669773 light: delete some dead code 2017-02-27 17:43:56 -07:00
Eric Wasylishen d513f43540 light: remove more tuple initializer lists 2017-02-27 12:40:03 -07:00
Eric Wasylishen 1c80f8c8d8 light: don't use initializer lists to construct tuples (for gcc) 2017-02-27 12:35:05 -07:00
Eric Wasylishen ea382c50f2 light: don't use constexpr (for vs2013) 2017-02-27 12:33:03 -07:00
Eric Wasylishen 97a00f0f41 light: avoid recomputing things in CalcPointNormal 2017-02-26 22:58:08 -07:00
Eric Wasylishen 3d69845b71 light: rewrite Face_EdgeIndexSmoothed to use faceToEdgeMap, and also return non-phong shaded faces on the same plane 2017-02-26 00:43:27 -07:00
Eric Wasylishen 410bec9d62 light: wip: make CalcPointNormal also position the point 2017-02-26 00:28:23 -07:00
Eric Wasylishen 6c946038ee light: move edgeToFaceMap_t stuff to phong.hh/cc 2017-02-25 14:44:59 -07:00
Eric Wasylishen abf0c13b2d light: cleaning CalcPointNormal 2017-02-25 13:31:56 -07:00
Eric Wasylishen 22b5684c23 light: save the actual face number of each sample point 2017-02-24 21:05:59 -07:00
Eric Wasylishen a183be75d7 light: minor tidying of CalcPoints ifdef 2017-02-24 14:11:47 -07:00
Eric Wasylishen 278c5f5b2b light: LightFace_OccludedDebug: clear occluded flag in this debug mode 2017-02-24 00:24:29 -07:00
Eric Wasylishen 29c7f79a0b light: misc stuff 2017-02-23 20:53:10 -07:00
Eric Wasylishen d88581e2da light: add GLM_ProjectPointOntoPlane 2017-02-22 01:40:58 -07:00
Eric Wasylishen 64e8090326 light: contributing faces: don't contribute if angle btn faces is 90 degrees or more 2017-02-22 01:40:53 -07:00
Eric Wasylishen cafadddb62 light: expose faceextents_t in header 2017-02-21 22:59:40 -07:00
Eric Wasylishen 64dba663e0 light: faceextents_t: add another conversion 2017-02-21 21:19:15 -07:00
Eric Wasylishen 8ab0ef9687 mathlib: redo bilinear interpolation 2017-02-21 21:19:07 -07:00
Eric Wasylishen b0662de90f light: add some stuff to faceextents_t 2017-02-21 21:18:27 -07:00
Eric Wasylishen 8067e0fa45 mathlib: add PointsAlongLine 2017-02-21 21:18:16 -07:00
Eric Wasylishen b31ae5d243 light: ltface.cc: use glm namespace 2017-02-20 14:39:56 -07:00
Eric Wasylishen 6c9f9f9727 light: fix minlight handling 2017-02-20 14:37:46 -07:00
Eric Wasylishen c17c33a71c light: rewrite blur 2017-02-20 14:37:41 -07:00
Eric Wasylishen 7c0e8f9b24 light: fix -extra4 downsampling to use occlusion values 2017-02-20 14:37:36 -07:00
Eric Wasylishen 418d83cbeb light: skip raytracing occluded points 2017-02-20 14:36:50 -07:00
Eric Wasylishen f890d739d3 light: improving faceextents_t 2017-02-20 14:32:37 -07:00
Eric Wasylishen d40c6b9912 mathlib: add bilinear interpolation 2017-02-20 14:32:31 -07:00
Eric Wasylishen 21fa5c5949 Revert "light: rewrite -debugface picking code"
This reverts commit 20c92fc676.
2017-02-16 15:55:13 -07:00
Eric Wasylishen ea9c456367 Revert "light: Face_Pick: make more lenient"
This reverts commit 5292728fe3.
2017-02-16 15:55:01 -07:00
Eric Wasylishen d811d33d22 light: add slightly concave poly test 2017-02-16 15:47:45 -07:00
Eric Wasylishen 7294f06ccc light: disable EdgePlanesOfNonConvexPoly test for now 2017-02-16 15:47:26 -07:00
Eric Wasylishen 6ea56b987a light: fix mangle_from_vec 2017-02-15 00:14:51 -07:00
Eric Wasylishen 365c143039 light: use mangle_from_vec in CalcPoints_Debug to dump point normal 2017-02-14 23:52:39 -07:00
Eric Wasylishen 77baa2b90b light: fix mangle_from_vec test epsilon 2017-02-14 23:50:05 -07:00
Eric Wasylishen 5292728fe3 light: Face_Pick: make more lenient 2017-02-14 23:46:10 -07:00
Eric Wasylishen 6f66473836 light: add mangle_from_vec 2017-02-14 23:45:38 -07:00
Eric Wasylishen e8e5df0f6e light: SetupContributingFaces_R: handle a type of invalid face that showed up in ad_swampy.bsp 2017-02-14 20:52:27 -07:00
Eric Wasylishen bef9dd63d2 common: GLM_MakeInwardFacingEdgePlanes: handle non-convex poly 2017-02-14 20:51:36 -07:00
Eric Wasylishen 05e144a5ca light: MakeEdgeToFaceMap: handle invalid faces with repeating vertices 2017-02-14 20:51:31 -07:00
Eric Wasylishen 20c92fc676 light: rewrite -debugface picking code 2017-02-13 13:33:11 -07:00
Eric Wasylishen 2a17b4bccf build fix 2017-02-12 11:54:52 -07:00
Eric Wasylishen 3a20d5410b common: add shrink and clip poly funcs 2017-02-12 00:20:38 -07:00
Eric Wasylishen 7300aacdff light: Add -debugoccluded 2017-02-11 22:22:26 -07:00
Eric Wasylishen 3c86c3d707 light: fix SetupContributingFaces_R not working on non-phong shaded faces that share a plane 2017-02-11 16:00:10 -07:00
Eric Wasylishen 1957fb1489 light: expose WorldToTexCoord_HighPrecision() in header 2017-02-11 15:45:50 -07:00
Eric Wasylishen 69ebb0c7a9 light: tidy WorldToTexSpace 2017-02-11 15:45:45 -07:00