 @gunter - .alpha Entity (.mdl) + DX8
#270 posted by Baker on 2016/11/26 22:23:38
Here is what I'm going to do ...
If an alias model (.mdl) has .alpha (transparency) ...
I'm going to force fullbright + overbright off for the rendering.
That will make your DX8 transparency look pretty much the same. Will probably add an unsaved cvar to disable the behavior, merely for possible future rendering testing purposes.
But this will effectively remedy the DX8 .alpha entity "looks less transparent than GL, and if overbright_models is off isn't transparent at all if overbrights off" issue.
#271 posted by Gunter on 2016/11/26 22:46:13
The demos are very short, and it's all the same issue -- qmb bubbles being weird. Though there are two different, related weird behaviors.
The issue starts out as the qmb bubbles moving very choppily, and after the map runs for a while, they just become completely invisible. This only happens when connected to a server.
I tested these demos on my older WinXP laptop and I see the same result in both DX and GL.
bubbles1.dem -- shows the qmb bubbles being invisible. This should be dramatically obvious -- just watch it with qmb_active 0 (or qmb_bubbles 0) and you will see that the ninja throws a row of bombs using the bubble sprite. Then turn on the qmb bubbles... and you won't see them anymore.
bubbles2.dem -- just shows that the qmb bubbles work correctly when not connected to a server.
bubbles3.dem -- the qmb bubbles are doing the choppy movement. It's like the engine is struggling to render them or something.... Again, just watch with either qmb_active 1 or qmb_active 0 to see the difference -- the standard bubbles move smoothly. Hmm, I wonder if maybe the qmb bubbles look choppy because they are invisible PART of the time....
Wait a minute... I wonder if this has to do with ticrate... let me test.
Yep, that's it! Mark V's rendering of the qmb bubbles is somehow affected by server ticrate. I can imagine if that gets out of sync, it could be drawing them invisible when it should be drawing them visible, or something....
The standard bubble sprite rendering doesn't suffer from this - they seem to move smoothly.
Yeah, when I'm connected to FvF with a .1 ticrate, the qmb bubbles (only) seem to move as if I'm playing locally with host_maxfps 10
Adjusting the ticrate to .05 or .01 smooths out their motion.
Ohhh, another possibility: since QMB is replacing the bubble sprite with an EFFECT, perhaps the movement of that effect is not subject to motion interpolation, which is why it seems to jump along at the ticrate instead of moving smoothly?
That wouldn't quite explain the complete invisibility though.... And other effects seem to move smoothly.... Like the underwater bubbles from explosions or nails -- they move smoothly.
 Re: QMB + Historical Particle Inconsistencies
#272 posted by Baker on 2016/11/26 23:02:12
These things you are discovering me always aggravated me about QMB back in earlier times.
I'm going to see if I can fix them by rewriting the code to be more precise about what happens.
I may be able to fix the bubble lerping interpolation too, great job thinking about that -- makes a lot of sense.
The problem with how QMB was written is that it wasn't too friendly with what modders like to do and somewhat inconsistently changes the modder's intended particles, and in a way that appears random.
Time to replace that with some sensible consistency that can also be turned off ;-)
 @dwere - Malice Monster That Doesn't Render In GLQuake Engines
#273 posted by Baker on 2016/11/26 23:39:46
dwere, what Malice monster is the one that you are saying is multipart and only renders consistently in WinQuake and Enhanced WinQuake, but not even Mark V WinQuake.
Is it monster_banshee?
I'm having difficulty locating one in game? Is there a certain map it appears on.
Want to inspect that.
#274 posted by Gunter on 2016/11/26 23:59:57
"and somewhat inconsistently changes the modder's intended particles, and in a way that appears random.
Time to replace that with some sensible consistency that can also be turned off ;-)"
Indeed.
I added a new short demo to the zip called splash.dem, to demonstrate an example of just what you are talking about, involving a blue particle water splash effect I made. Hopefully this is one of the issues you can address:
http://fvfonline.com/bubbles.zip
Just watch splash.dem with qmb particles disabled, then watch it with them enabled to see.....
 @dwere -- Malice Multipart Monster
