|
Posted by Baker on 2012/06/29 11:38:17 |
I wasn't planning on doing this mini-project, it started as an effort to address some Fitzquake issues, fix them the right way up to Fitzquake standards (i.e. do it right, once and properly versus continual releases) and donate it back.
FitzQuake Mark V Download:
http://quake-1.com/docs/utils/fitzquake_mark_v.zip
Short version: Eliminated most issues in FitzQuake thread, most issues I can even remember hearing of ever and marked every single one clearly with a very minimal implementation.
It may be the case that only metlslime and Quakespasm and engine coders may find this engine upgrade of interest.
Features: 5 button mouse support, single pass video mode, external mdl textures, alpha textures (like RMQ), record demo at any time, rotation support, video capture (bind "capturevideo toggle"), console to clipboard, screenshot to clipboard, entities to clipboard, tool_texturepointer, tool_inspector (change weapons to see different info), clock fix, contrast support, fov does not affect gun, gun displays onscreen, Quakespasm wrong content protection, external ent support, session-to-session history and .. (see readme). |
|
|
Ericw:
#1119 posted by metlslime on 2016/09/15 21:53:17
Another cvar to try: r_flatlightstyles 1 -- it removes styled lights without sacrificing dlights the way r_dynamic/gl_flashblend would.
#1120 posted by Gunter on 2016/09/15 22:05:29
Ah, thanks, Baker. scr_sbarcentered 0 is just what I wanted.
ericw, r_oldwater was the culprit. As soon as I turned that off, the FPS smoothed out DRAMATICALLY (running in an 800x600 window, it went from 6 FPS to just over 60, standing in the Start map, looking at the 3 teleporters and lava -- all water surfaces). Oddly, running full screen seems to give me about a 10 FPS decrease....
And gl_info returns:
intel
intel 945GM
1.4.0 - Build 7.14.10.4926
Choppy Fog
#1121 posted by Gunter on 2016/09/15 22:12:10
Oh, and this probably can't be helped (I skimmed over mh's post about fog, above), but the fog in DX Mark V is rather unsmooth compared to the OpenGL Mark V.
http://imgur.com/a/fNE7a
It's hard to get a good still image of the effect, but you can tell the lower image is much more "line-y" even in areas that aren't so dark on the wall. It's really noticeable when walking around, because you see the fog lines moving across the walls.... The OpenGL version had a much more subtle effect, and seemed smoother and much less noticeable on most surfaces.
I guess this is just a result of DX not doing fog as well or something? Probably not a setting to smooth that out.... Too bad; I like a little fog. Give a nice sense of depth.
#1122 posted by Baker on 2016/09/15 22:37:37
Are you interested in doing a review of Quakespasm from your perspective?
Most of the feedback Quakespasm receives is from single-player only types.
Diversity of feedback is what makes an engine better and helps developers have a broader point of view.
(re: fog --- Yeah, I have no control over Direct3D differences in fog rendering. Probably midday tomorrow, I'll try to rebuild fixing missing voreball trail. I probably stripped the flag.)
#1123 posted by metlslime on 2016/09/15 22:47:46
that fog banding is interesting, because both shots have the same number of bands, but somehow on the lower shot it's more noticable.
If you look at the darkest parts of the image, like the wood pillar on the left side, it's clear that the lighting ramp is different -- top shot appears more blown out (slightly) -- i wonder if that's why the banding is more noticable in the bottom image, because the lighting is darker so the fog grey color has more higher contrast to the black walls.
Anyway both shots look bad, and this is a good example of why fog is difficult to make look good. You need to avoid solid colored patches of the scene, (such as a pitch black wall) since only the noise of textures and lighting can hide the banding that will always occur.
Gunter
#1124 posted by ericw on 2016/09/15 23:12:07
ericw, r_oldwater was the culprit. As soon as I turned that off, the FPS smoothed out DRAMATICALLY (running in an 800x600 window, it went from 6 FPS to just over 60, standing in the Start map, looking at the 3 teleporters and lava -- all water surfaces).
Thanks! Glad that worked.
#1125 posted by mh on 2016/09/15 23:25:28
I guess this is just a result of DX not doing fog as well or something?
GL or DX don't actually "do fog" at all - your GPU does. All that GL or DX do is provide your program with a means of saying "draw this polygon with fog", but your GPU does all the actual drawing.
With everything else being equal, there should be no difference whatsoever between images produced by one API versus images produced by the other, because it's the same GPU that's doing the drawing; all that the API does is send commands to the GPU.
On the other hand, DX does provide a handful of extra fog quality/performance options whereas GL hides them all behind a single glHint (GL_FASTEST/GL_NICEST), and allows the actual result to be implementation-dependent.
One possibility is that one of those extra options, if configured, would resolve it.
Another possibility is that the projection matrix isn't configured correctly in the DX version, causing loss of some depth precision, causing the extra banding.
#1126 posted by Gunter on 2016/09/16 05:03:38
Baker, I'm afraid I just find Quakespasm off-putting for various reasons, but I will try to give it a test drive, since you asked....
So, it seems that now DX Mark V is running fine in a window... I'm not sure what changed (I often delete config files when testing), but most likely it was just me rebooting my netbook after testing no-telling-what last night.... In any case, the DX version is now running just as smoothly as the older OpenGL one, even in a window.
But here come some bug reports! heh
Your default lava color is incorrect!!!!!
Haha, yeah, this is a minor niggle, but your r_lavacolor is "255 80 50 150" and the Quake default should be "255 80 0 150" (search for "lava" here to see http://unix.superglobalmegacorp.com/quake1/newsrc/Quake/view.c.html )
It does alter the color a bit... Of course, the lava intensity needs to be dropped to about 100 for my tastes; in standard Quake, if you were in lava you were dead, so it didn't matter that it was blinding in there. But in Runequake and FvF, there are ways to be in lava and not be dead, so you need to be able to see a little bit... 100 looks good to me (it's still lava, after all!). Normally I'm for keeping the defaults, but in this case, it would benefit from a slight change. Though I'm afraid I don't like the "light" blends in Mark V though -- way too transparent. But as long as it defaults to the defaults, that's fine. And Mark V provides the ability to change them to tastes, so that's fine too.
All other blends look good to me at Quake default, though for some reason the Ring blend looks a bit heavy. Maybe I'm just used to all the Quake clients that made it too light, but is there a variable to adjust the Ring blend? Hm, it does look like the cshift_powerup stuff for invisibility is the highest % on that page I just linked. I guess it's supposed to be that way.
Speaking of invisibility... I really liked that "always draw weapon when invisible" option in the old OpenGL version of Mark V that I was using... It made my weapon transparent. I like little tweaks like that which enhance things without really drastically changing the default Quake feel.
However, in the new DX version, the weapon just stays completely solid, and in the Winquake version, the weapon is completely invisible again... (of course I can't test the newest OpenGL version...). I wouldn't expect the Winquake version to do good transparency, but it seems the option, in that case, should leave the weapon completely solid. Which I actually don't like (laugh)!
Fog
#1127 posted by Gunter on 2016/09/16 05:40:28
Ok, so, I find this interesting too, though I am clueless as to the internal stuff.
I cranked the gamma and contrast up to max (for the sliders) and made some more screenshots.
OpenGL (older version of Mark V) is on top, and the newest Mark V DX version is on bottom....
http://imgur.com/a/pkjip
You can see the ugly square of fog over the close wall in the bottom image.... Though it turns out, in the top (OpenGL) image, the fog is actually extending farther toward the "me" in the image -- that's why the left edge of the first image looks lighter. The OpenGL fog still somehow looks better/smoother (even in this forced setup). I'm not changing any other settings -- just switching which client I run.
Here the same angle with fog off, and they are pretty much identical:
http://imgur.com/umSZFPC
You can only tell them apart because of the odd lighter shadow under the grenade launcher in the OpenGL one -- I don't notice that in game, but the screenshot seems to capture it, same as the first image I posted upthread. Uhh... for some reason, imgur may resize the view so the odd lighter shadow is not visible o_O But trust me, it's there in the original image, heh.
Ok, now the most interesting image.... I changed my position to emphasize the fog distance difference:
http://imgur.com/RhCrSig
Now look at that!
The fog does get closer to "me" in OpenGL, but also the bands on the wall are not all straight and parallel, which actually helps them not seem so ugly/uniform/bandy/unnatural.... And especially in the lit areas of the wall, the GL fog looks much better than the DX. This is what is pretty noticeable in play, under more typical lighting conditions.
There's also some difference in the interaction of the fog and the teleport texture.
#1128 posted by mh on 2016/09/16 17:06:10
Image 3 settles it - there's a different fog range calculation being used depending on the API.
That's going to require a code change and a whole bunch of testing to fix up though.
Wait...
#1129 posted by Gunter on 2016/09/16 17:30:13
While testing Quakespasm, I looked at the fog (looks good - identical to the OpenGL images above), and I noticed what is causing the difference.
The fog is BEHAVING differently... and this would be hard to capture in a non-animated image, and it may be difficult to describe. But you should be able to replicate this yourself if you wanna see it in action. Just ramp up your brightness and contrast in Quake, and go to the entry room for E4M8 and look at the black wall opposite the portal while walking forward very slowly, or even looking left and right a bit. Oh, I also use a very light fog setting 0.03
The GL fog is JUMPING along the wall, in small sections at a time. That's why the bands in the GL screenshot are not perfectly straight lines -- one section of the line will jump forward, then another section. This actually makes it less noticeable on the walls when you are moving around, because you don't see any "movement" -- a line doesn't move across the wall, it just suddenly is there or isn't there, and that's really hard to notice when you're moving around, especially with the lines being not perfectly straight due to them jumping unevenly.
The DX fog is MOVING very smoothly along the wall, in perfectly straight lines. It looks bad because you easily see the movement of straight lines smoothly scrolling across the walls....
Animated Fog
#1130 posted by Gunter on 2016/09/16 18:08:05
Ok... animated images... Keep in mind the colors will be extra ugly for being compressed to a GIF.
Just barely creeping forward you can see how the GL fog jumps in small sections, instantly. There are no missing frames in the fog's positions:
http://imgur.com/grwHCPv
In DX, moving forward a big faster, the fog evenly scrolls across the wall. There are lots of missing frames of fog position in the animation.... I'd describe it as similar to interpolated movement, if that makes sense, because it moves very smoothly across the wall.
http://imgur.com/sTbVMuU
Is there any point to doing/discussing this?
Who knows!
I just do the testing. It's up to other people to do anything about it ;)
#1131 posted by Baker on 2016/09/16 19:23:49
Windows Build
Vore trail fixed, "submersion in lava" color slight typo fixed.
/Took a quick look at the DX transparent model with invisibility ring. Oddly discovered it doesn't look like FitzQuake 0.85 ever had a pathway to use model transparency if the driver doesn't support combine (the Direct3D wrapper does not support combine) --- so may not even be possible (didn't expect that). The non-combine rendering pathway does a series of operations that already use blending but it isn't alpha blending -- so that's probably one reason FitzQuake uses combine in the first place. A bit annoying.
I don't have time to do anything of substance on the engine, but the above 2 things were 2 minute fixes.
But in the future when the day comes that I have that time, I always read all the notes.
#1132 posted by metlslime on 2016/09/16 20:32:05
That's interesting, i don't remember whether i added that support or not (but i would have assumed i did.) There is this comment in the readme:
- fullbrights now use additive blending instead of alpha blending. This allows me to support external glowmaps, and entity transparency with fullbrights/glowmaps. In some cases, additive fullbrights are rendered using multitexture, but only if GL_EXT_texture_env_add is available. The command line option -nocombine will disable the use of GL_EXT_texture_env_add.
This implies that without combine, models with fullbright masks are rendered in two passes. It doesn't say that they are rendered correctly with alpha though... hmm.
#1133 posted by Baker on 2016/09/16 20:56:38
It is probably a virtually non-existent situation.
I've not seen an instance of someone using .alpha on an alias model in a single player release. And there probably aren't any Open GL drivers that don't support combine.
It's just that the Direct3D wrapper doesn't have combine ability written in the code and that Mark V offers a "gun with transparency" option when invisible, instead of Quake not drawing the gun at all.
/But the brush models don't suffer this problem in the Direct 3D + no combine scenario (I tested against back2forwards which uses .alpha for glass). So at some future date when I have time to chart out the rendering, I should be able to rewire something --- assuming I would do that instead of maybe taking a shot at adding combine to the Direct3D wrapper.
#1134 posted by Baker on 2016/09/16 20:58:25
(Actually, thinking about that --- Nehahra does .alpha on wraiths and Mark V runs Nehahra.)
#1135 posted by metlslime on 2016/09/16 21:14:33
the sparks in rubicon2 fade out using alpha (they are models)
#1136 posted by Baker on 2016/09/16 21:18:56
Hehehe, never noticed that. I only noticed the laser barrier bars and such used .alpha.
#1137 posted by ericw on 2016/09/16 22:07:31
Torch flames in sock's maps usually (always?) have alpha as well. Any maps using Preach's smoke model.
Animated Fog
#1138 posted by mh on 2016/09/17 11:38:49
I did proper animated fog once. It used world position and a function of time to do a lookup in a 3D noise texture which was then used to adjust the opacity. It looked beautiful but the performance hit was just on the wrong side of what I considered acceptable.
Totally irrelevant to the ongoing fog discussion, of course, but it was fun.
Low-Lying Fog
#1139 posted by Qmaster on 2016/09/17 15:28:54
While we're mentioning fog, faint transparent water with a more subtle texture could make for neat looking fog, especially if combined with mankrip's shore fading.
#1140 posted by dwere on 2016/09/17 15:53:55
Contract Revoked used this trick, IIRC.
Contract Revoked
Didn't have fog.
#1141
#1142 posted by mankrip on 2016/09/17 16:46:04
dwere was probably talking about this. I didn't adjust the translucency and soft depth levels to match Qmaster's suggestion, though.
Quakespasm, Pt. 1
#1143 posted by Gunter on 2016/09/17 19:50:45
Ok, you asked for it Baker, so here is my review of Quakespasm. Much of this will be personal preference, and other stuff will be comparisons to Mark V.
I mentioned that Quakespasm is off-putting to me. This starts with the website (I talked about that long ago, way upthread). I do note the addition of a clear "readme" link on the site, and that's a definite improvement, because when I go to try and download something like this, I want specific information rather than the vague artsy presentation which just gets in the way....
The second off-putting thing to me was all the files Quakespasm wants to drop into my Quake directory.... My goodness, that's a lot of files. 12 DLLs, a PAK file, 3 TXT files and an HTML... along with the 2 EXEs. What a lot of clutter.
The third major hurdle was that r_oldwater defaulting to 0, which caused my frame rate to be like 5-10 on the Start map.
Finally, there's the difficulty in finding what settings are available, such as all the various console variables, like the one above -- there's no good documentation. I would have never known to try that to fix my issue.
So yeah, with all those issues, I was like, "Forget this..." and I'd move on to something else.
But I will say, once past all that, Quakespasm is a really nice engine. It may even run a bit smoother in places as compared to Mark V. Well, I am stuck with the DX version of Mark V now, since the newer GL ones just crash for me... so... that may make a difference. The fog certainly looks better in Quakespasm as compared to DX Mark V (but that's also true of GL Mark V vs DX).
My first point of feedback would be that the r_oldwater setting should really default to 1... since it seems to be such a power-hungry effect to have active (in my case any way). I tried enabling it in Mark V, and got the same result -- baaaaaad FPS. But Mark V has r_oldwater 1 by default.
In the menu, I really like the "Scale" slider. Very nice. I had to set up keys in Mark V to achieve the same effect by altering 3 different console variables. The nice slider seems to adjust everything at once (that's definitely something Mark V should add).
The "instant Quit" upon selecting Quit from the menu. Hm, not sure how I feel abut that. I don't love it but I don't hate it. The new Console background is the same type of thing -- not sure if I like it or not, but FvF has its own console replacement anyway, which still looks close to the original Quake one, so it doesn't matter much.
Hey, the "Always Run" menu option is a definite improvement in the way it functions. In most Quake clients (like Mark V), having "Always Run" on seems to place more emphasis on your forward movement, causing the side-stepping movement to be way too slow (when you gotta side-step to get out of the way of a rocket, you want to sidestep FAST!). The way Quakespasm implemented it seems to instead function just like a run key (+speed), which places emphasis on your side-stepping speed while only slowing your forward speed down a little (there's still an overall speed limit you can't pass when moving "diagonally"). Even better, when "Always Run" is enabled, your usual +speed key acts to slow you back to normal walking speed. That's a nice touch (Baker, Mark V needs all of this! :D ).
Uh, where's the clock ? The usual clock in DM mode is MIA. Is there a console variable to enable it? But watch out that it doesn't overlay the "player squares" that appear where the clock would normally be -- just limit the number of those "squares" that appear there.
Also, there are no pings by the scoreboard when you press tab while playing online. That's a pretty common feature, and pretty much expected these days.
Speaking of the scoreboard (and all other things that are printed in the center of the screen, like centerprints and "loading" images), the ProQuake method of positioning all these things near the top of the screen is the best way to go. Then they don't block your view in the middle of the screen. Every modern Quake client should be imitating Proquake in this respect. EVERY MODERN QUAKE CLIENT, Baker :D
(continued below, because maximum character count is only 5000, haha)
|
|
This thread has been closed by a moderator.
|
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.
|
|