#770 posted by ericw [108.173.17.134] on 2017/03/27 02:05:27
New beta:
https://github.com/ericwa/tyrutils-ericw/releases/tag/ericw-v0.15.10-beta1
Has the .map conversion feature in qbsp, so you can do:
qbsp.exe -convert valve mymap.map
and it will write out a copy of the map in Valve 220 format to mymap-valve.map. It can also convert to "quake", "quake2", "bp" (quake 3 brush primitives).
I labelled it "beta" because it's not tested enough, light has a large change to how sample points are positioned. (so unexpected black faces should never happen any more, e.g. this)
 My God
#771 posted by Bloughsburgh [71.61.61.77] on 2017/03/27 02:45:24
so unexpected black faces should never happen any more
 Hopefully..
#772 posted by ericw [108.173.17.134] on 2017/03/27 09:09:41
at least one of the causes is gone.
#773 posted by Pritchard [101.160.6.144] on 2017/03/27 13:50:50
I think you may have added in a cause:
0.15.9
0.15.10
Also, would it be possible to turn off the bouncing for styled lights with an option? It's causing a lot of "too many lightstyles" warnings on my map.
In more positive news, converting my map seems to have gone off without a hitch! :D
#774 posted by ericw [108.173.17.134] on 2017/03/27 19:51:46
So it's the black artifacts around the floor tiles? Was that shot with -extra4? I should be able to reproduce it.
re: bounce, good point, it should be opt-in, I guess. "_bounce_styled" "1" worldspawn key?
Thanks for testing and glad the .map conversion worked! It should be pretty trouble free because all the brush planes are passed through losslessly.
#775 posted by Pritchard [101.160.6.144] on 2017/03/28 01:52:58
No, no -extra4 or soft. I haven't been using those parameters as I test the map. If you like I can create a github issue with the .map and perhaps a compiled .bsp/.lit? I did just try splitting off the problem area into its own map but I couldn't even reproduce the exact lighting I have...
#776 posted by ericw [108.173.17.134] on 2017/03/28 01:59:39
Sure, or just emailing me the .bsp + .lit is fine too. I was just trying to reproduce it now.
#777 posted by Pritchard [101.160.6.144] on 2017/03/28 02:51:04
Also, interesting tidbit but nothing of any real issue: Converting the map to valve format through your tools seems to have reversed the order keys are listed in for TB2. Classnames are now at the bottom rather than the top. Not the case for newly created entities of course.
 Lol
#778 posted by ericw [108.173.17.134] on 2017/03/28 03:23:12
thanks for noticing that, should be harmless but I'll fix it!
 Question
#779 posted by Kinn [86.131.182.211] on 2017/03/30 18:01:31
Can sunlight be assigned a lightstyle? Thinking it could be cool to fade it in/out via QC.
 Not Atm
#780 posted by ericw [108.173.17.134] on 2017/03/30 19:53:17
It's really easy to add though, i'll add it after fixing Pritchard's issue.
 Whoa
