top of page
Search

[73] Dynamic Pigeonholing

  • Writer: Conlan Walker
    Conlan Walker
  • Mar 10, 2023
  • 2 min read

Oh boy.

The TTL loader, TTM loader, and the BTS parser the two rely upon are mostly done, save for some bugs and edge cases.


(Disambiguation to make things less confusing: I will sometimes refer to TTM, TTL, and BTS almost interchangeably, but just know they are different things. "BTS" is the type of file, like a format for formats. "TTM" is the name of the 3D model's mesh; equivalent to a .obj. "TTL" is the name of a material library that a TTM can reference; equivalent to a .mtl. Both TTM and TTL are stored in BTS form, which is why a BTS parser can load the raw data of both.)


Here's an example of what printing a loaded mesh in BTS format looks like.

This is what this test mesh actually looks like in blender:

ree

Here's what the loaded TTM's geometry looks like in human-readable form:

ree

And this is the material library (TTL) it references in its "_ttllib_" block:

ree

Now, that TTL only contains 1 actual material, which doesn't reference and use any sort of texture map. So, here's a TTL that contains a texture reference, and contains 3 materials:

ree

Here are the two functions that handle printing and loading of BTS files respectively.

ree


These are the structs used to store a loaded TTM:

ree

And these are used to store material libraries, as well as the materials themselves:

ree


These are some inline functions I made that handle vector math and whatnot:

ree


These functions are used to interpret raw BTS data into TTL and TTM structs respectively:

ree

And the last thing I was working on was this currently half-finished function that is supposed to offset, rotate, and translate TTM geometry:

ree


Finally, here's the size of everything at this point in time:

ree

I really wanted to put a textured TTM on-screen this week, I guess I'll have to wait.

 
 
 

Comments


bottom of page