I have reviewed how the various models and textures in Masters and Production relate and it seems reasonable to bring this repository into a state where one can edit the 3D models which is not currently the case as
- there is no consistent source format
- models are missing for most vessels with mesh in
Assets-Production in bfxm format
- texture/image names in production differ from here
I would suggest to generate the Wavefront obj and mtl files from production, update the image paths and commit them. That would allow the build pipeline to re-generate them consistently and we can use those files to regenerate the low-res HUD images in i.e. 1024x1024. An alternative would be to save Blender files, but as there is no native conversion via the vega-meshtool for .blend files this would require more work. We can have a default scene into which the .obj files can then be imported, this works relatively well.
There are some ships in Assets-Masters which are not in Production, I'd move them into a development subfolder to make it clear they are currently unused. If we decide to use them, they can be moved back. Here is a list, interestingly 1 ship is missing from source as well:
> Acrotatus
> AIDI
> Anaxander
< Charillus <- missing here
> Catfish
> Ct1000
> Ct3000
> Ellison
> Lemma
> Nietzsche
> Patterson
Tasks
After investigating the different options the winner is Option 2 as this is the only format which we can truly convert into both directions - specifically the LODs which would otherwise get lost. Each LOD .xmesh can then be converted into obj/mtl or directly used in Binder via the import/export plugins.
There are still some minor question marks on the bi-directionality of the conversion, I tried two ships and compared original vs. original > XMESH -> BFXM conversion. Llama was an exact match, Plowshare resulted in 52 bytes more.
Important: while BFXM -> XMESH unpacks all parts, XMESH -> BFXM required to create the file and then subsequently add the remaining parts (not the LODs, they get automatically included)
bash: vega-meshtool --input plowshare.bfxm --output 0_0.xmesh --convert BFXM XMesh create
bash: ls
0_0.xmesh
0_1.xmesh
0_2.xmesh
0_3.xmesh
0_4.xmesh
1_0.xmesh
1_1.xmesh
1_2.xmesh
1_3.xmesh
1_4.xmesh
2_0.xmesh
2_1.xmesh
2_2.xmesh
0_0 properly references the LODs
<Mesh scale="1.000000" reverse="0" forcetexture="0" sharevert="0" polygonoffset="0.000000" blend="ONE ZERO" alphatest="0.000000" texture="wayfarer.png" texture1="wayfarerPPL.jpg" >
<Material power="60.000000" cullface="1" reflect="1" lighting="1" usenormals="1">
<Ambient Red="0.650000" Green="0.650000" Blue="0.650000" Alpha="1.000000"/>
<Diffuse Red="1.000000" Green="1.000000" Blue="1.000000" Alpha="1.000000"/>
<Emissive Red="0.000000" Green="0.000000" Blue="0.000000" Alpha="1.000000"/>
<Specular Red="1.000000" Green="1.000000" Blue="1.000000" Alpha="1.000000"/>
</Material>
<LOD size="5000.000000" meshfile="0_1.xmesh"/>
<LOD size="2500.000000" meshfile="0_2.xmesh"/>
<LOD size="7500.000000" meshfile="0_3.xmesh"/>
<LOD size="3500.000000" meshfile="0_4.xmesh"/>
...
bash: vega-meshtool --input 0_0.xmesh --output plowshare_test.bfxm --convert XMesh BFXM create
bash: ls
974948 plowshare.bfxm
821968 plowshare_test.bfxm
bash: vega-meshtool --input 1_0.xmesh --output plowshare_test.bfxm --convert XMesh BFXM add
bash: vega-meshtool --input 2_0.xmesh --output plowshare_test.bfxm --convert XMesh BFXM add
bash: ls
974948 plowshare.bfxm
975000 plowshare_test.bfxm
I have reviewed how the various models and textures in Masters and Production relate and it seems reasonable to bring this repository into a state where one can edit the 3D models which is not currently the case as
Assets-ProductioninbfxmformatI would suggest to generate the Wavefront
objandmtlfiles from production, update the image paths and commit them. That would allow the build pipeline to re-generate them consistently and we can use those files to regenerate the low-res HUD images in i.e. 1024x1024. An alternative would be to save Blender files, but as there is no native conversion via thevega-meshtoolfor.blendfiles this would require more work. We can have a default scene into which the.objfiles can then be imported, this works relatively well.There are some ships in Assets-Masters which are not in Production, I'd move them into a
developmentsubfolder to make it clear they are currently unused. If we decide to use them, they can be moved back. Here is a list, interestingly 1 ship is missing from source as well:Tasks
bfxmformat better and which features it supportsobjandmtl- see PR Vessel cleanup #101vega-meshtoolobjandmtlfiles to this repository<LOD size="12500.000000" meshfile="0_1.xmesh"/>blender_xmesh_import.pyto latest Blender versionblender_xmesh_export.pyto latest Blender versionmap_Normalwhich Blender does not knowobjandmtlfiles to this repositoryAfter investigating the different options the winner is Option 2 as this is the only format which we can truly convert into both directions - specifically the LODs which would otherwise get lost. Each LOD
.xmeshcan then be converted intoobj/mtlor directly used in Binder via the import/export plugins.There are still some minor question marks on the bi-directionality of the conversion, I tried two ships and compared original vs. original > XMESH -> BFXM conversion. Llama was an exact match, Plowshare resulted in 52 bytes more.
Important: while BFXM -> XMESH unpacks all parts, XMESH -> BFXM required to create the file and then subsequently add the remaining parts (not the LODs, they get automatically included)