Thanks for the info as usual!
cmpxchg8b said:
Yes, but it doesn't really matter. There is no difference in memory usage (all meshes use the same memory layout) and the difference in performance is probably insignificant and affects only the loading screen.
I see.
But the overall picture comes out a little stange, right?
It seems that,
(1) TW decided to introduce optional pre-computed tangent dirs.
Most meshes have that option on (it's mesh flag 0x10000).
That costs as much as 13 extra bytes per vertex of disk space, i.e. some 28% of total on average.
(plus it costed the hassle of changing the file format for them and making them optional)
The only gain:
avoid the time expenditure of recomputing tangent dirs on mesh-load.
(2) Then, for all meshes which don't actually need tangent dirs,
they
needlessly spend time to recompute tangent dirs on mesh-load
Put like this, it looks like one of these
contradiction memes.
Maybe we are getting something wrong.
cmpxchg8b said:
Both normals and tangents are computed on the fly, I don't think the pre-computed ones do anything at all.
mmm... I see, however, side note:
they might as well have used an interpolation of the normals and tangents defined in each frame, i.e. facemorph, just as they do with the xyz position.
That would look smarter because they would let artists determine which normals they want exactly (which is the same reason why normals are stored, not computed, in any other model).
Meanwhile, in Soviet Russia, there is another strange point in need of light shedding...
Material flag
0x10000 is currently labelled "Render 1st" (again, I've no idea where I got that from, originally).
Apparently, it means that the object is to be rendered before any other, except, I expect, similarly flagged ones.
I wonder if that is so, because it seems redundant, as it look just another "render order" value. They could have used minimal render order for that.
Unless that flags actually means "render even before some hardwired operation", like dunno... some pass or the initial clear-screen (ok, that cannot be it) or something.
So, any info about that which would be worth to be reported to OpenBRF users?