Forum

GoldQuake : Improved WinQuake

Discuss programming topics for the various GPL'd game engine sources.

Moderator: InsideQC Admins

Postby Dr. Shadowborg » Thu Jan 28, 2010 8:11 pm

mh wrote:The way DirectQ does it is actually by checking for movement of triangles between frame 0 and frame 1; if they move beyond a certain threshold value then those triangles only are not interpolated (other triangles in the model are). It's called from R_DrawViewModel so we can be certain that the model checked actually is a viewmodel (using models beginning with v_ is not valid as even an ID1 model that ain't a viewmodel begins with v_), and is set up so that it only gets called once per model.

Overall a little hacky but it works fine in every test case so far.


Interesting, does this work on models that have multiple variations of muzzleflash? ex. assault guns with a rapid fire frames and grenade launcher frames?
User avatar
Dr. Shadowborg
InsideQC Staff
 
Posts: 1110
Joined: Sat Oct 16, 2004 3:34 pm

Postby mh » Thu Jan 28, 2010 8:22 pm

Dr. Shadowborg wrote:
mh wrote:The way DirectQ does it is actually by checking for movement of triangles between frame 0 and frame 1; if they move beyond a certain threshold value then those triangles only are not interpolated (other triangles in the model are). It's called from R_DrawViewModel so we can be certain that the model checked actually is a viewmodel (using models beginning with v_ is not valid as even an ID1 model that ain't a viewmodel begins with v_), and is set up so that it only gets called once per model.

Overall a little hacky but it works fine in every test case so far.


Interesting, does this work on models that have multiple variations of muzzleflash? ex. assault guns with a rapid fire frames and grenade launcher frames?

It should in principle because it's completely agnostic towards the model. Everything is done on a triangle-by-triangle basis (actually vertex by vertex, but they need to come from triangles), only back-to-front movement is checked (I forgot that bit in my initial explanation), and each result is totally in isolation from every other one.

The gotcha here is that it only checks frame 0 against frame 1, so it's obviously dependent on the data in those two frames being reasonably representative of the full thing. It should be easy enough to extend to check frame 0 vs all frames, accumulate a count of passes and fails, then fudge something based on that count.

Worst case is that it's either going to be no different from if it wasn't done, or stuff with large movement between the frames that's not a muzzleflash won't be interpolated (so no different than GLQuake).

The obvious correct solution is to build the model with interpolation in mind, of course.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Postby Sajt » Thu Jan 28, 2010 9:44 pm

I've noted down all your requests!

By the way, I've named the engine "GoldQuake", which is short for "Good Old Quake".
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Sajt
 
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Postby mh » Thu Jan 28, 2010 9:50 pm

Excellent! I'm really looking forward to seeing what comes out of this. :D
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Postby Sajt » Thu Jan 28, 2010 9:58 pm

F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Sajt
 
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Postby Urre » Thu Jan 28, 2010 11:18 pm

Urre approves.
I was once a Quake modder
User avatar
Urre
 
Posts: 1109
Joined: Fri Nov 05, 2004 2:36 am
Location: Moon

Postby Dr. Shadowborg » Thu Jan 28, 2010 11:57 pm

Groovilicious :D
User avatar
Dr. Shadowborg
InsideQC Staff
 
Posts: 1110
Joined: Sat Oct 16, 2004 3:34 pm

Postby Baker » Fri Jan 29, 2010 1:19 am

Quake hasn't seen the amount engine development going on right now in years.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby metlslime » Fri Jan 29, 2010 2:15 am

The EF_MUZZLEFLASH trick is the way Fitzquake does it, actually. Works unless the modder decided not to use that effect (i think one of the Quoth enforcer variants doesn't have a muzzleflash for one of its attacks...)
metlslime
 
Posts: 316
Joined: Tue Feb 05, 2008 11:03 pm

Postby dreadlorde » Fri Jan 29, 2010 3:09 am

Svn? *shudders*
Ken Thompson wrote:One of my most productive days was throwing away 1000 lines of code.

Get off my lawn!
User avatar
dreadlorde
 
Posts: 268
Joined: Tue Nov 24, 2009 2:20 am

Postby Baker » Fri Jan 29, 2010 5:47 am

More aguirRe WinQuake edge/surf wrote: Cvar_SetValue ("r_maxedges", (float)100000); //NUMSTACKEDGES
Cvar_SetValue ("r_maxsurfs", (float)100000); //NUMSTACKSURFACES


aguirRe's software wizardry to render areas with a lot of surfaces.

Also: no big deal but in r_drawentities there is a minor bug in original WinQuake. It may be as simple as the fact it draws the viewmodel when it not supposed to. Been a long time.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Sajt » Fri Jan 29, 2010 5:54 am

If you think that r_drawentities should not draw viewmodels (and DarkPlaces seems to agree with you), I can do that.
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Sajt
 
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Postby Error » Fri Jan 29, 2010 7:01 am

you could ask FrikaC if he has the source for FrikQuake. it was a upgraded winquake engine. had frik_file and model alpha, water alpha, etc.
User avatar
Error
InsideQC Staff
 
Posts: 865
Joined: Fri Nov 05, 2004 5:15 am
Location: VA, USA

Postby Sajt » Fri Jan 29, 2010 7:02 am

FrikQuake...now there's a name I haven't heard in a while. I don't think I ever got my hands on it.
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Sajt
 
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Postby ceriux » Fri Jan 29, 2010 7:15 am

i wish i could have.
User avatar
ceriux
 
Posts: 2223
Joined: Sat Sep 06, 2008 3:30 pm
Location: Indiana, USA

PreviousNext

Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 1 guest