Any experiences with ASE track files made with blender?

radome

Jeff Peterson
Greetings. I'm trying to get a simple scene from blender into tracked. Below is what the material section looks like. Probably *BITMAP "None" is part of my problem<edit>, and *NUMSUBMTLS 0 as it turns out </edit>. Can someone advise or at least paste a *MATERIAL_LIST stanza from a "proper" file? Thank you.
Code:
*MATERIAL_LIST {                  
        *MATERIAL_COUNT 1                  
        *MATERIAL 0 {                  
                *MATERIAL_NAME "towerleg.001"                    
                *MATERIAL_CLASS "Standard"                    
                *MATERIAL_AMBIENT  0.0000 0.0000 0.0000                    
                *MATERIAL_DIFFUSE  0.8000 0.8000 0.8000                    
                *MATERIAL_SPECULAR  1.0000 1.0000 1.0000                    
                *MATERIAL_SHINE  0.0978                    
                *MATERIAL_SHINESTRENGTH  0.5000                    
                *MATERIAL_TRANSPARENCY  0.0000                    
                *MATERIAL_WIRESIZE  1.0000                    
                *MATERIAL_SHADING Cooktorr                    
                *MATERIAL_XP_FALLOFF  0.0000                    
                *MATERIAL_SELFILLUM  0.0000                    
                *MATERIAL_FALLOFF In                    
                *MATERIAL_XP_TYPE Filter                    
                *MAP_DIFFUSE {                    
                        *MAP_NAME "default"                    
                        *MAP_CLASS "Bitmap"                    
                        *MAP_SUBNO 1                    
                        *MAP_AMOUNT  1.0000                    
                        *BITMAP "None"                    
                        *MAP_TYPE Screen                    
                        *UVW_U_OFFSET  0.0000                    
                        *UVW_V_OFFSET  0.0000                    
                        *UVW_U_TILING  1.0000                    
                        *UVW_V_TILING  1.0000                    
                        *UVW_ANGLE  0.0000                    
                        *UVW_BLUR  1.0000                    
                        *UVW_BLUR_OFFSET  0.0000                    
                        *UVW_NOUSE_AMT  1.0000                    
                        *UVW_NOISE_SIZE  1.0000                    
                        *UVW_NOISE_LEVEL 1                    
                        *UVW_NOISE_PHASE  0.0000                    
                        *BITMAP_FILTER Pyramidal                    
                }                                            
                *NUMSUBMTLS 0                    
}
 
Last edited:
Thank you William for the info about blender not officially being supported, and for the QLOG hint.:thumbsup:

Here is the QLOG output. It seems to point out that there is no submaterial? I'm looking into the python code of the blender ASE exporter utility to get a clue. One thing I noted is that if the ASE export script finds "slot" then it writes out the term "IMAGE" rather than "default", and goes on to specify the filename. This is where I'm focused... I use blender with the "Cycles Render" setting and nodes-based material definitions. I'm speculating that there is a small script incompatibility with it...

Code:
Tue Nov 26 08:58:53 (INFO ): [tracked] --- application start ---
Tue Nov 26 08:58:53 (INFO ): [tracked] Pixfmt 3: 24 color bits, 24 depthbuffer b
its, 8 stencil bits, 8 alpha, stereo: 0. [qxwindow.cpp:461 / EnableOpenGL]
Tue Nov 26 08:58:53 (INFO ): [tracked] Render engine using Cg (3.30 NVIDIA via C
g compiler) [dgpushader.cpp:47 / DGPUShaderManager::DGPUShaderManager]
Tue Nov 26 08:58:54 (INFO ): [tracked] Graphics card has support for 0 groups, 0
barriers [dframelock.cpp:371 / DFrameLock::GetFunctions]
Tue Nov 26 08:58:54 (INFO ): [tracked] DFrameLock::SetVSync: vsync was set to 0
(verifying that it now is 0) [dframelock.cpp:177 / DFrameLock::SetVSync]
Tue Nov 26 08:58:54 (INFO ): [tracked] Physics engine: NEWTON v3.10, architectur
e 0 [rmanager.cpp:1639 / RManager::Create]
Tue Nov 26 08:58:54 (INFO ): [tracked] Newton (v3) platform 0: cpu [newton.cpp:1
36 / PNewtonWorld::PNewtonWorld]
Tue Nov 26 08:58:56 (INFO ): [tracked] FMOD: modified software format is rate 44
100, fmt 2, outChannels 2, inChannels 6, resampler 3, bits 16 [qsample.cpp:1299
/ QSampleSetup]
Tue Nov 26 08:58:57 (INFO ): [tracked] FMOD blocksize: 23.22 ms, total buffer 92
.88 ms, avg latency 58.05 ms [qsample.cpp:1350 / QSampleSetup]
Tue Nov 26 08:58:58 (INFO ): [tracked] surround.method must be 0 for TrackEd - e
nforcing for this run [mrun.cpp:1952 / Setup]
Tue Nov 26 08:59:09 (INFO ): [tracked] initialDir: '(null)' [qfiledlg.cpp:370 /
QDlgFile]
Tue Nov 26 08:59:09 (INFO ): [tracked] initial dir used Z:\home\radome\Package\racer\data\tracks\sebring [qfiledlg.cpp:435 / QDlgFile]
Tue Nov 26 08:59:16 (WARN ): [tracked] ASECutMS: Can't find material 0, submaterial 0 [asecut_ms.cpp:428 / CopyMaterial]
Tue Nov 26 08:59:16 (INFO ): [tracked] --- application start ---
Tue Nov 26 08:59:16 (WARN ): [tracked] ASECutMS: Copy material failed for object controltower [asecut_ms.cpp:804 / ASECutMultiSub]
Tue Nov 26 08:59:16 (WARN ): [tracked] GEOM_OBJECT 'controltower' contains faces with MTLID 0 while there are only 0 submaterials defined in material #0 [asecut_ms.cpp:496 / CopyGeom]
Tue Nov 26 08:59:16 (WARN ): [tracked] ASECutMS: Can't find material 0, submaterial 0 [asecut_ms.cpp:428 / CopyMaterial]
Tue Nov 26 08:59:16 (WARN ): [tracked] ASECutMS: Copy material failed for object watertower [asecut_ms.cpp:804 / ASECutMultiSub]
Tue Nov 26 08:59:16 (WARN ): [tracked] GEOM_OBJECT 'watertower' contains faces with MTLID 0 while there are only 0 submaterials defined in material #0 [asecut_ms.cpp:496 / CopyGeom]
Tue Nov 26 09:01:19 (WARN ): [tracked] QInfo: can't open 'data/tracks/sebring/special.ini' [qinfo.cpp:357 / QInfo::Read]
Tue Nov 26 09:01:25 (FATAL): [tracked] Exception 0xC0000005, flags 0, Address 0x0049FE93
(this dialog text is stored in QLOG.txt)

OS-Version: 5.1.2600 (Service Pack 3) 0x0-0x1

0x0049FE93 [tracked]: (filename not available): RTrack::SaveSpecial [%s]
Tue Nov 26 09:01:25 (INFO ): [tracked] Going to crash, reason: qfatal [qdebug.cpp:429 / QCrash]
 
In 3dsmax we use Multi/Sub Materials. These are a type of material which can contain submaterials. The sub materials can be assigned to faces by giving them ID's which match with the preferred sub materials as defined in the multi sub. For example, you could have a multi sub material which you use for all the walls in your scene. This can grow while working on the scene and in the end it might have somewhere around 20 or 30 submaterials in the multi/sub material.

Judging from the qlog, there isn't a multisub or comparable/compatible material on the mesh or the ID's on the mesh don't match the material*.

*
Errors will also occur when the multi/sub contains only 5 materials while some polygons have ID 999
 
Yeah the ASE parser for trackEd simply doesn't allow materials that are not part of a sub-object material.

I think this is something to do with the way trackEd names/manages objects through it's pipeline internally that is the reason it's required and not just ignored and looking at the sub-materials themselves only (these are the only things that matter anyway)

In the end it's just missing some syntax to look for loose materials and if it sees one just append that material name to the name it'd have used if it had a multi-sub material.


William is right, sometimes it's nice to organise the similar shaders together in a multi-sub material in Max... thus the ASE from Max look a certain way using that build technique, thus the parser expects ASE to look like that.

It's some little details like this that make trackEd a bit counter-intuitive to use sometimes and they'd be a nice fix.

Also watch out for the way trackEd splits geometry. If an object in Blender is over 20k verts or so and uses all the same shader/material then trackEd will have problems. So make sure any objects using the same material only reach about 20k verts in size. You will have to manually split objects.

Again another little detail fix that would just start a new geom inside the same geob? (DOF file) at conversion time...




I think Blender does use a multi-sub material system, but if it treats the ASE export in the same way is another matter.
Maybe there are ASE settings? I don't seem to have the ASE option here at export to check.


I can provide an ASE file with the desired structure if you like just so you can 'fix' it so it works with trackEd ok :)



