🔒 Locked
Regarding models
Advertisement
Original Post
Hi,
which loader should I write for a game - md2 or md3? I don''t know much about either - so far I''ve only written loaders for so-to-say static formats (that afaik don''t support keyframing in the same sense md2 and md3 allow it). Alternatively, if there''s even a better format out there (that has available format specs on the net), I''m not really bound to the Quake model formats.
Additionally are there any free editors out there that allow a beginner to create somewhat simplistic models (animated, of course; of the abovementioned type) for a potentially commercial use (some names would do well, if at all possible)?
Thanks in advance,
Crispy
The choice of model formats (as always
) depends on what type of game you''re writing. For example, a game where you''re running with guns blazing doesn''t really need a lot of detail, but an adventure games do.
About a modeler; try Milkshape, it''s not very expensive at all. Do a search on Google.
About a modeler; try Milkshape, it''s not very expensive at all. Do a search on Google.
Yup it''s a "running with guns blazing" game, so I''m aware of the poly problem - in fact the model shouldn''t comprise more than perhaps 30 of them as there will be potentally hundreds of them (models) on screen at a time (think: Serious Sam). So what should the model format of preference be here?
Anyway, I haven''t had the time to check out Milkshape yet, but from your post it seems they''re charging money for it. Unfortunately the term "commercial" from the original post means we get a little pocket money (at most), nothing big and shiny, so are there any completely free editors around?
Thanks,
Crispy
Anyway, I haven''t had the time to check out Milkshape yet, but from your post it seems they''re charging money for it. Unfortunately the term "commercial" from the original post means we get a little pocket money (at most), nothing big and shiny, so are there any completely free editors around?
Thanks,
Crispy
quote:
Original post by Anonymous Poster
30 polygons won''t meet the demands of today''s audience.
I''m already down to 20-50 fps - can''t (shouldn''t) get much lower than that
Anyway - what would be the most favourable format for this type of use? I''m still pretty unbiased as to which loader to write... Don''t want to spend time on more than one for the time being...
Crispy
Md3 is going to give you super-smooth animation cheaply with modern hardware BUT if you want to render dozens of them at a time in a game that's already struggling for frame-rate then you're going to have to implement some method of pre-calculating all the bone transformations which will cause a loss of animation quality. (I'm no expert on md3's though). This format uses skeletal animation, where vertex positions are relative to the position of a joint, and joint positions are kept relative to eachother.
Md2 is very processor intensive to achieve smooth animation unless you have a card that supports vertex shaders- then it becomes very gpu intensive. There's not a great deal you can do about it with this format. The position of EVERY vertex is stored for EVERY frame (do the math: frames * vertices, thats a lot of data, but id found a way of compressing that data which is the whole basis of the md2 format). Smooth animation is created by performing linear interpolation on each vertex position between keyframes.
Despite that, there is a way that md2's could help you in this situation..
If you have low-polygon models with a few frames of animation and you're not too concerned about ultra smooth animation (but if your engine is already struggling you can't afford to be!) then you can create a vertex buffer or gl display list for every frame at load time- basically converting it into a bunch of static models. I've used this method successfully in my current project in which I've opted for quantity over quality.
- Matt
PS. BUY MilkShape! It's stable, well supported from the community, expandable and very cheap. And if you're working with DX8.1 you can have my source.
[edited by - matibee on January 17, 2003 6:52:10 AM]
Md2 is very processor intensive to achieve smooth animation unless you have a card that supports vertex shaders- then it becomes very gpu intensive. There's not a great deal you can do about it with this format. The position of EVERY vertex is stored for EVERY frame (do the math: frames * vertices, thats a lot of data, but id found a way of compressing that data which is the whole basis of the md2 format). Smooth animation is created by performing linear interpolation on each vertex position between keyframes.
Despite that, there is a way that md2's could help you in this situation..
If you have low-polygon models with a few frames of animation and you're not too concerned about ultra smooth animation (but if your engine is already struggling you can't afford to be!) then you can create a vertex buffer or gl display list for every frame at load time- basically converting it into a bunch of static models. I've used this method successfully in my current project in which I've opted for quantity over quality.
- Matt
PS. BUY MilkShape! It's stable, well supported from the community, expandable and very cheap. And if you're working with DX8.1 you can have my source.
[edited by - matibee on January 17, 2003 6:52:10 AM]
Yeah I think Milkshape''s the way to go. Thanks for offering your code - not too many people volunteer to do that... However, I''m using OpenGL and I, as far as my abilities allow me to, prefer to write my own code - a coder''s code, so to speak
I think I''ll resort to md2 for the time being - it''s a bit simpler and I don''t think I''m shy of cpu power - it''s the gpu that''s dragging things to the gutter. Thanks for the input!
Crispy
Crispy
skeletal animation != interpolating between the vertices of different frames to get animation.
Interpolating between the vertices of different frames is exactly as it sounds.
Skeletal animation involves calculating the positions of bones in each frame, either by interpolating bone positions or by something more complicated such as inverse kinematics. These bone positions are then used to calculate vertex positions.
Quake 2 .md2 uses the first method.
Half life .mdl uses skeletal animation with "keyframing".
Quake 3 .md3 uses the first method. However, each md3 model you see on the screen is composed of different md3 model files. These are oriented wrt each other by a skeletal-type system.
500 x 1
http://users.ox.ac.uk/~univ1234
Interpolating between the vertices of different frames is exactly as it sounds.
Skeletal animation involves calculating the positions of bones in each frame, either by interpolating bone positions or by something more complicated such as inverse kinematics. These bone positions are then used to calculate vertex positions.
Quake 2 .md2 uses the first method.
Half life .mdl uses skeletal animation with "keyframing".
Quake 3 .md3 uses the first method. However, each md3 model you see on the screen is composed of different md3 model files. These are oriented wrt each other by a skeletal-type system.
500 x 1
http://users.ox.ac.uk/~univ1234
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement
