View previous topic :: View next topic |
Author |
Message |
LordHavoc
Joined: 05 Nov 2004 Posts: 243 Location: western Oregon, USA
|
Posted: Thu May 13, 2010 12:03 am Post subject: |
|
|
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
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. |
|
Back to top |
|
 |
JasonX
Joined: 21 Apr 2009 Posts: 89
|
Posted: Tue May 18, 2010 12:32 pm Post subject: |
|
|
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? |
|
Back to top |
|
 |
LordHavoc
Joined: 05 Nov 2004 Posts: 243 Location: western Oregon, USA
|
Posted: Tue May 18, 2010 12:46 pm Post subject: |
|
|
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. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2004 phpBB Group
|