I need to put some examples on the website for doing lava surfaces.
Here's one that uses two surface lights on the lava: http://i.imgur.com/FAmAZlM.png
delay 2, light 20 for the fill light
delay 0, light 200 for the direct glow
If you use "delay 2" make sure to use low light values or you'll end up with a fullbright room.
If you are using my fgd file, download the latest version of it as it causes a bug where all point lights will be deviance lights (each light is broken up into 16 lights!)
Make sure to remove any _samples key/values from any lights you have in your level, as they will be left over even after downloading the bug fixed fgd file.
If you haven't been using that fgd file, then can suggest some settings for your surface light for lava :
you can tweak "wait" to have the light be smaller/larger but I've found these settings to be quite nice.
Never actually considered that you can use two lights on the same surface :O
How the surface lighting works exactly: if you look at the BSP surfaces in-engine with "r_drawflat 1", each surface with a matching texture will get a light copied in the centre of the surface, 2 units above it. However, if a surface is larger than 128x128, it's subdivided into sections no larger than 128x128, and the lights are placed above those sections. So, you can think of the lights as being tiled roughly on a 128x128 grid.
My lava screenshot above is ugly, so if anyone comes up with a good example scene for lava settings that you want to put on the tool website, that would be welcome!
What I've found works best for lava: use really low surface lights just to fill areas (if you find it necessary), and then hand place a couple really bright lights that will do the heavy lifting and cast your major shadows in the area.
and be sure to set "_dirt" "-1" on the lava lights, you don't want dirty corners next to your lava!
"Never actually considered that you can use two lights on the same surface :O "
!! Same. No idea ... neat!
You could use a 2nd light with a high offset on the lava and make it a bounce fill light.
hey DaZ, when I try to load your .fgd (Beta 5) in TrenchBroom I get the following error:
"Parse error at line 26, column 39: Expected token type closing bracket, or word but got colon"
Personally I'm guessing it's TB's parser, not your .fgd
Looking at the row/col. It's the first line of added code in the file, so I'm guessing that the version of fgd the file is written in is incompatible with TB.
This fgd was written for Jackhammer / Valve Hammer and probably uses some things that are not compatible with Trenchbroom (the colour picker comes instantly to mind).
It's worth noting that you can still use all these new features that are exposed in this fgd, you just have to add the key/value pairs manually.
It's A Bug
TB doesn't like the comments after the second colon. This is an oversight by me, I didn't read the FGD spec carefully enough, and the FGD files I had used for TB didn't contain such comments. File a bug report and attach the file so that it gets fixed, please.
So I guess a temp fix would be to just delete the comments. In case that wasn't obvious. :)
the comments are useful as they show up in jackhammer/hammer help screen. That's why I added them in the first place :D
But yes, you could remove all the comments and it should work.
Right, I get that. But it's either wait for someone to fix Trenchbroom OR start using the FGD now. So ... choose your path, fair user. :)
The fgd won't be useful in tb1 anyway, since tb1 doesn't display the key/values part of the fgd. Will be nice in tb2 though :-)
do func_groups get ignored or something? I have a map with a func_group in it with ~4k brushes in it, but qbsp finishes in 1 second with the following:
---- LoadMapFile ----
*** WARNING 06: No info_player_deathmatch entities in level
2 unique texnames
Opened WAD: ..\..\QE3\gfx\jam6\mapjam666.wad
Opened WAD: ..\..\QE3\gfx\jam6\lavacity1a.wad
Opened WAD: ..\..\QE3\gfx\sock_palc_supp.wad
Processing hull 0...
Processing hull 1...
Processing hull 2...
---- WriteBSPFile ----
0 planes 0
0 vertexes 0
0 nodes 0
6 texinfo 240
0 faces 0
0 clipnodes 0
1 leafs 44
0 marksurfaces 0
0 surfedges 0
1 edges 8
2 textures 391772
0.152 seconds elapsed
Peak memory usage: 13694572 (13.1M)
looks like it's skipping it?
one idea, make sure there's at least one ordinary brush in worldspawn that's not in a func_group/func_detail. There's a bug that happens if there are no regular brushes.
haha yup! thanks!
and while you're here... currently in this qbsp, mixed face contents is a full error that halts compilation, while other compilers (aguirre's in my case) will just give you a warning and convert the brush to a solid.
any chance of doing the same here? mixed face contents really isn't a big deal, at least, not enough to warrant an error.
re: mixed face contents, sure, I'll look into how bjptools handles it
One quick suggestion ... when the user doesn't specify "-threads" maybe set the value to "# of cores in this machine" - 1. That leaves one core available for working on the level or checking email or whatever.
I found when I set up my batch file to use one fewer core than I actually have, working on maps became a lot more fluid...
Your fgd file contains a few integer properties with float default values such as in line 34:
_range(integer) : "Global light range" : 0.5 : "Scales the brightness range of all lights without affecting their fade discance. Values of n more than 0.5 makes lights brighter and n less than 0.5 makes lights less bright. The same effect can be achieved on individual lights by adjusting both the 'light' and 'wait' attributes"
That's technically invalid and I don't know what JackHammer and others would make of it. TB currently crashes at that line. I'll fix it and round such values.
In line 76, there is this:
@baseclass base(Appearflags) flags(Angle) size(-16 -16 -24, 16 16 32) offset(0 0 24)
color(0 255 0) = PlayerClass 
The flags(Angle) part is syntactically wrong. Check https://developer.valvesoftware.com/wiki/FGD
While doing n-1 threads by default works, I think I'd prefer auto-setting priority to "below-normal". This way, when the computer is idling, it'll use all cores, but if needed, it can be put into the background while you work on your map.
That might work too. All I know is that right now, if I don't hand set the thread count, I end up with a machine that can't do much while light runs...
haha yeah, i know what you mean.
as a workaround, you can start light/vis with the start.exe command:
START /BELOWNORMAL light.exe to manually set thread priority.
I'll make it do that automatically in the next release