
Projections
#70 posted by Spike on 2018/07/17 09:49:52
there's four ways to improve it.
1) tga/png images. either way qbsp really needs the ability to read tgas too, not just the light util. wads need to die (or at least have the option to be killed for non-fullbright surfaces).
2) cubemaps. project all 6 sides instead of just 1. it should reduce issues with fovs higher than 90 and potentially improve rtlight compat, but 6 faces is more of a pain to create.
3) lights placed INSIDE the brush containing the light that is being projected, which would be especially handy with cubemaps. Failing that, just switching the light to an orthographic projection would properly allow for sunlight through windows.
4) higher lightmap resolution, so that the projections can actually be seen without turning into a blurry mess. You can already achieve that in a backwards compatible way by using _lmscale, however it'll currently only work in FTE+QSS when compiled with ericw's tools. Otherwise you can achieve higher resolutions by just rescaling the texcoords and increasing the texture size to compensate (ericw was toying with the idea of automatically doing this a while back), but this sort of thing has a direct impact upon texture filtering etc.
stuff like that '4' might be better served by adding support for decals somehow - even if they're still just lightmaps it would be easier to align them, avoiding bluring and effectively doubling their resolution. failing that there's always fence textures.
either way, any kind of change requires someone to devote their time to implement said change...

BTW
#71 posted by
generic on 2018/07/17 13:35:05
That map was clever as hell! Great job!
#72 posted by
mankrip on 2018/07/17 14:11:26
As Spike said, the lightmap resolution being tied to 1/16 of the texture resolution brings unavoidable conflicts.
Personally, I'm eventually going to create a different BSP format where the lightmap projection and texture projection will be completely independent (plus other features). It's the only way to implement this nicely.
doesn't upscaling the projected texture help make it look better?

#71, 73
@generic Thank you!
@Snaut I don't recall if I tried anything over 512. It was a long afternoon of trial and error.
#75 posted by Spike on 2018/07/18 02:08:23
there's no mipmapping or anything on the projections, so if your projected texture is too high res, then all that will happen is that it'll skip over various pixels completely, resulting in shimmering at least if it were moving in realtime.
so 1 lightmap sample per 16 wall texels, which means 1 per 16qu with quake's default texture scaling. a fov of 90 is probably easiest to figure out the required distances of the light.
Thanks to linear filtering, a 16*16 lightmap covers only an area of 240*240qu, not 256*256.
the same is true for a projected light image if you want it to match your lightmaps.
so a fov90 projected texture that's 16*16 should be 120qu away from your 240qu*240qu 16-aligned wall. your light should be centered where you want it - which means misaligned by 8qu on each axis from your 16qu grid.
assuming I didn't embarrassingly screw up the maths anywhere, that should give you the best resulting image quality.
a 17*17 projected texture would be cleaner (128qu from the wall, aligned to the grid, woo), but mipmaps need to be a multiple of 16, so that's not presently possible. :(
The res will still suck though. _lmscale on a func_detail is the easy engine-specific way I'd do it, but if you want to instead double the texel density then just change the scale and halve the distances - just remember that doubling the projected texels from 16 to 32 is actually 15 to 31 luxels, which is NOT doubled, so 124qu instead of 120qu from the surface (and along from the minimum point of the surface - this is the point the lightmap is aligned to).

Spoike
Thanks for helping with guidelinesom this. I know what I'll be messing with this weekend.

Feature Request
#77 posted by mh on 2018/07/20 16:32:14
Can we have the params used for each of the build tools stored as extra keys in the worldspawn entity?
For light in particular, because so much behaviour can be dependent on the command-line params, this would be useful to be able to recreate the build.
I'm thinking something like:
{
"classname" "worldspawn"
"_qbspparams" "-splitturb"
"_lightparams" "-extra"
"_visparams" "-level 4"
}

#77
Also good for newer mappers to see how the tools were used at a glance. I dog this suggestion.

Hey Ericw
#79 posted by
Qmaster on 2018/11/07 02:02:58
I have a particularly persnickety map. Do you mind taking a look at it and seeing if it can compile for you? I keep having random missing faces (tend to be same areas but different faces on each compile), nonsolid tris in my trisoup terrain, a spot on the 2nd floor of the house where vis causes walls to flicker out, and the occasional extra solid edges in the trisoup. It's actually my halloween jam map. I managed to get a compiled version with minimal issues in the main areas and physics seemed to be ok, but still the other issues, though minor.

Qmaster
Why aren't you on Discord?

Qmaster
#81 posted by
ericw on 2018/11/07 03:03:56
Sure feel free to mail me and I can take a look. Can't promise a quick fix but it always helps to have a map to look at. Both issues (missing faces in general, missing faces from certain viewing positions after vis) have been lingering for a while.
#82 posted by
Qmaster on 2018/11/07 04:01:44
Sounds good. Ya, no rush.
@dumptruck, might change around later but I feel like I have enough things to check and read up on as it is without throwing another one in.

But Feel Free To Join Anyway...
#83 posted by
Shambler on 2018/11/07 10:45:21

But Feel Free To Join Anyway...
#84 posted by
spy on 2018/11/07 16:59:21
thank you shamp

Ericw, Just A Small Heads Up
#85 posted by
Orl on 2018/11/07 20:44:45
#87 posted by
Qmaster on 2018/11/17 17:58:11
Is there a way to make paths to external .map's relative instead of absolute. E.g. relative to the main .map file: "ext.map"