News | Forum | People | FAQ | Links | Search | Register | Log in
Ericw-tools Quake Map Compiling Tools V0.16
This is the continuation of the previous
tyrutils-ericw thread now that the project is renamed.

Github issues - feel free to report bugs / upload screenshots / test maps
Github releases (downloads) page

v0.16 is not the most amazing release because I am still working on fixing lightmap seam issues. However it has 2 somewhat important fixes:

- Fix MarkV .lit rendering (do the color->greyscale conversion in a way that forces MarkV, FTEQW to render identically to Fitzquake, Quakespasm)
- better detection of when BSP29 format bsp exceeds the format limits. Previously it would silently produce corrupt bsp's if you exceeded 64k leafs/nodes without manually enabling -bsp2 mode.
First | Previous | Next | Last
Congrats, ericw!

See your tools thread for additional commentary!

Great work! 
Still The Best Tools. 
Hopefully the seams issue will be fixed, and then I'll update my pipeline. 
Thanks again for func_illusionary_visblocker :) 
thanks for continuing work on these great tools! 
What Does Qbsp Need For The "path" To _external_map? 
Full path, partial(relative to mod directory etc)? Forward slashes/backslahses?

Trying to set this entity up in the .fgd. 
Disregard This ^^^ 
I looked through mukor's fgd and saw it's absolute path. 
I think it's relative to the working directory, or absolute 
Is it possible to give this a default value(func_wall) in the next release of qbsp?

Currently, in my testing, if this is not set it stops the compile process and you can't load the map into Quake.

Or, since it's an advanced entity, maybe there is a reason it's not set like that? 
Yeah, it should be easy to add a default; I was thinking func_detail. 
How complicated would it be to add random texture tiling feature based on texture names during bsp generation similar to Half-Life's technique which does this during run-time?
Example here:

This would help break monotony of large walls and rocky terrains. 
Misc_external_map 'classname' Shadows 
I want to make sure I have this right. While setting up the entry in the FGD it seemed that for...

func_detail, func_group and func_detail_wall there is no way to disable shadowing?

Setting _shadow to 0 or -1 on the misc_external_map entity had no effect.

Jus' curious, thanks. 
@veryslowmapper Yeah, it would be doable - probably not too hard because qbsp already chops up faces to fit within the software limits.

@damage_inc "_shadow" "-1" should work on misc_external_map. I'll double check. 
Netradiant Valve 220 
"Infinite projection" in 220 format causing light stage to fail. Created by rotating brush without tex lock.
Example map with stretched trim 
I'm not sure what to do.. on one hand, that face with an invalid texture projection crashes software quake (at least winquake.exe), so light.exe failing with a hard error isn't too unreasonable.

maybe qbsp should warn about the face, and then save it to the .bsp with default texturing. 
1) the qbsp defines the sizes of surfaces.
2) infinite projection means infinitely sized lightmap.

if the qbsp is generating a lightmapped surface larger than the specified limit then that's the qbsp going wrong, not the light util.
(unless its turb or sky, anyway, in which case the light util shouldn't be trying to light them and thus shouldn't care). 
Misc_external_map Question 
Just reading about the new misc_external_map feature, and it sounds awesomebiscuits.

Although, I'd have thought it could be even more powerful if it worked like: whatever is in the external map, including multiple entities (e.g. func_door, func_detail, light_*, whatever) would just get copied across, so e.g. you could have a brush torch sconce + a light or two associated with it.

I'm sure there's a damn good reason for the current implementation but just thought i'd mention it :} 
Are you talking about Quinstance style external bsp support? 
I'm talking about the misc_external_map entity in ericw's bsp tool 
I started with "brushes only" as a first step because it simplified things a bit, especially "-onlyents" compiles can ignore the external maps right now, but they'll need to load them when I import entities as well. No special reason it can't be done though. 
Ah Right 
Well, I think one of the biggest uses for me would be the aforementioned torch sconces where I'd maintain just a small selection of lighting prefabs; each containing some func_detail_* sconce thingy, plus a torch entity and maybe complimented with a couple of secondary filler lights.

I'm fairly schizophrenic when it comes to lighting, and often decide to change every single light in my map in a certain way, and then some time later, I end up changing them all again, etc. Being able to do this through prefabs would be a "game changer", to coin a phrase :} 
What Kinn said is why I wanted instanced groups in TB so much. You could just stick your light setup (brushes + ents) in an instance group and copy it around the map, thus easy to iterate over time. 
I've avoided directly addressing this, for fear of seeming to shit on eric's efforts in the same vein, but I feel I should clarify that Quinstance is not for external BSP files, but for MAPs, and already does what Kinn's looking for.

It is an external tool, which of course complicates compile setup, and it (along with VMFII, which does all the real work) is written in C#, which demands the .NET Framework in Windows or Mono in Linux and macOS, so I understand the value of doing a similar thing in a native tool, especially one already so widely used. Until entity support arrives in ericw's QBSP, though, you could use Quinstance to have easily tweakable prefab entity configurations. Nesting, entity name fixup, @ syntax, material replacements, most of the Source func_instance features work with Quinstance. The "origin" and "params" entities found in that engine don't, but VMFII doesn't support them either.

If you need example usage, I could pack some of my own maps up for you. The Jam 7 and Retro Jam 5 distributions include source for my entries that separates the main map from the instances, but only in JMF form, which I'm only now realizing I shouldn't have done. For most other Jams I only sent in collapsed versions, i.e. after the instances were resolved, but I've used instances on all but one of my maps going back to Jam 6 (including the "bubbler" ornaments in my Xmas Jam map), so I have plenty of samples if anyone's curious.

Eric, if you're interested, both my wrapper code and Metapyziks' is MIT licensed (really "X11", pardon me), so despite it being a different language you're free to browse it for ideas of how to approach the problem without fear of running afoul of some oddball license terms. Or how not to, if the techniques prove unappealing. I know the VMFII dev has expressed a desire, at one point or another, to redo the project to greater or lesser extent, so how much you'd want to imitate I don't know. 
Just Noticed 
the super useful _dirt_off_radius / _dirt_on_radius stuff seems to be missing from the website documentation. 
Anyone else seeing buggy behaviour with the "mangle" setting on "_sun" "1" lights? Try setting a few different yaw values on the mangle... 
What does external bsp support offer that would be different from setting the model key on a func_illusionary to a .bsp? (Ignoring precache requiring engines of course) 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.