Manipulating FloatBuffers

[quote]I can’t see why you interpolate vertex data in software.

Did I missed something ?
[/quote]
Yes, keyframed animation is heavy on the memory requirements, and if your game is trying to hit 60fps then you can’t realistically store a keyframe every 60th of a second.

Compare Quake1 character animation (@ 15fps IIRC) which isn’t interpolated and looks strangly juddery with Quake2 animation which is.

might be interesting as well

http://www.gamasutra.com/features/20030325/fernando_01.shtml

I think the infinitely simpler EXT_vertex_weighting extension will do interpolation with the greatest of ease and involve minimal memory writes.

Cas :slight_smile:

[quote]I think the infinitely simpler EXT_vertex_weighting extension will do interpolation with the greatest of ease and involve minimal memory writes.

Cas :slight_smile:
[/quote]
Yep, except the spec says the following:

NVIDIA no longer supports this extension in driver updates after November 2002. Instead, use either ARB_vertex_program & NV_vertex_program.

And as far as I can see, it has never really been supported by any other vendors anyway.
(http://www.delphi3d.net/hardware/extsupport.php?extension=GL_EXT_vertex_weighting)

i know i shouldn’t optimize by guessing what will be the best.

and i won’t. i’ll implement several methods that do the job (including the standard-put-operation)
and then use the best one, and proably the putter^^ as a fallback if extension xyz is not supported.

i don’t really care if the put-method is “fast enough”. it may be, it may be not. what i care about is if there is a way that does the same, but significantly faster (vertex program?)

but now that i’m interested in it : where to find a tutorial about vertex programs ?

Try this one:

http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=47

currently there’s not JoGL port of it, but it shouldn’t be too hard to get the concepts from the C++ version.
You might also want to get the Cg-Users Guide from NVIDIA. It’s more of a reference but gives some good pointers.
For the Cg in JoGL to work, you need the Cg-Runtime from NVIDIA as well. I would suggest just to download the everything.zip from their site.

Once you know how to get your vertex programs set up in GL , etc. take a look at the following concepts: varying parameters (for the second position and normal), uniform parameters (for the weighting factor), and the lerp() function for the linear interpolation.
If you get a working example, it would be great if you can post some info here, as I’ll probably have to do something similar in the next couple of months.

Jan

Hm, ARB_vertex_program isn’t exactly well supported either - forces you more or less onto Radeon/GeForce class hardware. The trouble is with extensions and writing “real” software is that you must always write a fallback that uses no extensions or you’ll just end up with software that only works 50% of the time :confused:

Cas :slight_smile:

[quote]Hm, ARB_vertex_program isn’t exactly well supported either - forces you more or less onto Radeon/GeForce class hardware. The trouble is with extensions and writing “real” software is that you must always write a fallback that uses no extensions or you’ll just end up with software that only works 50% of the time :confused:

Cas :slight_smile:
[/quote]
is there any non geforce/radeon card out there ?

A reasonable number of Rage 128s, S3s, Matrox G200/400/450/500/550s. I’ll check my logs and see how they’re all doing this weekend.

Cas :slight_smile:

[quote]A reasonable number of Rage 128s, S3s, Matrox G200/400/450/500/550s. I’ll check my logs and see how they’re all doing this weekend.

Cas :slight_smile:
[/quote]
You are right, a fallback solution is needed for those cards. Nevertheless, I think, this should not mean, that you always just use what all cards support. Otherwise, you will end up always coding for OpenGL 1.1.
So fallback yes, but advanced rendering paths as well. I personally use the rule, that you provide fallback for all stuff, that is necesarry to make the app usable. For eye-candy, it depends on the amount of work and the impact of the effect.

Jan