Sweet
#7 posted by nakasuhito on 2012/06/30 09:41:43
going into fullscreen doesn't give me black screen anymore! :D
with the latest fitzquake i had to use a .bat with the windowed option for it to run, otherwise i had to tab out and then back in to see something. that was my only issue with fitzquake.
so far nothing wrong that i can see though [only played like 5mins though].
#8 posted by necros on 2012/06/30 19:13:57
water ripple seems buggy though. lots of tearing and inconsistently sized faces on water brushes cause the ripple effect to be uneven.
BSP2 Support?
#9 posted by Tronyn on 2012/06/30 19:39:23
Or is that still RMQ engine only?
Lots of those fixes and features seem very useful. I like fov does not affect gun, although people that use extreme fovs in multiplayer kinda annoy me (especially in the 3rd person Rune, where you can see without being seen using an extreme fov).
I Don't Think So...
#10 posted by generic on 2012/06/30 20:13:10
I didn't load your beta map ;)
Heh
#11 posted by Tronyn on 2012/06/30 20:57:55
understandable ;)
vis is getting close to done, but every time it gets to 15 hours it goes back up to 25. lol.
Random Note:
#12 posted by metlslime on 2012/07/01 09:24:27
r_waterripple looks better if you set "r_oldwater" to 1, because when r_oldwater is 0 it ignores the "gl_subdivide_size" setting. There are still subtle issues with it due to glquake's buggy subdivision (for example, it creates t-junctions.)
The Real Problem Is
#13 posted by mh on 2012/07/01 13:49:42
Sine waves don't linearly interpolate. You cannot linearly interpolate a sine wave; the best you can do is increase tesselation so much that the problem becomes less visible - that's what r_oldwater 0 (in a sorta-kinda-roundabout way) or low values of gl_subdivide_size do, but at other costs elsewhere (fillrate, limiting texture size, extra vertex processing).
#14 posted by Text_Fish on 2012/07/01 14:31:34
Is there any way to stop monsters and pickups from being fullbright?
Thanks
Now my shitty laptop integrated gfx card can finally run maps with dynamic lighting without stuttering like Walter Jr in Breaking Bad.
But yeah, what Text_Fish said.
@metslime
#16 posted by Baker on 2012/07/02 07:38:49
See quakedef.h
I described the changes as best I could.
make obsolete your previous "custom builds" of fitzquake
Yes. My intention with this engine was so you (or the Quakespasm guys or any interested modder) could implement any fix or improvement you were interested it at will.
I know that over at Inside3D a lot of engine weaknesses have been uncovered [it is actually almost intimidating :( ] and rather than make it hard to absorb the solutions, I wanted to make it an easy process.
I've learned a great deal about the rendering process from FitzQuake's complete rework of it. This is my reciprocal work. :)
So far ...
@others
#17 posted by Baker on 2012/07/02 07:41:10
MH deserves all the credit for the frames per second increase. In the engine, this is marked as SUPPORTS_MH_DYNASPEED. It literally turns 11 fps dynamic light situations into 250 fps lighting situations.
@daz
#18 posted by Baker on 2012/07/02 07:43:19
I do have a great liking for you demos. ;-)
I'm glad this made your day.
Argh ... Quadruple Post ...
#19 posted by Baker on 2012/07/02 07:50:15
@Tronyn ... no I haven't implemented BSP2 ... yet.
It you'd like everything BSP2 does, but in classic BSP, I do have your answer:
http://quake-1.com/docs/utils/txqbspbjp_rotate_skip.zip
^^ BSP compiler with rotation and all BSP2 modification except it does classic BSP.
I didn't make that because I'm against BSP2 (I'm not) but because I have a conservative side that wants to understand individual changes one at a time.
@Text_fish
#20 posted by Baker on 2012/07/02 21:49:41
Is there any way to stop monsters and pickups from being fullbright?
Fixed. Thanks for pointing that out.
Please re-download.
#21 posted by necros on 2012/07/02 22:26:32
holy fuck the tool_inspector is awesome.
edict numbers, model index number, frame, target/targetname, absmin/maxs...
I won't be using this as a 'playing' engine (and it seems like that wasn't the intent anyway) but i will certainly use it for debugging stuff.
thank you!
#22 posted by Text_Fish on 2012/07/02 23:40:52
Cheers Baker. :)
@daz, Necros
#23 posted by Baker on 2012/07/03 08:00:54
is it possible to have the environment map over a standard texture though?
I agree, but I didn't want to introduce a hack into this. I'm not sure what a good mapping use of sphere maps are (except making metals look nice). That being said, you could use FitzQuake protocol 666 to place an alpha brush in front of another brush and use the environmental map texture on the alpha brush.
-sndspeed 44100 doesn't enable 44khz sound?
That isn't actually a FitzQuake 0.85 feature.
#24 posted by necros on 2012/07/03 08:31:06
Sorry, I've been using QS for so long now, I totally forgot about that.
Well ...
#25 posted by Baker on 2012/07/03 09:15:31
I've always liked the original Quake sounds as-is and one of the first times I gave a serious look at using DarkPlaces my first question was "The sounds in DarkPlaces are very 'crisp'" and I was told about the -sndspeed parameter which I set to 11025.
Maybe I'm in the minority.
I added -sndspeed command line param.
Agree With Baker On -sndspeed
#26 posted by mh on 2012/07/03 11:12:02
With the sources at 11k and with the way Quake "upsamples" them by default, all it's really doing is pitch-shifting. The crispness may be there, but the bottom-end welly is all gone.
#27 posted by necros on 2012/07/03 17:59:33
don't really care about that myself. i've never noticed anything bad with the way it's done in quakespasm. that said, for whatever reason, the 11khz sounds seem uglier in DP for some reason.
Also, with my habit of using so many ambient sounds and random crap, i really can't do without 44khz.
Waterwarp
#28 posted by Lunaran on 2012/07/04 02:40:12
Is it implementation-time vs. level-of-interest prohibitive to add GLSL support for the sake of restoring software Quake's original per-pixel waterwarp on liquid surfaces and on the screen while underwater? If not it seems like a clear visual win over relying on subdivision and ST distortion, and I'm surprised we haven't seen it in more engines by now (MHQuake comes to mind).
GLSL isn't exactly new, and vertex based warp still exists as an elegant fallback.
#29 posted by metlslime on 2012/07/04 02:50:42
doing waterwarp on the surface with GLSL is fairly doable (though it is something I have never done.) It's probably cheap enough on any shader-capable card.
Doing the fullscreen warp when underwater involves touching a bit more of the renderer because you have to render the scene to a texture, then copy that texture to the screen using a warping shader. In terms of hardware requirements, I think anything that can run doom3 can handle it, but this is, again, based on zero personal experience.
Waterwarp
#30 posted by mh on 2012/07/04 04:08:15
It's very cheap on any shader-capable card. The per-pixel sin is slightly expensive (although the shader compiler will typically optimize it to a single sincos instead of two sins) but that balances against a lower vertex submission cost due to no subdivision (and not to mention the ability to keep everything in a static VBO if you want to go that far).
Doing shader-based versions of both water and sky means that every single surf can go into a single static VBO, in fact, as no per-vertex data needs to be updated on the CPU at all (you'd use a cubemap for skyboxes in this setup - Doom 3 has some code for converting Q1/Q2 skybox layouts to alignments suitable for cubemaps and I've independently written the same conversion myself a few years ago so I'm reasonably certain that it can't be rocket science). Get some draw call batching in and you're suddenly running up to 5 times or more as fast in big, heavy scenes. That does require a higher GL_VERSION than Fitz aims for, as well as some massive surgery to the current codebase. Probably not reasonable to expect in any kind of short/medium timeframe, if ever.
The fullscreen warp has some complexities in how you handle the edges. You can use GL_CLAMP_TO_EDGE but it won't handle the bottom edge which juts against the sbar. There are solutions (I used a "control texture" that fades off the warp effect at the edges, another option is to just destroy and recreate the texture at the appropriate size if it needs to change, which generally doesn't happen at any performance-critical time).
Generally glCopyTexSubImage is going to be slower than using an FBO for this because it needs to shift more data around. Overall you can expect to lose maybe one third of your performance owing to increased fillrate even in the best case.
Another way to do it that doesn't need shaders (and will even work on GL1.1 hardware) is to use a grid of quads (much the same as what Fitz does for r_oldwater 0). That can give acceptable enough quality.
The third way is just to rotate the projection matrix a little based on time, which gives a reasonable enough effect at no performance cost. It's like Fitz's current stretch'n'squeeze effect but with some rotation added in too. You need to extract your frustum from the combined MVP rather than calculating it separately if you do this though. Easy enough (and a little more robust than calculating it separate).
Despite all this seeming complexity and multiple options it's probably cleaner and easier to integrate with any engine as it doesn't need to touch any code outside of it's own subsystem. So - detect if we're underwater (via r_viewleaf->contents) at the start of the scene, and either (a) just set a flag and/or (b) switch the render target. At the end of the scene, either capture the scene to a texture or put the old render target back, then draw using the appropriate method depending on what hardware capabilities are available.
For an engine like Fitz I'd recommend asm shaders rather than full GLSL. The main reason for that is that they're available on a much wider range of hardware, so they seem more in keeping with the Fitz philosophy.
#31 posted by eerie on 2012/07/08 13:25:41
good news!
thanks, Baker.
|