FBX binary file format specification

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

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).

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));