ducos
1
In Alexander Gessler’s FBX Binary Specification for Blender (obtained, as I understand it, by reverse engineering), it is written:
Bytes 21 - 22: [0x1A, 0x00] (unknown but all observed files show these bytes).
I understand that [0x1A, 0x00] is simply the header size in hexadecimal, little-endian order (26 bytes).
What do you think? After confirmation or consensus, what about a minor update of the documentation?
Regards
But isn’t the header size 27?
1 Like
ducos
3
Hi Harleya, thank you for your reply.
You are right, I was focused on the offset of the last header byte (26), hence my mistake.
Godot had their fbx importer rewritten about a year ago, so you might also check their implementation (it’s open source).
ducos
5
Forester64, thank you for the info. Just checked it, but it doesn’t bring more information. The bytes are simply ignored:
// FBXBinaryTokenizer.cpp
if (strncmp(input, "Kaydara FBX Binary", 18)) {
TokenizeError("magic bytes not found", 0);
}
const char *cursor = input + 18;
/*Result ignored*/ ReadByte(input, cursor, input + length);
/*Result ignored*/ ReadByte(input, cursor, input + length);
/*Result ignored*/ ReadByte(input, cursor, input + length);
/*Result ignored*/ ReadByte(input, cursor, input + length);
/*Result ignored*/ ReadByte(input, cursor, input + length);
const uint32_t version = ReadWord(input, cursor, input + length);
print_verbose("FBX Version: " + itos(version));