Imo, you'd be best pestering Stereo because I think he's a big fan of Blender iirc, and Python, so I think he might already have some ideas or maybe even scripts to get DOF directly from Blender... I think at least :D

Very tempted to get into Blender here and Python. The more I use both the more progressive they seem to be for 3D real-time content these days vs Max which seems to have no changed for nearly 5 years now.
 
I use the dof exporter by Brent Burton but I don't really know anything about the format or how Blender's Python works.

Recently I just use ZModeler 1.07 cause it's a more straightforward workflow for how my 3d files tend to be set up (export dof, select objects to merge into 1 dof, run dof_fix) whereas in Blender it'll export every object on layer 1 as a separate dof. I like Blender for modeling but it's got so many things going on that it's hard to do simple tasks sometimes. The exporter fails on some types of objects because they don't have textures assigned, only materials with texture properties. It just means more steps checking out the models and merging them before exporting.
 
Is there an argument, parameter, switch, method for starting a new track with tracked?

<edit> I think I just needed the skeleton of ini files:
geometry.ini
special.ini
spline.ini
track.ini
traffic.ini
</edit>
 
Last edited:
You only need a track and special.ini initially, all the rest are generated through trackEd (geomotry.ini and spline.ini) and the rest are generated when running racer :)

Quickest and easiest is to just copy the two, track.ini and special.ini from the Carlswood track to your own track.
 
