Jump to content
  • Advertisement


Sign in to follow this  
  • entries
  • comments
  • views

Model Loading

Sign in to follow this  
Will F


I've been working on code to load a .3ds model. I used Focus on 3D Models as a starting point, but had some issues with the book, so I wrote one from scratch. I really do like the book, but i'm going to complain about it a bit.

Couldn't get the code from the book to compile with gcc without some changes (and once I did it wouldn't render). For instance:

// gcc chokes on these pragmas
#pragma pack(push, packing)

#pragma pack(1)

// some structs that I want aligned on 1 byte boundaries
// so I can properly read in from a .3ds binary file

#pragma pack(pop, packing)

// but works with
#pragma pack(push, 1)

// ...

#pragma pack(pop)

There were also issues with scoping. Here's some code from the book:
for (int i = 0; i < someVarible; i++)

// Error: i is no longer in scope
for (i = 0; i < someOtherVarible; i++)

The book also used C style file functions, so I decided to write mine with a C++ ifstream. Hadn't really used streams to read from files, and since .3ds is a binary file I thought it'd be educational. If nothing else i've found a use for reinterpret_cast.

Only other complaint is that the book glosses over a bit of info, one section describes a chunk and neglects to mention a 2 byte piece of info in the chunk - which resulted in a little bug in my code. After digging around I found a few really dated 3ds specs at wotsit, which helped me track down the problem.

Oh well, i've got my code far enough along that I can display a model in wireframe. Should be able to do materials and texturing pretty soon. It's been awhile since I've posted a screen shot of anything, so maybe i'll do so when I get it done.
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!