Commit Graph

447 Commits

Author SHA1 Message Date
Eric Wasylishen 4e5a7a79b1 light: refactor and make option parsing safer 2016-06-08 23:39:38 -06:00
Eric Wasylishen f29c8fa0f6 light: clamp bouncecolorscale to [0,1] 2016-06-08 22:57:52 -06:00
Eric Wasylishen dbae785404 light: refactor sunlight handling so command-line options can be adde 2016-06-08 22:08:00 -06:00
Eric Wasylishen 0e5438ab14 light: fix saving bogus lightmaps for non-lightmapped faces when -bounce is in use 2016-06-07 20:26:19 -06:00
Eric Wasylishen b33cd040f7 light: add a sanity check for writing lightmaps for skip/trigger/sky faces. still needs to be fixed. 2016-06-07 17:42:53 -06:00
Eric Wasylishen d1c4470fc1 light: add "-novis" to help listing 2016-06-04 22:22:22 -06:00
Eric Wasylishen 285e0f84af light: add warning for "_project_texture" missing texture 2016-06-01 20:35:55 -06:00
Eric Wasylishen ecea00cec2 light: tweaks to usage text 2016-06-01 17:38:30 -06:00
Eric Wasylishen 26fd4b6d28 light: tidy log message 2016-06-01 16:34:35 -06:00
Eric Wasylishen 72e07f82fb light: print message when visdata in use 2016-06-01 16:04:18 -06:00
Eric Wasylishen 45daf59df7 light: improve usage message. recognize -help flag. show usage when an unknown command given. 2016-06-01 13:55:41 -06:00
Eric Wasylishen 3e8d9b7dfd light: warn about gate > 1 2016-05-31 18:23:37 -06:00
Eric Wasylishen 826f44d8cf light: disable "interior verts" spam 2016-05-31 18:19:35 -06:00
Eric Wasylishen 2d0ede48cf light: FixLightOnFace: only check against model 0, otherwise triggers etc. are wrongly considered to block lights 2016-05-31 18:18:25 -06:00
Eric Wasylishen 5303dae5fc light: CalcPoints: reduce distance to 0.25 2016-05-30 20:53:52 -06:00
Eric Wasylishen dba4739444 light: make Light_PointInSolid non-static 2016-05-30 20:53:05 -06:00
Eric Wasylishen 43ab4171d7 light: store bsp in lightsurf for convenience 2016-05-30 20:52:56 -06:00
Eric Wasylishen 280aadfbd8 light: add -debugface option for debugging CalcPoints 2016-05-30 00:15:07 -06:00
Eric Wasylishen 0b8ec4d169 light: CalcPoints: increase distance to pull back from obstructions to from 0.1 to 1.0.
fixes room corner seams on calcpointstest.map
2016-05-29 17:16:11 -06:00
Eric Wasylishen 7f182cf107 light: lit water: receive light from either side of the face 2016-05-29 16:01:31 -06:00
Eric Wasylishen 0b5786ebef light: remove hack for lights on faces, now that we correct them properly 2016-05-28 15:18:58 -06:00
Eric Wasylishen 329d9ee512 light: correct lights directly on faces 2016-05-28 15:18:11 -06:00
Eric Wasylishen 92a9369bbc light: remove hack for lights directly on faces, was breaking phong shading. 2016-05-28 13:38:12 -06:00
Eric Wasylishen 496fc4d52e light: phong: reduce epsilon used for barycentric coordinates test. fixes interpolation on testphongtjunc.map 2016-05-27 22:06:17 -06:00
Eric Wasylishen a63a96e877 light: update usage text 2016-05-27 20:45:44 -06:00
Eric Wasylishen 21a4fd5287 light: allow disabling bounce on command line 2016-05-27 18:47:12 -06:00
Eric Wasylishen bb19618763 light: add -phong 0 flag to force phong shading to be disabled 2016-05-27 18:18:50 -06:00
Eric Wasylishen a4445bdd77 light: allow force-disabling dirtmapping at the command line 2016-05-27 17:52:56 -06:00
Eric Wasylishen af6b4aa375 light: remove useless -no_parse_escape_sequences flag 2016-05-27 15:51:33 -06:00
Eric Wasylishen b17e345087 light: remove broken -fence feature 2016-05-27 15:50:52 -06:00
Eric Wasylishen d524b4c3ad light: fix parsing of command-line argument to -soft and -anglesense, when those are the last params 2016-05-27 15:43:24 -06:00
Eric Wasylishen 30673903ed light: refactor dirt*SetOnCmdline variables 2016-05-27 15:22:32 -06:00
Eric Wasylishen 35e92abfcf light: don't cast indirect light in phong/dirtdebug mode 2016-05-27 12:41:30 -06:00
Eric Wasylishen ca0f0448fe light: only allow one debug mode at a time 2016-05-27 12:25:51 -06:00
Eric Wasylishen 7687e4a927 light: fix normal interpolation outside the triangle when there are multiple choices of an edge to search across. 2016-05-21 20:29:17 -06:00
Eric Wasylishen e290d844bf light: only shadow-casting faces generate bounce lights 2016-05-20 13:34:30 -06:00
Eric Wasylishen 11ea23f6f2 light: don't delete litfile for -onlyents compile 2016-05-20 12:20:39 -06:00
Eric Wasylishen 55df37941c light: add -bouncecolorscale flag 2016-05-20 12:00:57 -06:00
Eric Wasylishen 4e69914cb2 light: skip dirt on bouncedebug 2016-05-20 02:18:14 -06:00
Eric Wasylishen 45010089f3 light, common: move WindingFromFace to bspfile.c/h 2016-05-19 15:07:31 -06:00
Eric Wasylishen fff12697e5 light: move DicePatch to polylib.c 2016-05-19 15:03:21 -06:00
Eric Wasylishen a0f636a69a light: bounce: refactor to do in a second lighting pass 2016-05-19 02:53:18 -06:00
Eric Wasylishen 8db1f56a20 light: add Lightmap_ClearAll util function 2016-05-19 02:35:17 -06:00
Eric Wasylishen 2c73da0856 light: fix dirtmapping to use interpolated normals 2016-05-15 15:51:51 -06:00
Eric Wasylishen a5356c161c light: bounce: scale bounced light by texture color 2016-05-14 20:51:21 -06:00
Eric Wasylishen 199cba7349 light: few optimizations to bounce code 2016-05-13 23:16:36 -06:00
Eric Wasylishen f967b89cea light: remove broken hitpoint feature of TraceLine 2016-05-11 16:46:51 -06:00
Eric Wasylishen d0480049e8 light: move TRACE_HIT_ constants to trace.c 2016-05-11 16:30:26 -06:00
Eric Wasylishen 7bd93cce37 light: move private BSP tracing stuff from light.h to trace.c 2016-05-11 16:23:02 -06:00
Eric Wasylishen 1ed000cbde light: move DirtTrace to trace.c 2016-05-11 16:16:49 -06:00
Eric Wasylishen b1691cf10a light: don't do bounce lighting when dirtdebug/phongdebug are in use 2016-04-30 01:04:53 -06:00
Eric Wasylishen 5e7e409966 light: bounce: remove some dead code 2016-04-30 01:00:57 -06:00
Eric Wasylishen bd5a15fc82 Revert "light: bounce: handle 0 dist between bounce light and surface point"
This reverts commit d3b6adb955.
2016-04-30 00:59:51 -06:00
Eric Wasylishen d3b6adb955 light: bounce: handle 0 dist between bounce light and surface point 2016-04-30 00:44:01 -06:00
Eric Wasylishen f446ba1ddf light: bounce: use both bounce light normal angle, and receiving surface normal angle to scale bounced light 2016-04-30 00:26:08 -06:00
Eric Wasylishen a283a623ae light: bounce: refactoring 2016-04-30 00:24:50 -06:00
Eric Wasylishen 3fb8b7d1e5 light: delete -lightturb and related flags for generating lightmaps for TEX_SPECIAL textures.
mankrip's lit water implementation relies on qbsp splitting water, so this code is not needed.
2016-04-29 23:23:28 -06:00
Eric Wasylishen 6ba2d99782 light: bounce: add some debug code 2016-04-29 22:52:33 -06:00
Eric Wasylishen bd68abad32 light: add LightWorld log header 2016-04-29 22:51:32 -06:00
Eric Wasylishen 99f6451741 light: bounce: don't generate bounce lights for "skip" texture 2016-04-29 22:43:42 -06:00
Eric Wasylishen ae082fccdb light: never generate lightmaps for "skip" texture 2016-04-29 22:43:12 -06:00
Eric Wasylishen b6fb5ecca2 light: fix bouncedebug 2016-04-29 21:21:47 -06:00
Eric Wasylishen afc43b0c55 light: make some functions non-static so they show up in profiling 2016-04-29 20:33:15 -06:00
Eric Wasylishen 83a5ef303d light: bounce: refactor light culling for speed 2016-04-29 18:43:57 -06:00
Eric Wasylishen 72c47c1b56 light: bounce: refactor a bit 2016-04-29 18:11:14 -06:00
Eric Wasylishen 6fe504760c light: don't compute regular lighting if we are doing -bouncedebug 2016-04-29 13:27:57 -06:00
Eric Wasylishen 9271a405d1 light: bounce: fix scaling of sunlight brightness 2016-04-29 13:06:40 -06:00
Eric Wasylishen ebf04ceb24 light: bounce: multithread MakeBounceLights 2016-04-29 11:40:10 -06:00
Eric Wasylishen 2bca34265c light: use vis acceleration for bounce lights 2016-04-29 11:27:02 -06:00
Eric Wasylishen 6459e53316 light: bounce: force a "gate" like cutoff for bounce lights 2016-04-28 23:18:49 -06:00
Eric Wasylishen 430c4b39b7 light: bounce: only scale by sending surface normal, not receiving.. seems to look better 2016-04-27 21:16:48 -06:00
Eric Wasylishen 713b92dcb5 light: preliminary bounce implementation 2016-04-27 19:19:29 -06:00
Eric Wasylishen 007696a734 light: fix face normal smoothing condition 2016-04-27 16:44:40 -06:00
Eric Wasylishen d426c8d9da light: some setup for bounced lighting 2016-04-26 15:14:22 -06:00
Eric Wasylishen e77c10d31d light: build polylib 2016-04-26 15:11:43 -06:00
Eric Wasylishen f65565ba62 light: don't do light behind plane test for curved surfaces. I broke lighting on pipes by changing this recently 2016-04-26 01:47:46 -06:00
Eric Wasylishen 11d7c4c44c light: fix build on travis 2016-04-26 01:13:42 -06:00
Eric Wasylishen a9ea9891bf light: calculate normals before correcting points, better results in concave areas 2016-04-26 01:10:15 -06:00
Eric Wasylishen c58528499d light: when interpolating a normal that lies outside of a face, recursively look it up on adjacent faces 2016-04-26 00:29:50 -06:00
Eric Wasylishen 8c28413a31 light: obj export: only export model 0 2016-04-26 00:22:26 -06:00
Eric Wasylishen 239d9c14f2 light: fix vis acceleration on bmodels 2016-04-24 19:17:27 -06:00
Eric Wasylishen f3132f342c light: Mod_LeafPvs: return whether we found a real pvs 2016-04-24 18:24:41 -06:00
Eric Wasylishen 318fc23481 light: implement "_bleed" light key.
"_bleed" "1" on a light entity skips the test that a light is on the front side of a face. useful for special effects.
2016-04-23 22:21:59 -06:00
Eric Wasylishen b6116ff42a light: don't skip light-behind-plane test for phong shaded faces anymore 2016-04-23 00:26:07 -06:00
Eric Wasylishen 824c1b613c light: fix memory leak 2016-04-22 21:21:02 -06:00
Eric Wasylishen 5ac18e5c6f light: index some PVS info at startup 2016-04-22 20:11:59 -06:00
Eric Wasylishen 5000f9d352 light: only do sunlight raytracing in leafs that can see sky 2016-04-22 19:27:17 -06:00
Eric Wasylishen d309aa02b0 light: refactor CalcPvs to calculate the face pvs in a cleaner way 2016-04-22 19:15:49 -06:00
Eric Wasylishen 3b7dbe42b0 light: fix broken vis optimization 2016-04-22 01:00:10 -06:00
Eric Wasylishen 169c89120a light: quick hack of 2nd sun. keys are "_sun2" "_sun2_mangle" "_sun2_color" 2016-04-21 01:05:48 -06:00
Eric Wasylishen 0a8965bae0 light: fix lighting with vis data 2016-04-21 00:22:35 -06:00
Eric Wasylishen 338ceae8c8 light: add face to lightsurf struct 2016-04-21 00:13:31 -06:00
Eric Wasylishen 1ea4d52eab light: add -novis flag 2016-04-20 23:57:04 -06:00
Eric Wasylishen 9cfb8c3fef light: make DecompressVis more robust 2016-04-20 14:53:33 -07:00
Eric Wasylishen 7ce9272f9d light: avoid c99 vla's, seems to be not supported on msvc 2016-04-20 01:53:06 -06:00
Eric Wasylishen e1bad1bbd6 light: rewrite normal interpolation 2016-04-20 01:39:42 -06:00
Eric Wasylishen 03df93851b light: phong shading: handle some sources of nan's 2016-04-19 19:33:49 -06:00
Eric Wasylishen 9560ba3901 light: speedup: don't calculate AO when using -phongdebug 2016-04-19 18:02:07 -06:00
Eric Wasylishen 8fd3f41b42 light: expose GetLightValue in entities.h 2016-04-19 01:28:33 -06:00
Eric Wasylishen 0c93c5c3d0 light: DirtTrace: add extra argument for hit face 2016-04-19 01:26:21 -06:00
Eric Wasylishen b087f0f010 build: specify c99 2016-04-18 14:22:33 -06:00
Eric Wasylishen 2a4168f35c light: add _minlight_exclude bmodel key 2016-04-17 22:51:14 -06:00
Eric Wasylishen fff8cbffbc light: use vis data 2016-04-14 20:15:52 -06:00
Eric Wasylishen 32b48a443b light: track interior verts for normal interpolation (not used currently) 2016-04-14 15:13:01 -06:00
Eric Wasylishen 321eac8aaa light: make PrintFaceInfo non static 2016-04-12 01:07:37 -06:00
Eric Wasylishen c6d8aff03b light: guard against acos returning nan due to fp error in CalcualateVertexNormals 2016-04-11 01:49:02 -06:00
Eric Wasylishen ed6dfbaf76 light: disable obj exporter 2016-04-11 01:14:54 -06:00
Eric Wasylishen f2d33137ef light: PrintFaceInfo: also print the interpolated normals 2016-04-11 00:59:01 -06:00
Eric Wasylishen c86731ab58 light: make TriangleArea non static 2016-04-11 00:47:21 -06:00
Eric Wasylishen 8228bf979f light: obj exporter 2016-04-11 00:46:42 -06:00
Eric Wasylishen 37d0d14ccd light: fix phong shading debug code 2016-04-10 23:07:13 -06:00
Eric Wasylishen cf8e3fc935 light: augment DirtTrace with the hit plane 2016-04-10 22:30:42 -06:00
Eric Wasylishen ddbf55ac13 light: skip casting lights if -phongdebug or -dirtdebug are in use, gives a big speedup for those flags 2016-04-10 19:52:01 -06:00
Eric Wasylishen e395a755ab light: CalcPoint: correct point before interpolating normal 2016-04-10 19:42:24 -06:00
Eric Wasylishen 4207054709 light: avoid crash if no textures in bsp 2016-04-10 19:34:57 -06:00
Eric Wasylishen 986334a86b light: unify "_anglescale" worldspawn key and "-anglescale" command line option, previously they were different.
Fix "-anglescale" command line option which was broken.
Make sunlight2 use the global anglescale setting.
2016-04-10 18:25:15 -06:00
Eric Wasylishen 9e2d54a9af light: handle bsp's with no textures 2016-04-10 15:39:49 -07:00
Eric Wasylishen f2a57d5b71 build: remove remaining embree stuff 2016-04-10 15:49:01 -06:00
Eric Wasylishen b6c9873289 light: return hit normal for DirtTrace 2016-04-10 15:27:21 -06:00
Eric Wasylishen 0a6708edb0 light: remove embree support 2016-04-10 14:43:37 -06:00
Eric Wasylishen 4e34c48476 build: package embree license 2016-04-09 23:14:43 -06:00
Eric Wasylishen 5b2529ebd4 light: fix lighting on rotators, at least to the extent it was working before 2016-04-08 00:42:15 -06:00
Eric Wasylishen 7215b669f2 light: new CalcPoints implementation 2016-04-07 23:26:46 -06:00
Eric Wasylishen c135ab6b2b light: error if bsp->nummodels == 0 2016-04-07 23:26:23 -06:00
Eric Wasylishen e6f58ece0c Revert "light: phong shading: also weight by face area. this avoids cubes with rounded edges turning completely into blobs"
This reverts commit bbc95a1364.
2016-04-07 22:20:24 -06:00
Eric Wasylishen ecfa3c3e12 light: enable -parse_escape_sequences by default 2016-04-07 21:47:26 -06:00
Eric Wasylishen 82ff1dbd06 light: don't save lightmaps for "trigger" texture 2016-04-07 21:39:23 -06:00
Eric Wasylishen 96a8dc8c3d light: disable "Failed to calculate normal for vertex" warning because it was not really an error and causing spam
qbsp T-Juncs generate lots of colinear vertices I think?
2016-04-07 21:16:54 -06:00
Eric Wasylishen ab9be6bbf2 light: refactoring 2016-04-07 13:16:21 -06:00
Eric Wasylishen 0733499da5 light: fix for black corners on dirttest.map (test map from lunaran) 2016-04-06 22:38:09 -06:00
Eric Wasylishen 6fcf04a298 light: revert to older CalcPoints (push off hit normal) to fix artifacts in testlightonface.map 2016-04-06 19:15:19 -06:00
Eric Wasylishen c9aad9d2ce light: Refactor CalcPoints, store whether a point is occluded 2016-04-06 18:29:24 -06:00
Eric Wasylishen a6a89db530 light: refactor tracelist to be a list of modelinfo_t instead of dmodel_t 2016-04-05 23:25:36 -06:00
Eric Wasylishen bbc95a1364 light: phong shading: also weight by face area. this avoids cubes with rounded edges turning completely into blobs 2016-04-05 15:00:12 -06:00
Eric Wasylishen a407b971bc light: rework LightFace_Entity to fully fix testlightonface.map 2016-04-05 12:52:44 -06:00
Eric Wasylishen aed29da060 light: tweak embree settings to fix "fireflies" 2016-04-05 12:27:51 -06:00
Eric Wasylishen 163b599900 light: tweak angle test for testlightonface.map. 2016-04-05 00:58:05 -06:00
Eric Wasylishen 47e7a981f6 light: get rid of unneeded unordered_set 2016-04-05 00:13:29 -06:00
Eric Wasylishen f315366f43 light: hack to fix lights exactly on faces 2016-04-04 23:58:12 -06:00
Eric Wasylishen 33ee7e35f7 light: delete .lit file before starting 2016-04-03 18:25:30 -06:00
Eric Wasylishen d53e67bf8a light: copy embree DLL's 2016-03-30 15:26:36 -07:00
Eric Wasylishen e11e9d5c1f light: embree support 2016-03-30 14:58:21 -06:00
Eric Wasylishen 34858ed243 light: fix sunlight + phong shading 2016-03-05 23:56:28 -07:00
Eric Wasylishen d2f1eb2b2b light: support _phong and _phong_angle on bmodels for compatibility with other qbsp's. 2016-03-05 22:51:17 -07:00
Eric Wasylishen 1a48e5a24a light: fix issue with CalcPoints trace hitting a corner, spuriously setting tr.hitback, and returning the wrong hitpoint 2016-03-05 00:57:47 -07:00
Eric Wasylishen 41972a376a qbsp, light: Strip texinfo flags other than TEX_SPECIAL.
Write extended ones to a "mapname.texinfo" file.
Support "_dirt" and "_minlight" flags on func_detail/group.
2016-03-05 00:26:54 -07:00
Eric Wasylishen 0b4c044473 light: fix dirtmapping traces 2016-03-04 20:40:14 -07:00
Eric Wasylishen 72d7ce4231 light: handle degenerate triangles when smoothing normals 2016-03-03 12:38:03 -07:00
Eric Wasylishen d66857b5a0 light: try fixing cmake msvc build 2016-03-03 11:14:14 -07:00
Eric Wasylishen fec88c3186 light: fix build on MSVC 2016-03-02 19:21:30 -08:00