It would be cool if the trackEd could do that for you, along with the creating folders for splitting and atlas.
Also a few other tasks that could just be automated.

Sometimes you get confused what bits you need or don't need to copy across when doing these tasks :)
 
I use Blender version 2.45 for which Brent Burtons exporter was written.

I have exported many blender files with more than 20k vertices with NO problem.
The exporter exports directly in the .dof format with/without vertex colors so there is no need for an .ase file. I haven't used a .ase in over 5 years! The dofs go directly into Racer with only the geometry.ini file needing adjusting.

What version of Blender are you using?
Stereo has I think modified Brents exporter for Blender 2.5xx or somebody has, can't remember who.

If you want Brents Exporter just PM me and I'll send it to you.
 
Thanks Boomer. I'm using Blender 2.69.

I fiddled with Brent's program in 2010, and again since then to get it working for 2.57. I could fiddle with it some more and get it working again but it's so painful to take it back up after laying it down for a long time that I was hoping that the ASE route would work for me.

I'm stuck with always:
Code:
World:Add(geode Z:\home\radome\Package\racer\data\tracks\sebring\ase\towerleg.001_0_watertower.ase); no bursts for geob 0
No material for geob 0 (geode 0885F0A0)

And (from modeler.exe)

Code:
Number of triangles/polygons: 84
Size              : X    0.000, Y    0.000, Z    0.000
Minimum          : X    0.000, Y    0.000, Z    0.000
Maximum          : X    0.000, Y    0.000, Z    0.000

========== 1 geobs =============

Geob 0 (0 triangles):

  Vertices            :  252, indices: 252
  Texcoord channels    : 1
  Normals present      : YES
  Vertex colors present: NO
  Bursts: 0, materialref 0
  - Index[0]=0
  - Index[1]=0
  - Index[2]=0
  - Index[3]=0
  - Index[4]=0
  - Index[5]=0
  - Index[6]=0
  - Index[7]=0
  - Index[8]=0
  - Vertex 0: 0.00 0.00 0.00
  - Vertex 1: 0.00 0.00 0.00
  - Vertex 2: 0.00 0.00 0.00
  - Vertex 3: 0.00 0.00 0.00
  - Vertex 4: 0.00 0.00 0.00
  - Vertex 5: 0.00 0.00 0.00
  - Vertex 6: 0.00 0.00 0.00
  - Vertex 7: 0.00 0.00 0.00
  - Vertex 8: 0.00 0.00 0.00