#781 posted by Bloughsburgh [75.151.243.225] on 2017/03/30 20:45:30
Can sunlight be assigned a lightstyle?
Man that could open up some interesting visuals.
#782 posted by Kinn [86.131.182.211] on 2017/03/30 21:47:00
It's really easy to add though, i'll add it after fixing Pritchard's issue.
Cool! Sounds like a good addition
Man that could open up some interesting visuals.
Random dipping of light from clouds in an overcast sky...the strange pulsing of an alien sun...a simplistic day/night cycle (obvs no moving shadows but whatevs, it's not as if you can animate the skybox)...
You could sync up the light variation with some variation in the fog and skyfog settings to sell the effect better.
I did think it might be interesting if it was possible to have multiple different sunlight setups, all on a unique lightstyle (well you'd be limited to 3 I think) - morning, midday, evening - and you lerped their light intensities in QC (along with "night", but that wouldn't be a lightstyle, just an absence of light). But that's probably overkill and the shadows might still look odd.
I'm not really sure what the performance implications are with massive amounts of lightstyled surfaces though. Are there any these days?
#783 posted by Pritchard [49.185.237.224] on 2017/03/31 01:57:21
I just looked up how lightstyles work, is there any limit to the length of the string? Or could you actually have a light that took a really long time to complete it's cycle? That would be a lot of letters...
Also seriously? It's done with letters of the alphabet???
 #783
#784 posted by Kinn [86.131.182.211] on 2017/03/31 02:04:27
Yeah, you can set up those strings and have the light cycle automatically, or you can just set a single brightness value explicitly (e.g. say you wanted a slow day/night cycle thingy, I guess you'd want to set up a slow think function and increment the brightness in the think)
 Clipnodes
#785 posted by negke [31.18.51.150] on 2017/03/31 17:20:52
Uhm, how come this QBSP generates a whooping 11k more clipnodes than other compilers on my map?!
 @negke
#786 posted by ericw [108.173.17.134] on 2017/03/31 19:33:17
Hmm, I don't remember touching anything related to clipnodes since this forked from tyrutils.
I just tried compiling ad_zendar.map and it looks like I can reproduce that:
bjptools_xt_290914_phong2: 38011 clipnodes
tyrutils-ericw_0.15.10_beta1: 44953 clipnodes
So it's producing 18% more clipnodes than bjptools_xt. Is that the same kind of percent increase you're seeing / what are the total numbers of clipnodes?
#787 posted by negke [31.18.51.150] on 2017/03/31 20:17:10
Around 41% in my case if my math is correct.
bjptools_xt 1.2.5: 27174 clipnodes
tyrultils_ericw 0.15.9: 38372 clipnodes
(Also roughly 700 more marksurfaces with tyrultils)
 Fun Fact
#788 posted by negke [31.18.51.150] on 2017/04/02 13:57:01
Hmap2 produces an even higher count: 43601
So it's settled then: Bengt Jardrebb ftw!
#789 posted by Rick [73.203.182.173] on 2017/04/02 23:10:23
I don't mind using the old txqbsp_xt in order to not exceed the standard marksurfaces limit, but I'd like to use this light.
I was wondering if the problem of light not passing through sky had been fixed.
#790 posted by ericw [108.173.17.134] on 2017/04/03 00:24:18
Negke thanks for the info, I'll look into optimizing the clipnodes sometime.
Rick: sometimes this qbsp will produce fewer marksurfaces, so try both.
About making ordinary lights go through sky faces, I tried it a while ago and I don't think it's worth the code complexity, and it caused a significant slowdown.
If I added a way to add entities to specify multiple suns would that help? Alternatively just make a hollow box connecting to the window, it should only add 1 extra leaf and a few sky faces.
 Beta
#791 posted by Bloughsburgh [75.151.243.225] on 2017/04/03 13:52:27
Tried latest beta and I receive too many light styles on faces when I didn't on the latest stable version. Going to assume that's with styles now bouncing?
A few notable black faces I was keeping track of are still showing as pure black. Just reporting!
#792 posted by [77.180.176.196] on 2017/04/12 22:34:25
latest build from here has a bug.
Rotate_object arent lit, leaves them all black.
 Thx
#793 posted by ericw [108.173.17.134] on 2017/04/12 22:51:51
i'll look into it. The git master and 0.15.10-beta1 versions of light are half-baked at the moment, I recommend the stable version 0.15.9.
 Light Absorption For Deep Liquids
#794 posted by mankrip [189.25.98.162] on 2017/05/08 03:24:19
When a deep lake full of mud or slime is in a very bright area, the lighting from the outside will illuminate it as if the liquid didn't exist. This is specially true for lakes under open skies with sunlight.
How complicated would it be to implement an option in the light tool for underwater faces to receive gradually less light according to their distance from the water surface?
I suppose it could work this way:
1) If the face is underwater, check if the light entity is not underwater;
2) If the light entity is not underwater, make a list of all liquid surfaces between it and the underwater surface;
3) For each ray, check which liquid surface in its path is closest to the light entity;
4) Calculate the distance from the liquid surface to the underwater face, and use it to reduce the brightness received by the lightmap.
Note: Light entities placed underwater shouldn't be affected by this, because their underwater brightness was deliberately set by the map author.
I think this feature could be very useful, specially in areas with both water and slime - the slime would look more muddy than the water, because the bottom of it would be harder to see.
Maybe this could be implemented through an entity field in func_detail liquid brushes.
 Hmm...
