|
Posted by metlslime on 2002/12/23 18:24:21 |
Talk about anything in here. If you've got something newsworthy, please submit it as news. If it seems borderline, submit it anyway and a mod will either approve it or move the post back to this thread.
News submissions: https://celephais.net/board/submit_news.php |
|
|
Dumptruck_ds & Gila
#32071 posted by Sidiouth on 2022/01/09 23:45:25
No worries now, I have it sorted. Great pack too!
Beyond Belief Redux?
So Matthais Worch is over on the Quake Mapping Discord messing around with TrenchBroom and "updating" Beyond Belief and he's experiencing sorting issues where QBSP will show overlapping brushes with the "back" brush being sorted first. We think this is due to updates in QBSP since he's using GLQuake to test. Could someone point me to where this might have been discussed in the past? And if there's something that can be done in leu of using outdated compilers?
I am curious about it and it would save him quite a bit of work if he could figure it out.
#32073 posted by anonymous user on 2022/01/10 09:40:48
Assuming you're talking about transparent water - I think Quakespasm doesn't have any alpha sorting at all, things like portals behind water will just be drawn in whatever order.
Other than that I don't understand how QBSP can "show" anything. If two solid brushes were overlapping, only one surface should remain. If two different bmodels overlap you'll get regular z-fighting.
Sorry
I wasn't clear. It was late when I posted that.
In these very old maps, Matthias has overlapping brushes that used to display properly without z-fighting. Now the order is reversed and we're trying to figure out if it's QBSP that is the cause and if there's a way to reverse the order of which brush is chosen to display. It could be that he developed these in WinQuake and the rendering order was more "predictable" in that exe.
Some quotes:
it looks wrong in the editor, the brushes overlap. but back then, they overlapped "correctly" to prioritize the desired brush after compile. my maps were full of this stuff
i made everything in wireframe in Quest, couldn't avoid it really
Here's a GIF showing it.
#32075 posted by anonymous user on 2022/01/10 18:05:12
Still not exactly clear.
So, two worldspawn brushes occupy the same plane, and the smaller one used to take priority but now does not. If that is the problem, it must be QBSP, and whatever goes on in the editor or in the game is irrelevant (Trenchbroom will always flicker, and the game will always only show the face that survived qbsp).
Could be some sorting based on brush size. Maybe it used to be based purely on the order of brushes in the map file. Doesn't seem like there are any switches to disable it though. Probably only coders who have dealt with compilers directly would have an actual answer.
Coplanar Brushes
#32076 posted by metlslime on 2022/01/10 18:17:14
In my experience, it seemed like the later brush in the map file would take precedence over earlier ones in the map file. So, it could be that editing those brushes re-ordered them in the file (at least in some editors, any modified brush gets moved to the end of the list.)
If he specifically creating brushes in the same order as before (wall then light fixture) and it's giving opposite results, that could be from a change in QBSP. To verify this I guess he could re-compile the unmodified map source and see if it gives expected results or the same problem that the modified maps have.
I just downloaded Nehahra from Quaddicted through Mark V's console. It worked right away with "game nehahra".
It doesn't work well though. After playing through a bit of it, I didn't get many of the voices.
Random Musing Incoming.
#32079 posted by Text_Fish on 2022/01/11 14:03:26
How come more code from Quake 2 hasn't been borrowed by Quake 1 mods?
Case in point; ladders and rotating brushes. Quake 2 got ladders right on its first try 25 years ago, yet AD has those godawful sticky catapult deathtraps. Quake 2 has really easy to use rotating brushes, yet both AD and Quoth both stuck with that horrendously buggy and limited system from the mission packs.
Scrolling textures is another Q2 feature that I'm sure would get a lot of use in Q1.
As somebody who only has some very basic coding knowledge, I'm just curious why these seemingly obvious solutions haven't been borrowed.
@Nehahra
#32080 posted by RickyT33 on 2022/01/11 16:31:04
Trying to watch this again :D
It's so long. The voice acting is hilarious. I've tried to watch it numerous times in my life.
Q2
#32081 posted by ijed on 2022/01/11 17:14:15
Solved a lot of that stuff engine side - rotatings especially.
Mh did it for RMQ engine, but that was spoiled since nobody wanted the mod.
The main thing is that it's hard to decompile the solutions from Q2 - you really need the source and a reason to do it.
The reason is usually supplied because a mapper wants feature X.
The best mod for mapper features was Q2 Lazarus - physics, weight, monsters improvements, custom monsters, custom monster flags, monster AI (including proper jumping and waypoints), new weapons, trains, drivable vehicles and a load of other stuff. It had (a lot) more features than HL1.
It also, unfortunately, never really had its potential tapped. The handful of mappers who used it just wanted to use the homing rockets flag.
Q1 has had a number of attempts at housing the various features in a single mod. Extras R4, Quoth, AD and the various other megamods all grabbed a few off the mapper wishlist.
Ultimately mappers don't want/use them though, which is a shame.
And yeah, Q2 is hard to decompile and does not translate to Q1 codebase.
Nehahra
#32082 posted by ijed on 2022/01/11 17:14:55
Is more entertaining than the MCU.
#32083 posted by Joel B on 2022/01/11 19:08:17
I don't disagree with most of what ijed says, but mappers absolutely do want and use those feature-mods like Quoth, AD, Alkaline, and progs_dump.
#32079
#32084 posted by mankrip on 2022/01/11 19:12:52
Software Quake prevents z-fighting by making all brush entities be clipped by the world brushes in worldspace. And this is only done against the world brushes, not against other BSP entities, which is why maps such as the ones in Contract Revoked have per-scan z-fighting issues in software Quake engines.
BSP entities such as func_wall are not "worldspawn" entities. Their brushes are stored in the map's BSP, but they're processed along with external BSP entities such as ammo boxes.
But anyway, with current hardware-accelerated Quake engines hitting a thousand frames per second, it's a shame that none of them uses some CPU code to clip the brush entities' polygons against the world like WinQuake did. That would have zero performance impact for the world itself.
Scrolling textures is another Q2 feature that I'm sure would get a lot of use in Q1.
Retroquad has it, using the [ and ] characters in texture names to indicate negative and positive scrolling for both axes.
DP and FTEQW likely supports it in some other way, maybe through Q3A shaders. But I don't remember any engine specifically using Q3A shaders in Q1 map formats.
@Text_Fish
#32085 posted by metlslime on 2022/01/11 19:23:55
Proper rotating brushes would be great, but the Q2 solution relies in the q2bsp format. They store original brushes in there so that the engine can expand them in realtime. If you search for "true rotation" on this board there are conversations about a less painful method. I think those attempts were abandoned due to backwards compatibility. They also have issues due to ignoring the fact that a rotated hull won't give accurate collision.
I think good ladders are achievable in quakec, unless your complaint is the need to place a trigger instead of tagging brushes as "ladder". Probably just needs more code iteration to make it good.
Scrolling textures -- agree on this. An easy feature to implement, just needs an accepted standard, and then an example implementation. I guess the right people never strongly cared. (correction, some engine coders did address it, for example mankrip added it in retroquad I believe. And LordHavoc would probably tell you that darkplaces already supports q3 shaders so just use those.)
#32086 posted by anonymous user on 2022/01/11 19:28:42
Can't be func_walls, because if that were the case it wouldn't have ever looked correctly, not in WinQuake, and not in GLQuake.
Must be plain worldspawn.
#32087 posted by mankrip on 2022/01/11 21:44:01
#32086: coplanar polygon overlapping simply does not exist in the BSP format. Polygons in a model can only be overlapped by the polygons of different models, and for that to happen they must be used in different entities.
dumptruck_ds: does that also happen in this version of Beyond Belief? I'm going to take a look into that later. I know the old release runs in WinQuake, but the newer wip version should run in MarkV WinQuake.
#32086
#32088 posted by mankrip on 2022/01/11 21:48:25
Also, Z-fighting in the worldspawn model simply does not exist in WinQuake. func_walls does look correctly in it no matter how much polygon overlapping there is against the world model.
As I said, WinQuake clips func_wall polygons against the world polygons in worldspace, killing any overlapping against the world.
#32089 posted by anonymous user on 2022/01/11 22:06:44
Well yes, coplanar worldspawn brushes will just leave either one face or the other after compiling, that is my point. Either the compilers or the brush order must have changed.
In WinQuake, overlapping func_wall would have been invisible, i.e. the opposite of the desired result. Since it used to look right, it couldn't have been a func_wall.
#32090 posted by mh on 2022/01/12 06:45:12
A significant percentage of what people want can be achieved by just using the Q2 BSP format. Of course that brings in other things that people don't want, such as storing textures outside the map.
Some of these features were discussed when designing BSP2, but in the end the overriding priorities were ease of implementation in existing codebases and keeping compatibility with the original .map file format. The fact that BSP2 succeeded vindicates this, but I still regret not including a Q3A lightgrid lump.
I need to look over how software Quake clips brush models again. It's been a while but my recollection is that it's not actually that simple, and may have dependencies on faces being converted to spans before it does the clipping.
Q2 Feature Requests
#32091 posted by sock on 2022/01/12 19:53:15
Case in point; ladders and rotating brushes. Quake 2 got ladders right on its first try 25 years ago, yet AD has those godawful sticky catapult deathtraps.
AD has 3 ladder systems;
1=Rubicon2 (sticky + jump upward only movement)
2=Extra4 (player facing direction for up/down movement)
3=FTE (uses skin key, works like extra4)
The reason most people use the rubicon2 system because its easy to implement, the source is available and most people understand it straight away (ie don't fall off ladders and die) Probably the best system is the FTE skin system (closest to Q2) because its engine controlled and not hacked by QC progs to fight the engine physics.
I have pestered eric to add rotating brushwork support to Quakespasm for years and at this point I think everyone has just given up because the chance of it breaking something else in the engine is too high! With no universal engine solution everyone just accepts the shite QC Hipnotic version instead. The RMQ and DP/FTE versions are very good, but to really make a difference it needs to be added to the core (QS/Mark/Fitz) engines to really be adopted. Ideally it should be a declared feature so that progs can switch around rotation types.
PS. Tried to login properly, but can't remember password anymore. I had to reply to the AD jab from Text_Fish because there is a lot of history to the reasons why stuff is the way it is!
Bruh
#32092 posted by RickyT33 on 2022/01/12 21:42:24
nathnolt has the best ladder. In bsp. He let me use it in the map I just released. I used it in 2 places. One place is the courtyard at the start. You just walk forwards, and you convincingly bounce up the steps, one at a time, at a believable speed.
#32093 posted by mankrip on 2022/01/13 23:30:18
I need to look over how software Quake clips brush models again. It's been a while but my recollection is that it's not actually that simple, and may have dependencies on faces being converted to spans before it does the clipping.
I don't remember the exact order, but here are the steps:
First of all, the server uses VIS data to determine which BSP entities may be visible to the client.
The engine clips all visible BSP entities' polygons against the world. Somewhat similar to selecting the world in a map editor and using the "carve" function. This is what eliminates coplanar textures in software Quake.
Frustum clipping also clips the BSP polygons, this time against the frustum.
Spans clipping is the last step in vanilla software Quake. It clips the spans of the resulting polygons against each other in screenspace, ensuring zero overdraw and eliminating most of the need for a depth buffer.
Z-buffer checks clips the polygons' spans on a per-pixel basis, and is only done by custom engines with features that requires overdraw (semitransparent water, colormasked textures, etc).
Vanilla Quake's source code makes things confusing because the worldspace "carve" clipping, the frustum clipping and the screenspace spans clipping uses very similar terminology in the code. There are lots of "edge" clipping stuff in the comments with no mention of screenspace and/or worldspace.
#32089
#32094 posted by mankrip on 2022/01/14 00:35:24
In WinQuake, overlapping func_wall would have been invisible, i.e. the opposite of the desired result. Since it used to look right, it couldn't have been a func_wall.
Good point. Maybe, for some reason, that worldbrush was now converted into a brush entity by either the map editor or the BSP compiler. Comparing the current map sources against the map sources of the original release may give a clue.
Also, r_drawentities 0 helps to identify which brushes are part of BSP entities.
If the coplanar polygons are still present with r_drawentities disabled, there's something really broken in the BSP file.
#32094
#32095 posted by anonymous user on 2022/01/14 04:31:05
If this was an endurance excercise to see who can keep guessing the longest without opening TB and actually testing it, I guess I lost.
No but seriously though, there's no need for some rogue brush entities when it's simple qbsp. I think I got it right in #32075, then metl agreed, and then dumptruck never responded.
Like this. Note that TB doesn't consider brush order to be significant, while compiler clearly does. Case solved?
|
|
You must be logged in to post in this thread.
|
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.
|
|