GoldQuake : Improved WinQuake
Moderator: InsideQC Admins
50 posts
• Page 2 of 4 • 1, 2, 3, 4
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?
-

Dr. Shadowborg - InsideQC Staff
- Posts: 1110
- Joined: Sat Oct 16, 2004 3:34 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
We knew the words, we knew the score, we knew what we were fighting for
-

mh - Posts: 2292
- Joined: Sat Jan 12, 2008 1:38 am
I've noted down all your requests!
By the way, I've named the engine "GoldQuake", which is short for "Good Old Quake".
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
And the SVN is now up at http://svn.icculus.org/qshed/trunk/goldquake!
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
Svn? *shudders*
Ken Thompson wrote:One of my most productive days was throwing away 1000 lines of code.
Get off my lawn!
-

dreadlorde - Posts: 268
- Joined: Tue Nov 24, 2009 2:20 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?
Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
-

Baker - Posts: 3666
- Joined: Tue Mar 14, 2006 5:15 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
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.
-

Error - InsideQC Staff
- Posts: 865
- Joined: Fri Nov 05, 2004 5:15 am
- Location: VA, USA
50 posts
• Page 2 of 4 • 1, 2, 3, 4
Who is online
Users browsing this forum: No registered users and 1 guest

