#640 posted by Kinn on 2017/01/05 04:04:16
I guess one implementation could be...
I would suggest light.exe should not need to know how the object moves - it only needs to know the positions to light it at - these could be specified in the map with "info_lightmodel" entities - they would mark the various positions (mins?) of the brushmodel. The info_lightmodel would target the brushmodel (to let light.exe know what to light, obviously), and also specify the "style" number to use.
Also
#641 posted by Kinn on 2017/01/05 04:12:24
your sunlight suggestion is cool.
Question: what happens with bounce light coming off a surface with styled lights? Is there a bounce for each style?
#642 posted by ericw on 2017/01/05 04:27:40
Mmm - yes the info_lightmodel sounds good.
Currently styled lights don't bounce at all, this was something I limited to make the first version of the code simpler, but I want to support it eventually.
#643 posted by Kinn on 2017/01/05 04:44:38
Yeah I guess bouncing styles would have a similar problem to styles on lights with 1/x or 1/x^2 falloffs: you could propagate styles to tons of surfaces everywhere and it could get out of control.
I think for most styled lights, you won't really notice the lack of bounce, but if you start doing styled sunlight, then I think sunlight bounce would be noticeable and you'd expect it to change like the direct sunlight does.
Kinn
#644 posted by mankrip on 2017/01/05 17:52:08
How is the "ambient lighting" determined in Makaqu?
Nearly the same as in MDL models, using R_LightPoint and the entity origin, offset by the relative model position.
As for a pure QC + assets workaround... How about this:
- Make one model on origin A (start), and another on origin B (end).
- Set the B model to non-solid, and enlarge it by 1 unit (not 1%) on each direction.
- In the QC code, make the B model follow the origin of the A model.
- Implement code to fade the .alpha of the B model according to how far it is from the end position.
Almost every custom engine supports .alpha, so this shouldn't be a problem unless someone really wants to target vanilla WinQuake/GLQuake.
Bmodels With _shadow 1 Lighting Problem
#645 posted by PuLSaR on 2017/01/07 18:24:52
Does light do simplified calculations on bmodels with _shadow 1? I get weird squares of shadows on solids from complex bmodels (in places, not everywhere). Splitting a big bmodel into a few smaller ones doesn't change anything. Any suggessions?
#646 posted by ericw on 2017/01/07 20:26:21
There have been problems with _shadow 1 bmodels intersecting/touching each other, or the world. The faces that are touching can have artifacts, either black fringes or solid black or other artifacts.
I forget what the current status is, because I've been swapping in and out hacks to try to combat that.. but I'm working on a more correct fix.
Other than that, there shouldn't be any problem with shadows from bmodels. Check your version is 0.15.9, or feel free to email me screenshot/map if it seems like a different bug.
So
#647 posted by PuLSaR on 2017/01/07 20:56:40
If the bmodel doesn't touch another solid, the problem should be gone?
#648 posted by ericw on 2017/01/07 22:23:15
Yeah, if they're not touching the problem should not occur (at least a 2 unit gap. The light sample points are 1 unit above the face, having these sample points blocked is what causes issues)
Thanks
#649 posted by PuLSaR on 2017/01/07 22:28:39
that was very helpful
Ericw
does "-bounce 1" bounce lights with negative values?
Nope
#651 posted by ericw on 2017/01/24 19:54:25
Negative lights are ignored by bounce
Hexen 2 Rotating Entities Broken
#652 posted by Bloodshot on 2017/01/25 03:08:18
The use of an origin brush for rotating entities doesn't work with -hexen2. The origin brush is visible ingame and the brush still rotates around the map origin
#653 posted by ericw on 2017/01/25 03:26:27
Yeah, there is no origin brush support at the moment.
Current behaviour is (designed for Q1 hipnotic rotation):
If a brush entity classname starts with "rotate_", qbsp looks at the "target" key, and searches for the targetted (point) entity. That point entity's origin becomes the origin of the brush entity.
I'm not sure if that is compatible with Hexen 2 rotation?
Probably Not
#654 posted by Bloodshot on 2017/01/25 03:46:45
Hexen 2's is more like half-life, though it uses the "flags" key for how many degrees it should rotate. I think you can manually enter the origin to specify where it should rotate but that doesn't seem to work right in trenchbroom
Figured Out A Sort Of Workaround
#655 posted by Bloodshot on 2017/01/25 04:08:26
You can actually manually put the origin in, but you have to place the brush at the map origin or it ends up outside the map.
Kind of a pain to light it properly but it works otherwise.
#656 posted by muk on 2017/01/25 04:54:15
lmao that sounds like an editing nightmare
#657 posted by ericw on 2017/01/25 06:23:34
Tried implementing it, download available on the github issue
It might be handy for Quake too.
Hope I did it right.. if there is a brush in a brush entity with the "origin" texture, the center of that brush is used as the model origin (qbsp translates the model so that point is at 0 0 0, and sets the "origin" key).
Also light no longer cares about the classname starting with "rotate_", if the brush entity has an "origin" key set to something other than "0 0 0", the faces will be translated to that position during lighting (hopefully doesn't break anything?)
Im Wondering
#658 posted by sevin on 2017/01/25 19:23:47
Is there a standard for final compile settings? I assume people leave BSP and VIS parameters alone, except maybe -bsp2 for BSP? Is that something everyone uses, or only if the map somehow doesn't compile as a regular BSP? Is there any reason not to use BSP2?
For light, judging by the doc page on Eric's site, I'd guess people use -extra4, -gate 1, -bounce 1, and maybe some -soft?
Final Compiles
#659 posted by ericw on 2017/01/25 19:45:56
Yeah, the main thing is to use -extra4 on light; the other tools can stay with the default settings.
-gate 1 is probably fine but it's actually a faster/lower quality option than the default. -bounce 1 is something you want to use from the beginning if you are going to use it, since it'll change the entire look of the map. -soft is personal taste, it will make the final lightmap softer.
Is there any reason not to use BSP2?
It's best not to use the -bsp2 flag unless it's needed so the map will run on the widest range of engines (including vanilla ones). qbsp will print an error if the map exceeds limits so that it requires -bsp2.
Also
#660 posted by sevin on 2017/01/25 19:50:45
-bouncescale .8 or so? What about sunlight and dirt settings in the worldspawn?
#661 posted by ericw on 2017/01/25 20:06:08
Tougher to generalize as those are more artistic choices. The screenshots / settings on the website give some starting points, you can also check map sources for ideas.
Yeah
#662 posted by sevin on 2017/01/25 20:17:41
I did check out some of the AD maps and was surprised to find very little dirt is used. Judging by the 1000 Cuts screenies I'd expect a lot more dirt, but maybe that's because of the greyscale. Sock seems to use 96 dirt, I'd think an intermediate between 256-512 would look nice.
#663 posted by Kinn on 2017/01/25 21:10:36
Sock seems to use 96 dirt, I'd think an intermediate between 256-512 would look nice.
Sock's 96 dirtdepth is not a bad value actually. A dirtdepth of 256-512 is something that works when looking at a distant shot of an otherwise fullbright map, like in the preview image on ericw's page. For a normally lit map, it means surfaces 256-512 units away will be darkening your target surface, which can just suck all the light out of interior rooms quite easily.
Kinn
#664 posted by sevin on 2017/01/26 00:20:01
I know it's probably a good value; Sock chose it. I have no Quake experience so all I have to go on are Eric's pics and various worldspawns. I need to jump in and make myself a test map.
|