... <not all normals printed>
  - Normal 0: 0.00 0.00 0.00
  - Normal 1: 0.00 0.00 0.00
  - Normal 2: 0.00 0.00 0.00
  - Normal 3: 0.00 0.00 0.00
  - Normal 4: 0.00 0.00 0.00
  - Normal 5: 0.00 0.00 0.00
  - Normal 6: 0.00 0.00 0.00
  - Normal 7: 0.00 0.00 0.00
  - Normal 8: 0.00 0.00 0.00
... <not all normals printed>
  - TC0 0: 0.00 0.00
  - TC0 1: 0.00 0.00
  - TC0 2: 0.00 0.00
  - TC0 3: 0.00 0.00
  - TC0 4: 0.00 0.00
  - TC0 5: 0.00 0.00
  - TC0 6: 0.00 0.00
  - TC0 7: 0.00 0.00
  - TC0 8: 0.00 0.00
... <not all texcoords printed>

========== 1 materials =============

Material 0 ('grass3.001')
  texture      grass3.dds
  ambient      0.00,0.00,0.00 , 1.00
  diffuse      0.80,0.80,0.80 , 1.00
  specular      1.00,1.00,1.00 , 1.00
  emission      0.00,0.00,0.00 , 1.00
  shininess    12.52
  transparency  0.00
  uvw U offset  0.00
  uvw V offset  0.00
  uvw U tiling  1.00
  uvw V tiling  1.00
  submaterials: 0, layers 1

I would like to see someone paste the materials portion of a working ASE file for me to compare with the ones I'm mis-generating :)
 
Last edited:
Try see if this makes any sense.

Full ASE file contents here (bar the header)

