Spider3D, a project I've been working on for you

Started by
22 comments, last by WhatEver 22 years, 4 months ago
I'll explain a little about what it is. It's a set of C++ classes that can read 3ds, md2 and s3d(spider3d) model files and draw them using OpenGL. It doesn't support skeletal animations yet, but it does support static mesh frames and they can be set to interpolate for smoother animations. Spider3D also supports Multitexturing(only one set of uv coords though), VAR and CVAs. This has been my pet project and I'm doing it soley for you guys who use OpenGL. Spider3D will draw at the second fastest speed, meaning as fast as you can draw a model without using tri strips. On a GeForce256 DDR I have finally obtained 6.4mil tris a sec using the VAR extension. Try out my demos at Spider3D webpage so you can get a peek at what you might expect. This project isn't over, I am planning to incorporate skeletal aminations with seemless joints and possibly another file format. I also want to incorporate some cool per vertex lighting effects...Spider3D can do diffuse only right now so you can accomplish bump mapping. And last of all I want to incorporate tri strips. Thanks, Aaron Taylor Edited by - WhatEver on December 7, 2001 7:05:45 PM
Advertisement
I had proposed something similar I few eeeks back! A universal modeling API what I had in mind was that all the API does is load any 3d format: 3ds, obj, lwo etc.... Into a c/c++ structure and then the programmer has access to that structure and can do what ever he wishes to do!
I would have given the freedom to let the programmer change the internal data around, but it could easily be broken, so I made all data private.

I hope you enjoy it. I''m working on ver 2.01 right now. I thought I''d add a specular lighting option. It looks real sweat! Here''s a demo without sourcecode. I will release an official demo sometime soon, hopefully, but first I must finish Spider3D ver 2.01.

Surface2 Specular Bumpmapping Demo
You keep the data private but you give him access to it through accessor methods and setter methods
Yes

However you cannot change values of an individual element.
Single element as in a vector x,y,z??

Of course you can...

Maybe it''s a hack, but there always loop wholes to the rules...

The way I structured my code is...

  class vector{public:   // Set methods.   // Accessor methods.private:   x, y, z, a};class triangle{public:   // Set and get methodsprivate:   vector[3]}  


Then I create a list of vectors and from that I pass 3 vectors as references to the triangles... So this allows me to do something similar to...
triangle.getvector(1).setX(100.0f);
triangle.getvector(1).setY(200.0f);
triangle.getvector(3).setZ(300.0f);

And this of course will affect all triangles that reference that vector.

Another thign is in your "object" class which contains the list of vectors you can create a get method that will build and array of floats return it, this way the 3rd party is not restricted to you classes if he doesn''t wish to use them....
I appreciate your advice ANSI2000.

After a lot of hard thinking and debating with myself I decided to remove all the editing features before releasing the latest version. Spider3D ver 1.0 had loads of editing options, but I decided that it wasn''t necessary.

About the last thing you mentioned. I believe there is a lib out there that does what you want, it''s called lib3ds, and it can be found at sourceforge.

An element in OpenGL terms is: vertex, normal, tex coord and color. So if you wanted to index an element, you would have to index all of the list above.
what about vrml support?


It is foolish for a wise man to be silent, but wise for a fool.

Matthew
WebMaster
www.Matt-Land.com

All your Xbox base are belong to Microsoft.
It is foolish for a wise man to be silent, but wise for a fool.
lib3ds for giving access to the vertex data within a array?
I''m pretty sure it does ANSI2000. Here''s another 3ds loader which definitely gives you access to the vertex data and junk: http://p-squared.com/Display3DS.zip]http://p-squared.com/Display3DS.zip

His site: http://p-squared.com/

TheRealMAN11, I looked into vrml. It sounds like it''s for viewing 3d models with a web page. I don''t see a reason to add support for that filetype.

The file types I''m looking to support are: ase, lwo and the softimage model file(I forget the extension but I have a doc from softimage that explains the filetype in great depth).

This topic is closed to new replies.

Advertisement