#795 posted by Qmaster [99.196.205.196] on 2017/05/08 05:10:11
r_waterfalloff
r_slimefalloff
r_lavafalloff
#796 posted by Rick [73.203.182.173] on 2017/05/08 05:53:40
But lava glows on its own. So does slime, doesn't it?
#797 posted by Pritchard [131.170.239.20] on 2017/05/08 07:07:13
I don't think slime necessary glows or doesn't glow, though it depends on what kind of slime it's supposed to be...
In Lava's case, you'd never realistically be able to see underneath the "surface" so no one can say if it glows or not :P
I feel like this effect could already be possible with negative lights - those subtract from the lightmap right? You could place a bunch of them underwater and it'd probably be possible to have the desired effect.
 Light Entitys With Negative Values?
#798 posted by brassbite [94.218.123.194] on 2017/05/08 07:29:15
Never knew they exist...
#799 posted by Pritchard [131.170.239.20] on 2017/05/08 07:43:43
I've never tried using them myself but it's in the docs.
#800 posted by Rick [73.203.182.173] on 2017/05/08 14:21:20
I was thinking of Quake 2 where (all?) liquid textures had surface light. So I guess that's actually irrelevant.
Quake's palette shifting effect tends to make underwater areas too bright anyway but negative light would probably still help.
#801 posted by mh [137.191.242.106] on 2017/05/08 18:14:03
Attenuate faster if the trace crosses a water surface.
How do you see this working with moving liquid bmodels?
 MH
#802 posted by mankrip [189.25.98.162] on 2017/05/08 18:53:56
 #802
#803 posted by mankrip [189.25.98.162] on 2017/05/08 18:56:38
#804 posted by ericw [108.173.17.134] on 2017/05/08 20:23:05
The volumetric water attenuation is certainly do-able; the raytracer is already set up to have side effects when a ray hits certain surfaces.
The latest stable release from last fall has "stained glass" support, i.e. if you make bmodel with "_shadow" "1" and "_alpha" "0.5", light rays going through the entity will be partly attenuated and pick up the color of the texture.
So a simplified version of water attenuation would be not considering the distance traveled underwater, but just attenuate the ray when it goes through the surface. But on the other hand, I can imagine it would look cool to have bright sunlight at the water surface fading to black (thinking of an e1m4 type environment).
Anyway it's a cool idea to add to the todo list. My first priority now is fixing the breakage that Pritchard reported a while back, which I'm making good progress on but kind of a bit drained on tbh.
 "Bit Drained On..."
#805 posted by Qmaster [174.197.10.76] on 2017/05/08 20:44:01
That's fine, just know that what you are doing is really really great! There is no going back to the old tools now.
Incidentally, is your light or qbsp multithreaded? I know vis is, which changed light to be my current bottleneck (bounce fun notwithstanding).
#806 posted by ericw [108.173.17.134] on 2017/05/08 21:17:09
Thanks, appreciate it :)
Light is multithreaded, qbsp is not. Qbsp could get a lot faster, it spends most of its time in CSGFaces checking if each brush intersects each other brush in the map. Quake 2's qbsp is multhreaded.
The main performance tip for light is to avoid using -extra or -extra4 except on your final compile, and also add -gate 0.1 or something to reduce the overhead of delay 2 lights.
 #804
#807 posted by mankrip [189.25.98.162] on 2017/05/09 08:29:36
Thanks!
No problem, I can wait.
 Light Diff
