Forum

QuakeC Animation "Tree"

Discuss programming in the QuakeC language.

Moderator: InsideQC Admins

Postby LordHavoc » Thu May 13, 2010 12:03 am

mh wrote:
JasonX wrote:the MD3 format does not support +10,000 polys models very well

In what sense? Have you tried changing the value of r_batchmode in DP? By default I believe it uses triangle strips (possibly with degenerate triangles) which is an utter waste of time on any reasonably modern (within the last 10 or so years) hardware; indexed traingle lists are now the optimal render path and have been for quite a long time. Change r_batchmode to 2 and see how things go.


Uhh, DP has never used triangle strips and contains no code to support them (I switched away from glquake mesh files within the first year, too), which will be a problem on the Xbox 360 port where they are essential for performance for some bizarre reason - not even properly optimized vertex cache will do, has to be triangle strips with restarts :P

r_batchmode 0 issues one glDrawRangeElements(GL_TRIANGLES, ...) for each surface.
r_batchmode 1 issues one per group of consecutive surfaces using the same texture.
r_batchmode 2 issues one per texture (non-consecutive surfaces are merged via memcpy into one index array).

However r_batchmode is gone in the current beta and autobuilds, as I rearchitected the engine to be easier to support D3D (at this time I have some graphics on the screen but it's pretty broken, getting there...), it always functions in mode 2 now (in other words, around 50 Draw calls per frame for 3000 surfaces, most of it hud and other text overlays).

P.S. Would love to chat with you about "things to watch out for" in D3D porting on IRC sometime.

mh wrote:DP however has a fatal flaw in that it uses 32-bit indexes (this FF also exists in Q3A); these are not supported on all hardware so your OpenGL implementation might be going through software emulation just so that it can pass conformance testing. LH really should switch to 16-bit indexes here...


DP switched to 16bit indexes (where possible - on excessively huge maps it will still use 32bit) about a year ago.

mh wrote:But anyway, I get the feeling that this problem may be more a function of the renderer than it is of the format. And who has models with > 10,000 tris anyway?


Nexuiz has 4000-5000 tris player models, skeletally animated, Vermeulen once told me he tried converting them to md3 and they came out 30MB each rather than 400KB as skeletal.

Note: modern games like Final Fantasy XIII have closer to 25000 tris player models if I'm remembering correctly from a conversation with Rich one time.
LordHavoc
 
Posts: 322
Joined: Fri Nov 05, 2004 3:12 am
Location: western Oregon, USA

Postby JasonX » Tue May 18, 2010 12:32 pm

I see that animation blending seems possible, but not really practical. The workflow is a real pain.

But, what about something similar to what is done in HL1 and HL2? There are animations for each possible movement in the game (crouched: moving left, right, back, forward. standing, walking, walking left, walking right, etc.) How can we do this on QuakeC? Any examples? Tutorials on this?
JasonX
 
Posts: 411
Joined: Tue Apr 21, 2009 2:08 pm

Postby LordHavoc » Tue May 18, 2010 12:46 pm

JasonX wrote:I see that animation blending seems possible, but not really practical. The workflow is a real pain.

But, what about something similar to what is done in HL1 and HL2? There are animations for each possible movement in the game (crouched: moving left, right, back, forward. standing, walking, walking left, walking right, etc.) How can we do this on QuakeC? Any examples? Tutorials on this?


I do not know if anyone has examples, but Chris has done some work on this.

In DP using csqc you can set the fields .frame, .frame2, .frame3, .frame4 and their respective lerp strengths .lerpfrac, .lerpfrac3, .lerpfrac4 (the strength of .frame is automatically computed, in other words, it is 1 - .lerpfrac - .lerpfrac3 - .lerpfrac4), and their animation start times (.frame1time. .frame2time, .frame3time, .frame4time), to have pretty complete control over animation blending between 4 animations simultaneously (a total of 8 frame blends are executed by the engine for this).

Note: this works for each skel_build call, so each one can be a blend between 4 animations.
LordHavoc
 
Posts: 322
Joined: Fri Nov 05, 2004 3:12 am
Location: western Oregon, USA

Postby toneddu2000 » Sat Mar 12, 2011 10:42 am

I'm resuming this old conversation just for asking a thing: in this forum I saw a lot of guys who tried to use skeletal animations in DP (me included). Now, after almost 2 years (!!) of searching, copying, pasting code without NO results I'm questioning myself: "but, hey, wait a minute,and if is not possible to implement skeletal animations in DP?".
Anyone knows if, IN THE GLOBE, there's a man, except LordHavoc of course, who did something usable?

If I have to be honest, I seriously doubt..

<supplication>Please LordHavoc, write some documentation about that or just post an usable example, Please!(if it needs a test model to use in conjuction with qc code in IQM,DPM,etc. I SWEAR I'll make it in just a week)
DP Faithful community will be thankful for life!!
</supplication>
toneddu2000
 
Posts: 1352
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Postby Downsider » Sat Mar 12, 2011 2:49 pm

Does IQM support bone groups, to better perform blended animations, or at least bone names? I don't see anything about them on the IQM page.
User avatar
Downsider
 
Posts: 621
Joined: Tue Sep 16, 2008 1:35 am

Postby Nahuel » Sat Mar 12, 2011 3:28 pm

toneddu2000 wrote:I'm resuming this old conversation just for asking a thing: in this forum I saw a lot of guys who tried to use skeletal animations in DP (me included). Now, after almost 2 years (!!) of searching, copying, pasting code without NO results I'm questioning myself: "but, hey, wait a minute,and if is not possible to implement skeletal animations in DP?".
Anyone knows if, IN THE GLOBE, there's a man, except LordHavoc of course, who did something usable?

If I have to be honest, I seriously doubt..

<supplication>Please LordHavoc, write some documentation about that or just post an usable example, Please!(if it needs a test model to use in conjuction with qc code in IQM,DPM,etc. I SWEAR I'll make it in just a week)
DP Faithful community will be thankful for life!!
</supplication>

I agree with you. Many people say to you "use csqc", seemingly it is a species of secret or something like that. I suppose that there do not set tutors or examples (only nexuiz it is of open code) for lack of desire or something like that.
It seems incredible, here there are many papers of ssqc but nothing (or almost not at all) of csqc or examples darkplaces.
This way it is difficult that we advance many noobs in our projects, this way darkplaces it will disappear and I prefer to use c ++, in the udk forum I found great more it helps...
hi, I am nahuel, I love quake and qc.
User avatar
Nahuel
 
Posts: 492
Joined: Wed Jan 12, 2011 8:42 pm
Location: mar del plata

Postby toneddu2000 » Sat Mar 12, 2011 4:34 pm

Nahuel wrote:Many people say to you "use csqc", seemingly it is a species of secret or something like that

Infact! It seems some misterious ancient aztec prophecy! :D

Nahuel wrote:This way it is difficult that we advance many noobs in our projects, this way darkplaces it will disappear and I prefer to use c ++, in the udk forum I found great more it helps...


I completely agree. Darkplaces Wiki could be a good starting point but should be completed (Modeling section is ridiculous).
I always switched to UDK , but it's a real shame seeing a so good an powerful (an GPL I should say) engine being abandoned without no support and, most of all, no documentation for a lot of advanced things (skeltal animation is just one of those).

Darkplaces has everything for a modder:
a robust rendering engine with a lot of eye candies
a very robust map editor (I use Netradiant and I find it perfect) - ok, Radiant could be used for any other quake based engine, but I thought that it was correct to be mentioned! :wink:
a very simple game logic language that suits almost everyone's needs.
Portable to all platforms!

@Downsider: how bone names could improve blended animations? Can you make an example?
toneddu2000
 
Posts: 1352
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Postby Nahuel » Sat Mar 12, 2011 5:31 pm

Darkplaces is really powerful, but I have not seen any game that extracts profit to everything his capacity. Only nexuiz, but nexuiz is a multiplayer fps. and a fps multiplayer has his logical limits.
Another example is the hunted chronicles, it is a great game really, it has story, atmosphere, puzzles... but the project is dead.
It is a pity that there are no documents, darkplaces it might be much bigger than it is. :cry: :cry: :cry: :cry:
hi, I am nahuel, I love quake and qc.
User avatar
Nahuel
 
Posts: 492
Joined: Wed Jan 12, 2011 8:42 pm
Location: mar del plata

Postby toneddu2000 » Sat Mar 12, 2011 6:02 pm

Nahuel wrote:Another example is the hunted chronicles, it is a great game really, it has story, atmosphere, puzzles... but the project is dead

Hereyou can find the source code of first episode, the creator did a superb work on quakec (if you see the source is huge).
Same author did the Survival Horror Maker which uses darkplaces pumping up all its power(my jaw felt on the table seeing his youtube videos), but unfortunately no source code release :cry:

It uses dpm for characters so I presume it created a skeletal based system. I also contacted him to talking a little about it but, until now, I 've had no replies.
toneddu2000
 
Posts: 1352
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Previous

Return to QuakeC Programming

Who is online

Users browsing this forum: No registered users and 1 guest