Code:
*MATERIAL_LIST {
    *MATERIAL_COUNT 1
    *MATERIAL 0 {
        *MATERIAL_NAME "multisub"
        *MATERIAL_CLASS "Multi/Sub-Object"
        *MATERIAL_AMBIENT 0.5882    0.1490    0.1490
        *MATERIAL_DIFFUSE 0.5882    0.1490    0.1490
        *MATERIAL_SPECULAR 0.9000    0.9000    0.9000
        *MATERIAL_SHINE 0.1000
        *MATERIAL_SHINESTRENGTH 0.0000
        *MATERIAL_TRANSPARENCY 0.0000
        *MATERIAL_WIRESIZE 1.0000
        *NUMSUBMTLS 3
        *SUBMATERIAL 0 {
            *MATERIAL_NAME "material1"
            *MATERIAL_CLASS "Standard"
            *MATERIAL_AMBIENT 0.5880    0.5880    0.5880
            *MATERIAL_DIFFUSE 0.5882    0.1490    0.1490
            *MATERIAL_SPECULAR 0.9000    0.9000    0.9000
            *MATERIAL_SHINE 0.1000
            *MATERIAL_SHINESTRENGTH 0.0000
            *MATERIAL_TRANSPARENCY 0.0000
            *MATERIAL_WIRESIZE 1.0000
            *MATERIAL_SHADING Blinn
            *MATERIAL_XP_FALLOFF 0.0000
            *MATERIAL_SELFILLUM 0.0000
            *MATERIAL_FALLOFF In
            *MATERIAL_XP_TYPE Filter
            *MAP_DIFFUSE {
                *MAP_NAME "Map #1"
                *MAP_CLASS "Bitmap"
                *MAP_SUBNO 1
                *MAP_AMOUNT 1.0000
                *BITMAP "D:\racer\data\tracks\asphalt\texture1.tga"
                *MAP_TYPE Screen
                *UVW_U_OFFSET 0.0000
                *UVW_V_OFFSET 0.0000
                *UVW_U_TILING 1.0000
                *UVW_V_TILING 1.0000
                *UVW_ANGLE 0.0000
                *UVW_BLUR 1.0000
                *UVW_BLUR_OFFSET 0.0000
                *UVW_NOUSE_AMT 1.0000
                *UVW_NOISE_SIZE 1.0000
                *UVW_NOISE_LEVEL 1
                *UVW_NOISE_PHASE 0.0000
                *BITMAP_FILTER Pyramidal
            }
        }
        *SUBMATERIAL 1 {
            *MATERIAL_NAME "material2"
            *MATERIAL_CLASS "Standard"
            *MATERIAL_AMBIENT 0.5880    0.5880    0.5880
            *MATERIAL_DIFFUSE 0.5882    0.8392    0.5882
            *MATERIAL_SPECULAR 0.9000    0.9000    0.9000
            *MATERIAL_SHINE 0.1000
            *MATERIAL_SHINESTRENGTH 0.0000
            *MATERIAL_TRANSPARENCY 0.0000
            *MATERIAL_WIRESIZE 1.0000
            *MATERIAL_SHADING Blinn
            *MATERIAL_XP_FALLOFF 0.0000
            *MATERIAL_SELFILLUM 0.0000
            *MATERIAL_FALLOFF In
            *MATERIAL_XP_TYPE Filter
            *MAP_DIFFUSE {
                *MAP_NAME "Map #2"
                *MAP_CLASS "Bitmap"
                *MAP_SUBNO 1
                *MAP_AMOUNT 1.0000
                *BITMAP "D:\racer\data\tracks\asphalt\texture2.tga"
                *MAP_TYPE Screen
                *UVW_U_OFFSET 0.0000
                *UVW_V_OFFSET 0.0000
                *UVW_U_TILING 1.0000
                *UVW_V_TILING 1.0000
                *UVW_ANGLE 0.0000
                *UVW_BLUR 1.0000
                *UVW_BLUR_OFFSET 0.0000
                *UVW_NOUSE_AMT 1.0000
                *UVW_NOISE_SIZE 1.0000
                *UVW_NOISE_LEVEL 1
                *UVW_NOISE_PHASE 0.0000
                *BITMAP_FILTER Pyramidal
            }
        }
        *SUBMATERIAL 2 {
            *MATERIAL_NAME "material3"
            *MATERIAL_CLASS "Standard"
            *MATERIAL_AMBIENT 0.5880    0.5880    0.5880
            *MATERIAL_DIFFUSE 0.1765    0.3882    0.5882
            *MATERIAL_SPECULAR 0.9000    0.9000    0.9000
            *MATERIAL_SHINE 0.1000
            *MATERIAL_SHINESTRENGTH 0.0000
            *MATERIAL_TRANSPARENCY 0.0000
            *MATERIAL_WIRESIZE 1.0000
            *MATERIAL_SHADING Blinn
            *MATERIAL_XP_FALLOFF 0.0000
            *MATERIAL_SELFILLUM 0.0000
            *MATERIAL_FALLOFF In
            *MATERIAL_XP_TYPE Filter
            *MAP_DIFFUSE {
                *MAP_NAME "Map #3"
                *MAP_CLASS "Bitmap"
                *MAP_SUBNO 1
                *MAP_AMOUNT 1.0000
                *BITMAP "D:\racer\data\tracks\asphalt\texture3.tga"
                *MAP_TYPE Screen
                *UVW_U_OFFSET 0.0000
                *UVW_V_OFFSET 0.0000
                *UVW_U_TILING 1.0000
                *UVW_V_TILING 1.0000
                *UVW_ANGLE 0.0000
                *UVW_BLUR 1.0000
                *UVW_BLUR_OFFSET 0.0000
                *UVW_NOUSE_AMT 1.0000
                *UVW_NOISE_SIZE 1.0000
                *UVW_NOISE_LEVEL 1
                *UVW_NOISE_PHASE 0.0000
                *BITMAP_FILTER Pyramidal
            }
        }
    }
}
*GEOMOBJECT {
    *NODE_NAME "object1"
    *NODE_TM {
        *NODE_NAME "object1"
        *INHERIT_POS 0 0 0
        *INHERIT_ROT 0 0 0
        *INHERIT_SCL 0 0 0
        *TM_ROW0 1.0000    0.0000    0.0000
        *TM_ROW1 0.0000    1.0000    0.0000
        *TM_ROW2 0.0000    0.0000    1.0000
        *TM_ROW3 0.9281    -0.9281    0.0000
        *TM_POS 0.9281    -0.9281    0.0000
        *TM_ROTAXIS 0.0000    0.0000    0.0000
        *TM_ROTANGLE 0.0000
        *TM_SCALE 1.0000    1.0000    1.0000
        *TM_SCALEAXIS 0.0000    0.0000    0.0000
        *TM_SCALEAXISANG 0.0000
    }
    *MESH {
        *TIMEVALUE 0
        *MESH_NUMVERTEX 8
        *MESH_NUMFACES 12
        *MESH_VERTEX_LIST {
            *MESH_VERTEX    0    -44.0719    -40.9281    0.0000
            *MESH_VERTEX    1    45.9281    -40.9281    0.0000
            *MESH_VERTEX    2    -44.0719    39.0719    0.0000
            *MESH_VERTEX    3    45.9281    39.0719    0.0000
            *MESH_VERTEX    4    -44.0719    -40.9281    100.0000
            *MESH_VERTEX    5    45.9281    -40.9281    100.0000
            *MESH_VERTEX    6    -44.0719    39.0719    100.0000
            *MESH_VERTEX    7    45.9281    39.0719    100.0000
        }
        *MESH_FACE_LIST {
            *MESH_FACE    0:    A:    0 B:    2 C:    3 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 2    *MESH_MTLID 1
            *MESH_FACE    1:    A:    3 B:    1 C:    0 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 2    *MESH_MTLID 1
            *MESH_FACE    2:    A:    4 B:    5 C:    7 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 3    *MESH_MTLID 0
            *MESH_FACE    3:    A:    7 B:    6 C:    4 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 3    *MESH_MTLID 0
            *MESH_FACE    4:    A:    0 B:    1 C:    5 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 4    *MESH_MTLID 0
            *MESH_FACE    5:    A:    5 B:    4 C:    0 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 4    *MESH_MTLID 0
            *MESH_FACE    6:    A:    1 B:    3 C:    7 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 5    *MESH_MTLID 1
            *MESH_FACE    7:    A:    7 B:    5 C:    1 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 5    *MESH_MTLID 1
            *MESH_FACE    8:    A:    3 B:    2 C:    6 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 6    *MESH_MTLID 2
            *MESH_FACE    9:    A:    6 B:    7 C:    3 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 6    *MESH_MTLID 2
            *MESH_FACE  10:    A:    2 B:    0 C:    4 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 7    *MESH_MTLID 2
            *MESH_FACE  11:    A:    4 B:    6 C:    2 AB:    1 BC:    1 CA:    0    *MESH_SMOOTHING 7    *MESH_MTLID 2
        }
        *MESH_NUMTVERTEX 24
        *MESH_TVERTLIST {
            *MESH_TVERT 0    1.0000    0.0000    0.0000
            *MESH_TVERT 1    0.0000    0.0000    0.0000
            *MESH_TVERT 2    1.0000    1.0000    0.0000
            *MESH_TVERT 3    0.0000    1.0000    0.0000
            *MESH_TVERT 4    0.0000    0.0000    0.0000
            *MESH_TVERT 5    1.0000    0.0000    0.0000
            *MESH_TVERT 6    0.0000    1.0000    0.0000
            *MESH_TVERT 7    1.0000    1.0000    0.0000
            *MESH_TVERT 8    0.0000    0.0000    0.0000
            *MESH_TVERT 9    1.0000    0.0000    0.0000
            *MESH_TVERT 10    0.0000    1.0000    0.0000
            *MESH_TVERT 11    1.0000    1.0000    0.0000
            *MESH_TVERT 12    0.0000    0.0000    0.0000
            *MESH_TVERT 13    1.0000    0.0000    0.0000
            *MESH_TVERT 14    0.0000    1.0000    0.0000
            *MESH_TVERT 15    1.0000    1.0000    0.0000
            *MESH_TVERT 16    0.0000    0.0000    0.0000
            *MESH_TVERT 17    1.0000    0.0000    0.0000
            *MESH_TVERT 18    0.0000    1.0000    0.0000
            *MESH_TVERT 19    1.0000    1.0000    0.0000
            *MESH_TVERT 20    0.0000    0.0000    0.0000
            *MESH_TVERT 21    1.0000    0.0000    0.0000
            *MESH_TVERT 22    0.0000    1.0000    0.0000
            *MESH_TVERT 23    1.0000    1.0000    0.0000
        }
        *MESH_NUMTVFACES 12
        *MESH_TFACELIST {
            *MESH_TFACE 0    0    2    3
            *MESH_TFACE 1    3    1    0
            *MESH_TFACE 2    4    5    7
            *MESH_TFACE 3    7    6    4
            *MESH_TFACE 4    8    9    11
            *MESH_TFACE 5    11    10    8
            *MESH_TFACE 6    12    13    15
            *MESH_TFACE 7    15    14    12
            *MESH_TFACE 8    16    17    19
            *MESH_TFACE 9    19    18    16
            *MESH_TFACE 10    20    21    23
            *MESH_TFACE 11    23    22    20
        }
        *MESH_NUMCVERTEX 16
        *MESH_CVERTLIST {
            *MESH_VERTCOL 0    1.0000    1.0000    1.0000
            *MESH_VERTCOL 1    1.0000    1.0000    1.0000
            *MESH_VERTCOL 2    1.0000    1.0000    1.0000
            *MESH_VERTCOL 3    1.0000    1.0000    1.0000
            *MESH_VERTCOL 4    1.0000    1.0000    1.0000
            *MESH_VERTCOL 5    1.0000    1.0000    1.0000
            *MESH_VERTCOL 6    1.0000    1.0000    1.0000
            *MESH_VERTCOL 7    1.0000    1.0000    1.0000
            *MESH_VERTCOL 8    1.0000    1.0000    1.0000
            *MESH_VERTCOL 9    1.0000    1.0000    1.0000
            *MESH_VERTCOL 10    1.0000    1.0000    1.0000
            *MESH_VERTCOL 11    1.0000    1.0000    1.0000
            *MESH_VERTCOL 12    1.0000    1.0000    1.0000
            *MESH_VERTCOL 13    1.0000    1.0000    1.0000
            *MESH_VERTCOL 14    1.0000    1.0000    1.0000
            *MESH_VERTCOL 15    1.0000    1.0000    1.0000
        }
        *MESH_NUMCVFACES 12
        *MESH_CFACELIST {
            *MESH_CFACE 0    12    14    15
            *MESH_CFACE 1    15    13    12
            *MESH_CFACE 2    4    5    7
            *MESH_CFACE 3    7    6    4
            *MESH_CFACE 4    0    1    5
            *MESH_CFACE 5    5    4    0
            *MESH_CFACE 6    1    3    7
            *MESH_CFACE 7    7    5    1
            *MESH_CFACE 8    3    2    6
            *MESH_CFACE 9    6    7    3
            *MESH_CFACE 10    9    8    10
            *MESH_CFACE 11    10    11    9
        }
        *MESH_NORMALS {
            *MESH_FACENORMAL 0    0.0000    0.0000    -1.0000
                *MESH_VERTEXNORMAL 0    0.0000    0.0000    -1.0000
                *MESH_VERTEXNORMAL 2    0.0000    0.0000    -1.0000
                *MESH_VERTEXNORMAL 3    0.0000    0.0000    -1.0000
            *MESH_FACENORMAL 1    0.0000    0.0000    -1.0000
                *MESH_VERTEXNORMAL 3    0.0000    0.0000    -1.0000
                *MESH_VERTEXNORMAL 1    0.0000    0.0000    -1.0000
                *MESH_VERTEXNORMAL 0    0.0000    0.0000    -1.0000
            *MESH_FACENORMAL 2    0.0000    -0.0000    1.0000
                *MESH_VERTEXNORMAL 4    0.0000    0.0000    1.0000
                *MESH_VERTEXNORMAL 5    0.0000    -0.0000    1.0000
                *MESH_VERTEXNORMAL 7    0.0000    0.0000    1.0000
            *MESH_FACENORMAL 3    -0.0000    0.0000    1.0000
                *MESH_VERTEXNORMAL 7    0.0000    0.0000    1.0000
                *MESH_VERTEXNORMAL 6    -0.0000    0.0000    1.0000
                *MESH_VERTEXNORMAL 4    0.0000    0.0000    1.0000
            *MESH_FACENORMAL 4    0.0000    -1.0000    0.0000
                *MESH_VERTEXNORMAL 0    0.0000    -1.0000    0.0000
                *MESH_VERTEXNORMAL 1    0.0000    -1.0000    0.0000
                *MESH_VERTEXNORMAL 5    0.0000    -1.0000    0.0000
            *MESH_FACENORMAL 5    0.0000    -1.0000    0.0000
                *MESH_VERTEXNORMAL 5    0.0000    -1.0000    0.0000
                *MESH_VERTEXNORMAL 4    0.0000    -1.0000    0.0000
                *MESH_VERTEXNORMAL 0    0.0000    -1.0000    0.0000
            *MESH_FACENORMAL 6    1.0000    0.0000    -0.0000
                *MESH_VERTEXNORMAL 1    1.0000    0.0000    0.0000
                *MESH_VERTEXNORMAL 3    1.0000    0.0000    -0.0000
                *MESH_VERTEXNORMAL 7    1.0000    0.0000    0.0000
            *MESH_FACENORMAL 7    1.0000    -0.0000    0.0000
                *MESH_VERTEXNORMAL 7    1.0000    0.0000    0.0000
                *MESH_VERTEXNORMAL 5    1.0000    -0.0000    0.0000
                *MESH_VERTEXNORMAL 1    1.0000    0.0000    0.0000
            *MESH_FACENORMAL 8    0.0000    1.0000    0.0000
                *MESH_VERTEXNORMAL 3    0.0000    1.0000    0.0000
                *MESH_VERTEXNORMAL 2    0.0000    1.0000    0.0000
                *MESH_VERTEXNORMAL 6    0.0000    1.0000    0.0000
            *MESH_FACENORMAL 9    0.0000    1.0000    0.0000
                *MESH_VERTEXNORMAL 6    0.0000    1.0000    0.0000
                *MESH_VERTEXNORMAL 7    0.0000    1.0000    0.0000
                *MESH_VERTEXNORMAL 3    0.0000    1.0000    0.0000
            *MESH_FACENORMAL 10    -1.0000    0.0000    0.0000
                *MESH_VERTEXNORMAL 2    -1.0000    0.0000    0.0000
                *MESH_VERTEXNORMAL 0    -1.0000    0.0000    0.0000
                *MESH_VERTEXNORMAL 4    -1.0000    0.0000    0.0000
            *MESH_FACENORMAL 11    -1.0000    -0.0000    -0.0000
                *MESH_VERTEXNORMAL 4    -1.0000    0.0000    0.0000
                *MESH_VERTEXNORMAL 6    -1.0000    -0.0000    -0.0000
                *MESH_VERTEXNORMAL 2    -1.0000    0.0000    0.0000
        }
    }
    *PROP_MOTIONBLUR 0
    *PROP_CASTSHADOW 1
    *PROP_RECVSHADOW 1
    *MATERIAL_REF 0
}
 
But as you can clearly see, there is no reason why the parser can't just grab non multi-sub materials.

Boomer, you can go over 20k verts without issue with a good exporter. Just the trackEd one can't seem to deal with starting a new geometry within an existing DOF when the limit is reached.
Nor can modeller.exe ASE importing either (same library probably)
 
Thank you for the ASE clipping. I found that my ASE file had an imbalanced number of curly braces in the materials section. I remedied it but it had no effect. Ready to give up and work on Mesh2DOF.:unsure:
 
Writing in multi-sub to get compatible ASE will be a pain.

Ideally you want to do them locally in Blender I would say, but that might not be the workflow you want to use.
It's nice in Max for some uses but it's not essential workflow. Indeed even Max doesn't fully support them in some modifiers yet even after Max 6 introduced them (edit poly modifier)

I'd certainly look into making DOF directly from your app since we can then control things much more... at least until the trackEd/modeller tools develop more and more (if they ever do)

Dave
 

Latest News

Are you buying car setups?

  • Yes

  • No


Results are only viewable after voting.
Back
Top