#808 posted by mankrip [189.25.98.162] on 2017/05/10 02:22:17
Idea:
When a map is recompiled, compare its entities with the entities in its previously compiled BSP file, and use the radius of each light to determine which surfaces had their lighting changed.
This way, when recompiling lights, the light tool can simply copy all unchanged lightmaps from the BSP file, and compile only the modified lightmaps rather than recompiling all lightmaps.
Bounce lighting can make this complicated, so I'm not sure if it would be possible.
#809 posted by Pritchard [131.170.239.14] on 2017/05/10 02:26:18
I feel like if you're testing within each light's radius to see what brushes have changed, you're already doing a lot of the grunt work for compiling a new lightmap...
It could work for a rough and messy sketch if you were willing to let a lot of edge cases slip through and accept the odd corrupted face or two, but then you invite the possibility of someone releasing a map compiled with that option turned on...
#810 posted by mankrip [189.25.98.162] on 2017/05/10 02:53:46
testing within each light's radius
Only for the light entities that changed. Quite often, it will be only 1 light.
#811 posted by ericw [108.173.17.134] on 2017/05/10 03:13:41
What I've been thinking of, that's sort of related to that, is making a light preview tool; it would be a small GUI application with a 3d view with WASD+mouselook. You would open a map file and the tool does qbsp and light and displays the result, except the light baking is done on faces near the camera first, and the 3d view updates as each face finishes baking. Then it would refresh whenever the .map file is re-saved. I think this would be pretty sweet.
#812 posted by metlslime [67.161.57.57] on 2017/05/10 06:24:56
yeah, what I have always wanted is a tool that lets me edit the lighting in realtime. I think that a diff-based approach to recalculating lightmaps would be fast enough to make this possible. Most edits would only affect one light, which has only local effects. Of course editing the sun values would not be as easily optimized.
#813 posted by Pritchard [49.184.145.89] on 2017/05/10 07:16:07
I'm not really sure what happens if you use old light data on a new BSP, but wouldn't it be pretty broken if you edited the brushwork around a light that hadn't changed. Say you made a ceiling, put a light on it, ran qbsp/light, then built the rest of the room and tried to patch.
I don't know what that would look like but I imagine it'd be quite bad...
#814 posted by mh [213.233.149.32] on 2017/05/10 21:49:16
Yeah, that would be quite broken.
There are also complexities around light styles, combining lights with the same style, and packing in new lightdata/updating light offsets, which may in theory require to recalc for the entire BSP.
#815 posted by mankrip [189.84.178.135] on 2017/05/11 01:45:10
Question: Does ._phong work across multiple entities when combined with ._shadow, to make multiple func_wall, func_illusionary, etc blend smoothly with the world's func_detail "entities"?
Right now I'm on mobile and can't test it.
#816 posted by FifthElephant [82.21.157.236] on 2017/05/11 02:53:54
Pretty certain it does mankrip
#817 posted by ericw [108.173.17.134] on 2017/05/11 02:55:36
Iirc, separate func_detail / group will be blended if the _phong settings allow it. But other bmodels never blend with each other or world.
 The Cursed Words...
#818 posted by Pritchard [131.170.239.14] on 2017/05/11 03:04:51
Having a real time lighting renderer like ericw would be really neat. If you were able to cull light calculations to the player's view (You'd have to be very generous - bouncing their view around corners to find lights that should cast but would otherwise be missed), you could potentially have an engine that displayed in the traditional quake style, while keeping the main benefits of lighting in real time like moving lights.
I can already imagine a whole set of horrendous edge cases arising from this sort of thing, but it'd be a pretty neat thing to see and something that I'd hope modern computers would have the power to pull off...
#819 posted by mukor [66.41.60.131] on 2017/05/11 03:07:23
I have ZERO issue in paying for a light preview tool to be created. Even if its separate from TB.
 Mapper's Most Wanted List
#820 posted by Qmaster [70.195.89.79] on 2017/05/11 22:25:46
 #817
#821 posted by mankrip [189.25.98.162] on 2017/05/13 01:21:26
Yeah, I've just tested, and it doesn't work:
screenshot
The back of the column is a func_detail with _phong 1. The front of the column is a func_wall with _phong 1 and _world 1.
If _phong 1 worked on mixed entity types with _world 1, we could work around some of the BSP's planar/vertex accuracy limitations by alternating between func_detail and func_wall brushes. This would make the engine clip their planes at the rendering level, which is completely accurate and doesn't produce distortions.
 #821 @mankrip
#822 posted by Spike [86.140.27.141] on 2017/05/14 02:42:44
quake's lighting logic has some bias on its dotproducts that increses the amount of light on surfaces that are nearly perpendicular to lights (which is important for lights placed near said surface).
You can disable the effect with _anglescale 1 (I think it is now - vanilla hardcoded it to 0.5)
the '_phong' key simply calculates surface normals on a per-sample basis instead of per-surface (thus meaning its misnamed as it doesn't change the lighting formula). It affects the lighting, but not the shadows. While it would be possible to push the sample worldspace positions according to the same calculated normals, and determining shadows based upon those, such things would be quite unreliable in practice - for instance, a concave surface curve would logically push those sample positions inside the surface, which would result in all traces being obscured with the surface shadowing itself.
so yeah, that's why you get sudden lighting changes on the edge of pillars - because -anglescale is biasing the light on one side while the other side is in pure shadow.
if you want to try it anyway, this is the maths I use in FTE for tessellation:
vec3 w = p0*bary[0]+p1*bary[1]+p2*bary[2];
vec3 t0 = w - dot(w-p0,n0)*n0;
vec3 t1 = w - dot(w-p1,n1)*n1;
vec3 t2 = w - dot(w-p2,n2)*n2;
w = w*(1.0-factor) + factor*(bary[0]*t0+bary[1]*t1+bary[2]*t2);
you should be able to shove something like that into GLM_InterpolateNormal (and convert from glsl to cpp - I already renamed stuff from glsl). You'll then need to return the smoothed position back through multiple callers to the point where its copied into the lightmap samples array.
Bonus points if you can calculate the barycentric coords (read: interpolation weights) for general polygons instead of just triangles.
like I say, you'll need to clamp the shadow-point to never be behind the surface to avoid the more obvious glitches. once implemented properly you'll get smoother lighting around corners (although due to the nature of traceline shadows, it'll probably still be somewhat sudden without anglescale 1).
#823 posted by ericw [108.173.17.134] on 2017/05/14 19:16:13
@mankrip, smoothing between separate models is too difficult to attempt, imho, because smoothing relies on the model having been processed by QBSP. i.e. it involves walking around the mesh (exploring neighbouring faces to a vertex, and neighbouring faces to a face, etc.). If the models weren't clipped against each other, the smoothing wouldn't work.
@spike in current git, I wiped out the "traceline to position sample points" thing. Instead I'm trying to use the same code as phong shading, so exploring the mesh by following connections between faces. So in a concave surface, it should work properly and give world space positions that are consistent with the interpolated normals.
Only problem is, it needs some more work.. Pritchard's case in #773 was failing because of t-junctions in the bsp. I want light to work properly if qbsp didn't add t-junc vertices, so I'm making light do it (in memory only).
re: GLM_InterpolateNormal, apologies for the current mess I made in the code and weird names.. I tried using the glm library a bit, then decided I didn't like it. (100 layers of indirection/ abstraction for basic vector operations, slow as hell debug builds,..)
On the plus side the test suite is growing slowly.
#824 posted by mankrip [189.25.98.162] on 2017/05/15 01:44:17
Is there an automated way to import the configuration from the non-Steam version?
I've just bought JACK on Steam, and upon launch it didn't detect that the non-Steam version was already installed.
 Dumb Me!
#825 posted by mankrip [189.25.98.162] on 2017/05/15 01:46:50
Wrong thread. Wrong tab.
Anyway, thanks for the explanations, ericw and Spike. I'm already going to implement something which should serve as a partial workaround, but I'll keep this info in mind for future research.
#826 posted by mh [213.233.149.13] on 2017/05/15 21:34:35
Quake's dotproduct is a simple dot(L,N) * 0.5 + 0.5; i.e a rescaling from -1..1 to 0..1 (excluding the spotlight cutoff for simplicity):
angle = DotProduct (incoming, l->facenormal);
angle = (1.0-scalecos) + scalecos*angle;
But scalecos is 0.5 (https://github.com/id-Software/Quake-Tools/blob/c0d1b91c74eb654365ac7755bc837e497caaca73/qutils/LIGHT/LIGHT.C#L13), so substituting:
angle = (1.0-0.5) + 0.5*angle;
And evaluate (1.0-0.5):
angle = 0.5 + 0.5*angle;
https://github.com/id-Software/Quake-Tools/blob/master/qutils/LIGHT/LTFACE.C#L403
 Fence Volumes
#827 posted by mankrip [187.14.53.224] on 2017/05/29 08:00:39
Is it possible to make brushes with fence textures be compiled in a similar way to brushes with liquid textures?
By that, I mean making them become properly see-through. Currently, any brush with fence textures will clip any polygons from other brushes that touches them, which results in open holes where the other brushes should be visible.
The only difference to liquid textures is that the pointcontents of fence brushes would have to be set either to solid or to empty. I guess the first case would give problems to the renderer, and the second case would give problems to the physics, but from the top of my head I'm not sure.
#828 posted by Pritchard [121.219.46.182] on 2017/05/29 08:49:41
I'm not sure how much interest there would be in changing how fence textures are compiled as it's already quite easy to resolve the "clipping" by making brushes using fence textures be a func_ brush such as illusionary or wall.
 Lighting Artifacts
#829 posted by negke [31.18.51.150] on 2017/05/29 16:15:53
Pic. What's going on there? Any way to get rid of this without anglesensing the shadows from the spikes away?
#830 posted by negke [31.18.51.150] on 2017/05/29 16:24:35
Apparently it's related to the increased texture scale (2.5-3x). Jury-rebbed BJP light doesn't seem to have a problem with it (but it lacks several feature I require).
#831 posted by ericw [108.173.17.134] on 2017/05/29 17:22:52
Make sure to use v0.15.9, the .10-beta1 turned out to be broken.
If that's not the problem, I'm not sure from the screenshot, could I have a look at the .map (just for what's in the screenshot would be fine)?
 #828
#832 posted by mankrip [187.14.53.224] on 2017/05/29 21:05:09
There's a specific problem I'm having with it, when BSP entities partially inside of walls gets darker edges because part of their surfaces is in pure darkness.
If such entities were part of the world, their surfaces would be clipped by the compiler and there wouldn't be any parts of them in pure darkness. But to be part of the world, they would have to be compiled similarly to liquid volumes, without clipping other brushes.
Currently I can work around this by making the other brushes that touches them into func_wall entities too, but IMO this isn't the most efficient approach.
#833 posted by Spike [86.145.140.247] on 2017/05/29 21:49:57
the renderer doesn't care if something's solid or not, just that its a leaf or node.
same with physics, really.
just make sure those fence-solid leafs don't get merged in to leaf 0 like all other solids, and that vis considers them transparent despite solid (can't say I've really looked into the vis tool itself, maybe it already goes by leaf 0 instead).
 Spike
#834 posted by mankrip [187.14.53.224] on 2017/05/29 22:53:33
Thanks for the explanation. The BSP tree architecture is something I've not started studying deeply yet.
 Devil In The Detail
#835 posted by negke [31.18.51.150] on 2017/05/30 19:20:17
I also came across an issue with detail brushes. Not sure if it's a bug or simply a technical restriction and downside of the way detail brushes are done in Quake, and also not sure if it's a general thing or only applies to certain special cases.
I had a compact bit of architecure flush to the wall of a building and turned it into func_detail in order to use phong shading on it. The building's wall behind it remained solid world geometry. As it turns out, having the detail brush touch the wall like it did caused the compiler to disregard visblocking for the wall which resulted a situation where a large part of the interior was being rendered despite being completely out of view, causing wpoly to increase by 1500. Making the func_detail 'flatter' by including only the front part of the detail architecture didn't change anything; it seemed to be entirely related to the touching of detail and world brushes on that particular part of the wall.
Now, this might be an edge case caused or faciliated by the shape and construction of that particular area (sloped brushes, same brushes for inside/outside etc), but still a potential risk to keep in mind, especially if remaining unnoticed until the final release of a map.
If anything, this is meant to raise awareness that excessive func_detailing can be detrimental, too. Perhaps the code can be tweaked to make sure this can't happen, or maybe it something to live with due to the hacky nature of it.
#836 posted by negke [31.18.51.150] on 2017/05/30 20:05:48
Some screenshots to clarify.
The face is the func_detail in question. The wall below is a door, but instead of only rendering the corridor behind it (hell knight), it even draws the atrium way out sight, much of its upper and lower parts.
 Func_detail
#837 posted by FifthElephant [82.21.157.236] on 2017/05/31 00:01:24
isn't a catch-all.
I have found in a number of my maps that I get a speed gain in compile times but not always ideal results in culling in the game.
 That Face...
#838 posted by generic [69.244.210.164] on 2017/05/31 00:27:53
Is so Tron.
 Tyricutils Func_detail
#839 posted by Qmaster [67.45.32.18] on 2017/05/31 03:35:54
Good lighting and faster vis time and same, worse PVS splitting.
Source engine func_detail: Good lighting, faster vis time, and clean PVS since it treats them as func_walls.
Thing is, I don't know how you would gain the benefits of true func_details (the Source way, the right way) unless the compiler turned them into info_notnulls or func_walls. Otherwise, the mod would need to support func_detail entity in its progs.dat
...
Unless engine support for func_details was added. Currently the compiler de-entity-ifies them into normal brushes. But if they were kept...
 #839
#840 posted by mankrip [189.84.178.135] on 2017/05/31 04:21:56
What you describe about detail brushes in the Source engine sounds close to my suggestion about see-through solid volumes.
#841 posted by Pritchard [131.170.239.17] on 2017/05/31 05:14:29
Isn't all VIS/PVS data precompiled in quake? Why do we need to turn brushes into a specific kind of entity in order to get a desired effect?
Would it not be possible for VIS to just look at a func_detail, say "I'm going to treat this as if it were a func_wall" and be done with it?
How does it work currently?
#842 posted by ericw [108.173.17.134] on 2017/05/31 05:53:31
Yeah, I'm going to take another stab at fixing func_detail's PVS issues. mankrip your suggestion sounds good to me, and it sounds like it'll share the same implementation.
How about (assuming I can get these to work :-)
- func_detail_fence - same as "func_detail" but doesn't clip away world faces, so it's usable for fence textures. Like func_wall, but doesn't use up an entity.
- func_detail_illusionary - same as func_detail_fence but no collision hulls. Like func_illusionary, but doesn't use up an entity, and as a downside it would block gunfire. Not sure if this would be useful?
#843 posted by mankrip [189.84.178.135] on 2017/05/31 06:19:46
That's good.
func_detail_illusionary would actually be really useful to simulate crouching. The real ground would be lower, with a func_detail_illusionary ground a little above. Of course, this would affect monsters too, so its usage may be limited to small areas.
 Workaround
#844 posted by negke [31.18.51.150] on 2017/05/31 11:40:51
I don't care much about quicker VIS times; all I want to achieve is phong shading and occasinally minlighting on brushes without taking up additional entity/model slots. Although marksurfaces eventually forced me to turn many of them into func_wall after all.
As for the issue I mentioned above, there's a workaround. As it turns out, phong and minlight also work on func_group, so making the big face a group instead of detail gets all the effects without the PVS problems. Good to know, albeit even more hax...
#845 posted by [66.229.17.0] on 2017/06/01 01:30:32
Is there a way of increasing the lightmap resolution?
 Use A Bigger Texture Than Scale It Down
#846 posted by FifthElephant [82.21.157.236] on 2017/06/01 02:19:15
texture scale is linked to the lightmap resolution.
#847 posted by mh [185.82.73.30] on 2017/06/01 09:37:09
LIT2 (see the opening post) supports increased lightmap resolution and we all went round the block with it a few years ago. No clear community consensus formed.
My own opinion is that it's a poor trade off for hugely increased file sizes, and it doesn't even look as good as you'd think owing to losing the soft edges on shadows.
#848 posted by mankrip [186.227.14.198] on 2017/06/09 12:37:19
It could be useful to add a compiler/worldspawn option to set portal brush contents to CONTENTS_EMPTY, because as it is, using CONTENTS_WATER, portals can't be (partially) placed inside of slime and lava.
#849 posted by mankrip [186.227.14.198] on 2017/06/09 12:39:42
By the way, Quake's episode 4 already has maps with underwater portals. So, allowing portals under slime and lava would bring more feature consistency to mappers.
 Azure Agony
#850 posted by Qmaster [70.195.85.209] on 2017/06/09 16:26:27
Used black for its teleport texture.
I think you mean teleport. Portal is something created by vis.
That's not a terrible idea but I think it would serve better as an entity field: _overridecontents 1 or something to that effect.
#851 posted by metlslime [107.77.75.89] on 2017/06/09 17:34:18
Just copy the teleport texture and call one copy *lavateleport and the other one *slimeteleport in your wad file.
 Oh
#852 posted by Qmaster [70.195.85.209] on 2017/06/09 22:10:40
thats brilliant.
|