#275 posted by Baker on 2016/11/27 00:11:26
If the monster in question is a banshee.
On map d12, I am at 2812 -668 -104 and looking at one. You can type setpos 2812 -668 -104 after loading d12 to teleport there.
It looks fine in the opengl version and the winquake version.
Is it a different monster with issue. Or a specific map. A save game or demo would be useful, I can't seem to recreate the issue.
#276 posted by Baker on 2016/11/27 00:18:21
@gunter --- when you were doing the auto-connect test earlier were you using port 26000? Doesn't change that the Spiked Quakespasm networking code prefers Windows Vista and later operating system for best results and certain enhanced features, but server auto-detect requires server using port 26000.
#277 posted by dwere on 2016/11/27 00:30:37
Is it monster_banshee?
Yes, it's one of them. The other one is called "Takahiro Rider" (don't know the internal name).
Off the top of my head, a banshee can be found on d8.bsp. Cheat yourself keys to speed things up, go to the yellow lift. You'll end up in a big square room. The banshee mech is gonna be revealed when the middle section opens.
Sorry, should've told that earlier.
#278 posted by dwere on 2016/11/27 00:33:04
The ones in d12 work for me, but on d8 it appears without head most of the time.
 @dwere
#279 posted by Baker on 2016/11/27 00:35:59
Haha ... yeah that doesn't look right. The top isn't there.
#280 posted by Gunter on 2016/11/27 00:45:03
Yep, default port 26000
I don't suppose these monsters you are looking at have skins with alpha transparency? That caused my replacement bubble sprite to be invisible....
 @dwere - Malice Multipart Monster
#281 posted by Baker on 2016/11/27 01:00:28
You can type sv_novis 1 for that map to make even the top part of the monster visible in that room.
The upper model (banbody.mdl) is highly unusual as it is highly above the model centerpointer ("the origin" in QuakeC).
On the server side, I think it thinks that part of model is in the ceiling.
A can't change how server side visibility works, it would potentially bust modern compatibility with modern map releases.
Mark V WinQuake tries to handle it like the GLQuake engines for consistency.
/At some point, I might do some more thinking since technically "WinQuake is, by, definition actual Quake" -- but in practice, the GLQuake engines have been the dominant ones for 15 years -- which is why I made Mark V WinQuake handle things like a GLQuake engine. It isn't immediately clear if there is any change that could resolve this without breaking something else as a side-effect, but many times after thinking about things for a few days I might get an idea.
I was hoping using NightFright's Malice .vis files might fix, but it didn't.
 I See
#282 posted by dwere on 2016/11/27 01:08:08
Well, thanks for looking into it anyway.
 Malice
