Make_H2O doesn't read mesh names, so it's only way to detect LODS is visually. But version "gc" separated lods correctly for that part. Personally, I don't care about lower lods, because I not convert cars to other games, just collect models.shakotay2 wrote:so taillightL_a, taillightL_a_000 and taillightL_a_001? How'd you know which groups build one LOD? (In the end it's trial 'n error to decide whether a _a_xxx group belongs to the previous or the next LOD, isn't it?)Andrakann wrote:LOD0 have 3 submeshes,
It's about badges, they paste them over main livery, I have no idea how it's doneOMG, I don't think, that I'll have the time to get that far with proper groups, since as you may know the auto grouping is done by brute force more or less.How it looks: https://www.youtube.com/watch?v=iUmQl23j128
I think it's better to start from simplier ones, like bumperF_a_AO or fenders_a_AO.well, applying the textures is even harder than expected (engineBay_a_AO for FOR_RangerT16-engine with forced grouping each 2500 face indices), Looks like it's the wrong uv map:
About splitting inside lods, i think it's done by materials, and previous Forza extractors also adds material names to the end of mesh names:
So, lets continue digging of modelbin format:
Patient is taillightL_a from AST_DB11_17, 69 objects inside Grub container.
Skel data section is identical to one from body_a part, same for Mrph - both is useless at this stage.
Then we have 6 MatI entries, names are:
Code: Select all
backfacingGeo
chrome
lights_smooth_CH1_custom_br
lights_smooth_CH1_custom_br_a
lights_smooth_CH1_custom_tailbr
lights_smooth_CH1_custom_tailbr_a
Code: Select all
MatI 01 backfacingGeo
Media\cars\_library\materials\SpecificUse\backfacingGeo.materialbin
Media\_library\shaders\simplediffuse\simplediffuse.shaderbin
MatI 02 chrome
Media\cars\_library\materials\exterior_metal\chrome.materialbin
Media\_library\shaders\ext_simplemetal\ext_simplemetal.shaderbin
MatI 03 lights_smooth_CH1_custom_br
Media\cars\_library\materials\radiosity\rad_ch1_metal.materialbin
Media\_library\shaders\rad_ch1_diffnorm\rad_ch1_diffnorm.shaderbin
Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_diff_9fe16d5d-c41d-4be6-a49d-4b93d63527b9.swatchbin
Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_nrml_34b98759-5371-46f7-8d59-db900a7ef1ad.swatchbin
Media\cars\_library\textures\geometricpatterns\swatches\ridges_011_nrml_2dcf25cd-3b36-4d8c-bd68-d1d2b4179705.swatchbin
MatI 04 lights_smooth_CH1_custom_br_a
Media\cars\_library\materials\exterior_lights\lights_ch1bump_ch1lmask.materialbin
Media\_library\shaders\ext_simplemetal\ext_simplemetal.shaderbin
Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_nrml_34b98759-5371-46f7-8d59-db900a7ef1ad.swatchbin
Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_lite_562303fa-94b9-44d0-aa78-7cdd8845774c.swatchbin
Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_glos_49f9fdc2-e399-4f2a-8ed0-9f2828075429.swatchbin
Media\cars\_library\textures\lightglows\swatches\lgt_led_002_lite_312e78df-9e59-4a57-92f7-332071790112.swatchbin
Media\cars\_library\textures\genericmaps\swatches\radial_gradation_001_mask_ef146ee6-6402-408c-b1a4-04fccad4ce2f.swatchbin
MatI 05 lights_smooth_CH1_custom_tailbr
Media\cars\_library\materials\radiosity\rad_ch1_metal.materialbin
Media\_library\shaders\rad_ch1_diffnorm\rad_ch1_diffnorm.shaderbin
Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_diff_9fe16d5d-c41d-4be6-a49d-4b93d63527b9.swatchbin
Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_nrml_34b98759-5371-46f7-8d59-db900a7ef1ad.swatchbin
Media\cars\_library\textures\geometricpatterns\swatches\ridges_011_nrml_2dcf25cd-3b36-4d8c-bd68-d1d2b4179705.swatchbin
MatI 06 lights_smooth_CH1_custom_tailbr_a
Media\cars\_library\materials\exterior_lights\lights_ch1bump_ch1lmask.materialbin
Media\_library\shaders\ext_simplemetal\ext_simplemetal.shaderbin
Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_nrml_34b98759-5371-46f7-8d59-db900a7ef1ad.swatchbin
Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_lite_562303fa-94b9-44d0-aa78-7cdd8845774c.swatchbin
Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_glos_49f9fdc2-e399-4f2a-8ed0-9f2828075429.swatchbin
Media\cars\_library\textures\lightglows\swatches\lgt_led_002_lite_312e78df-9e59-4a57-92f7-332071790112.swatchbin
Media\cars\_library\textures\genericmaps\swatches\radial_gradation_001_mask_ef146ee6-6402-408c-b1a4-04fccad4ce2f.swatchbin
Then we have Mesh entries, 30 of them have data lenght of 217 bytes and 16 have 201 bytes in lenght.
Header data contains Name and Bounding Box, maybe for correct scale?
Names are:
Code: Select all
taillightL_a_LODS0
taillightL_a_LODS0
taillightL_a_LODS0
taillightL_a_LODS0
taillightL_a_LODS0
taillightL_a_LODS0
taillightL_a_LOD1
taillightL_a_LOD1
taillightL_a_LOD1
taillightL_a_LOD1
taillightL_a_LOD1
taillightL_a_LOD1
taillightL_a_LOD2
taillightL_a_LOD2
taillightL_a_LOD2
taillightL_a_LOD2
taillightL_a_LOD2
taillightL_a_LOD2
taillightL_a_LOD3
taillightL_a_LOD3
taillightL_a_LOD3
taillightL_a_LOD3
taillightL_a_LOD3
taillightL_a_LOD3
taillightL_a_LOD4
taillightL_a_LOD4
taillightL_a_LOD4
taillightL_a_LOD4
taillightL_a_LOD5
taillightL_a_LOD5
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
taillightL_a_LODS0_backfacingGeo
taillightL_a_LODS0_chrome
taillightL_a_LODS0_lights_smooth_CH1_custom_br
taillightL_a_LODS0_lights_smooth_CH1_custom_br_a
taillightL_a_LODS0_lights_smooth_CH1_custom_tailbr
taillightL_a_LODS0_lights_smooth_CH1_custom_tailbr_a
Mesh data parts is most suspicious for separation to submeshes, but I have no experience in reading such data, I cut this data to chunks and compare by pairs, first 4 of Meshes with 217 bytes of data:
And first 4 with 201 bytes of data (Shadow ones):
These Shadow meshes seems to be missed in Make_H2O output, they skipped or makes unwanted garbage somewhere?..
Next block is IndB data, I have no idea about this, some part of 3D data, maybe named Index Boundary (or Block) - just familiar words, sorry
Then we have 4 another suspicious data block, named VLay. Suspicious because we have 6 materials, but there's only 4 unique materials in fact, so, this data can be UV-related.
I cut it to chunks and compare by pairs:
Very good words inside, that's all I can say about
Then we have blocks VerB and MBuf, mixed in some order:
VerB
VerB
MBuf
VerB
VerB
MBuf
VerB
MBuf
VerB
Maybe this order is important...
And last data block is Modl, 16 bytes in lenght, I compare it with one from body_a part:
50/50 result, can't say more
I uploaded archive with working folder for that light here: http://www.mediafire.com/file/y7kf8a8t6 ... Lights.zip
With all textures linked in materials, also converted to PNG.
Upd: It's very possible, than all data blocks must be cutted out from Grub archive, to make byte addressing inside them "local", for getting good matches with Mesh data etc.