I am abit stuck on how to read vertices from a binary file,here is my code,the result is in the picture i have added
struct CUSTOMVERTEX
{
FLOAT X, Y, Z;
D3DVECTOR NORMAL;
FLOAT U, V;
};
I am abit stuck on how to read vertices from a binary file,here is my code,the result is in the picture i have added
struct CUSTOMVERTEX
{
FLOAT X, Y, Z;
D3DVECTOR NORMAL;
FLOAT U, V;
};
That's incorrect. The code you have right now is reading file data in one beyond the end of the array. The number in the array declaration specifies the size of the array, not the last index. It needs to be:
CUSTOMVERTEX vertsArray[24];
would it be possible to write the "texture.jpg" as data to the binary file and load it that way ?
do you mean write the texture itself, or write a locator like a path or a filename? it's a yes in both cases, but the former may be a lot of work. Take a look at the OBJ format to see how materials can be bundled with geometry.
...but the former may be a lot of work...
Hmmm, I sort of disagree. In the simplest form you write the size of the sub-blob (and also a format tag for proper dispatch at loading) and then the blob itself. Think of concatenating files to one file (or rather non-compressing archivers like tar). At loading the size and tag help you split it up again.
Or am I missing something ?
oh your right,i was thinking 0 to 23 is 24 allocations
0 to 23 is 24 allocations, but you need to declare the array with size 24, not size 23 which is what you've done:
CUSTOMVERTEX vertsArray[23];
This isn't 0 to 23, this is 0 to 22. The "[23]" isn't the last element in the array, it's the size of the array, so this array only has space for 23 CUSTOMVERTEX structs.
...but the former may be a lot of work...
Hmmm, I sort of disagree. In the simplest form you write the size of the sub-blob (and also a format tag for proper dispatch at loading) and then the blob itself. Think of concatenating files to one file (or rather non-compressing archivers like tar). At loading the size and tag help you split it up again.
Or am I missing something ?
I was thinking parsing a single field that can be passed directly to a ::load() function would be less work, but after reading your thoughts it does seem quite comparable in difficulty.