#283 posted by NightFright on 2016/11/27 02:32:34
I also experienced this back then when I was testing Malice by myself. However, I was focussing on the showstopper bugs that had still exited back then.
In case you don't find a way to solve this, it's not the end of the world imho since the addon itself remains quite playable. Which is quite something.
#284 posted by Baker on 2016/11/27 03:20:19
I've already outlined possible solutions.
I do not like incompatibility.
I want the engine to be able to play everything the way it is meant and the way it worked with original Quake.
I'm hardcore about that.
#285 posted by Gunter on 2016/11/27 05:51:48
The qmb lighting bolt has transparency problems with vid_hardwaregamma 0
The lower your txgamma setting, the more noticeable it gets. Or maybe just modifying the setting makes it stick out more....
Just shoot some lightning and do a freezeall and you'll see what I mean.
Actually, now that I'm looking for it I can see it faintly when using hardware gamma too -- it's just more noticeable using txgamma.
But the view blends... the view blends look PERFECT when using txgamma.... Not too dark, not too light. I guess gamma adjustments really mess with those.
#286 posted by Gunter on 2016/11/27 06:15:37
... and I'm REALLY picky about my view blends.... But these look JUST RIGHT.
#287 posted by metlslime on 2016/11/27 08:24:32
The axe is alwys transparent. But no other gun.
Axe is the one gun without fullbright pixels, so probably follows a different codepath that doesn't use the fullbright mask.
#288 posted by Baker on 2016/11/27 08:43:50
What metlslime said.
@gunter ... since you can find moving sprites (I honestly don't know of any moving sprites in any mod except yours, makes lerping of sprites real hard to test), the QMB bubble's lerping in next build will be test candidate.
If you say it works, fine -- I'll apply lerping to all sprites.
#289 posted by ericw on 2016/11/27 09:22:03
I honestly don't know of any moving sprites in any mod except yours, makes lerping of sprites real hard to test
Go into the water in e1m4, the air bubbles coming from the doorway on the right side are moving spirtes, I think? The player makes them when choking, too.
#290 posted by metlslime on 2016/11/27 10:06:51
steam & flame in rubicon 2 are sprites.
 @dwere - Malice Multipart Model Solved.
#291 posted by Baker on 2016/11/27 10:19:10
@ericw -- e1m4 .. keep forgetting about those bubbles.
@dwere - sv_setmodelrealbox 0 -- before map load gets the job done.
Is no doubt an ok setting for playing the entire Malice mod. Like "game malice; sv_gameplayfix_setmodelrealbox 0" in console which reverts to ancient style WinQuake culling boxes.
sv_gameplayfix_setmodelrealbox defaults to 1 (1 = FitzQuake culling/physics box, 0 = WinQuake culling/physics box).
That banbody.mdl model is pretty awkward, I don't if it thinks it is in several visibility leafs or just all the ones it thinks it is in are wrong or what.
 Mark V - Build 1008
#292 posted by Baker on 2016/11/27 12:26:59
Download at normal location:
http://quakeone.com/markv
Changes
1) Removed all the internal testing commands except "dir" (c0burn).
2) DX8 build: equivalent .alpha appearance for .mdl (gunter)
3) sv_gameplayfix_setmodelrealbox 0 improved for Malice (dwere)
4) Sprites like E1M4 bubbles are now lerped (gunter).
5) QMB bubbles should behave like normal bubbles. (gunter).
6) Autosaves are named auto_save_0.sav to 2
7) GL/DX8 version can do -dedicated again ok.
/Typing "version" in the console will show as build 1008.
@metlslime - the more sprite examples the better. ;-)
@gunter - Pay close attention to sprites and if you could, could you give the WinQuake build a look too. I don't expect problems, but without a lot of live testing, I'm always suspicious of any change.
@dwere - This Malice multi-part model on d8 map is a great compatibility test case. First example I know of where FitzQuake bounding boxes cause unwanted culling. It is extremely rare and due to that, hard to find any examples at all. Conversely, Mark V WinQuake adopted FitzQuake bounding boxes as part of first version because it solved a glitch in the X-Men mod where items disappeared if you stood in the right place.
sv_gameplayfix_setmodelrealbox ...
0 - WinQuake (-16 xyz to 16 xyz)
1 - FitzQuake (measure model, default)
For Malice, set sv_gameplayfix_setmodelrealbox 0 before loading a map or save game and everything should be great with any multipart models.
Next update will contain:
1) Alpha channel support for 2D replacement textures, current support is alpha mask only (yes/no).
2) Rewire QMB to be more consistent with particles and be able to turn precise particle behaviors off. (+ alpha channel issue with txgamma)
#293 posted by Gunter on 2016/11/27 17:19:27
4) Sprites like E1M4 bubbles are now lerped (gunter).
5) QMB bubbles should behave like normal bubbles. (gunter).
Uhhh, the first thing was never a problem. It was ONLY the qmb bubbles that were being weird. All other sprites were always fine and smooth-moving. So I don't know what you fixed, but you might wanna un-fix it to be safe, heh.
The second things is definitely improved. The qmb bubbles now move smoothly, BUT the "sometimes invisible" issue still remains. I tested on the actual server and in the previously-recorded demos I made. So, if you watch bubble3.dem now with qmb bubbles, they will move smoothly. But with bubble1.dem you will see no bubbles at all....
This is a tricky one. All I know for sure is that if the level has been running for a while, the qmb bubbles are no longer being drawn. Resetting the level brings them back.... I'm going to try this locally by leaving Quake running for a while to see if it is just an issue when connected to a server.
Hm, things now render transparently no matter what the gl_overbright_models setting is, BUT now gl_fullbrights affects them the same way:
gl_fullbright 1 = most weapons opaque (not axe) unless using custom textures (must be as metlslime said, and the custom textures don't contain fullbright pixels). Illusionary ent guy is also opaque.
gl_fullbrighs 0 = everything transparent, including illusionary guy.
Also, toggling external_textures does not affect sprites (like the bubble and light ball sprites in id1\progs\) until level change.
#294 posted by Gunter on 2016/11/27 19:04:19
Mmmkay, verified: after running a map for 35-40 minutes, qmb bubbles become invisible.
Tested on e1m1 and reproduced. Go stand by the mega health and jump in the water and drown a little bit. Watch your QMB bubbles pop out and float above you.
Now sit there and idle for 40 minutes... You don't need to do anything else in Quake. Now jump in the water and drown a little more, and you won't see any bubbles unless you disable the qmb effects.
Oh, you don't wanna sit there for 40 minutes to test this? No problem! Just set host_timescale 100 or 1000 and run the clock up to around 40:00 and you get the same result!
Isn't that weird?
Ah, it's easier to test by going to e1m4 in single player, noclip, notarget and go stare at the bubbles underwater. Mess with your timescale.... I have found that the qmb bubbles go away like clockwork at: 34:08
QMB Bubbles: "This level is taking too long! I'm outta here!"
|