OT but useful : ASE animations

okay, i’ve been scratching my head for more than 1 year now on this .ase format, but I still have bugs in animations due to both ill-exported models and lack of documentation.

I remember that bsenftner had posted a new exporter some time ago, but the link is now broken. Can you give me a good link to a good exporter ?

Also, how are those scalesample coeffs exported ? I guess : 3 scaling coeffs, then 4 numbers indicating some ‘bias’ in the scaling… how do you read that ?

I also need some documentation on how object hierarchy is managed. When then father object has certain scaling coeffs, and the son has other scaling coeffs, how do I compute the effective scaling for the son ?

Do you have some code for me ?

PS :

I’ve discovered the exact meaning of MATERIAL_SHINE and MATERIAL_SHINESTRENGTH. Here is the exact formula to compute the GL_SHININESS :

GL_SHININESS = exp (MATERIAL_SHINE * 100.0 / 8.0 * log (2.0));

The MATERIAL_SHINESTRENGTH acts only on the specular color :
EffectiveSpecularColor = MATERIAL_SHINESTRENGTH * MATERIAL_SPECULAR + (1 - MATERIAL_SHINESTRENGTH) * MATERIAL_DIFFUSE;

That only works fine with opengl if you don’t have a texture. The problem is that opengl 1.x does not manage specular textures. If you have a texture, it will be better to stick with a MATERIAL_SHINESTRENGTH equal to 1.0. To achieve this, fix all the Specular Levels in 3ds max to 100.

Please note that the following correspondence holds between 3dsmax’s notation and ASE’s notation :

MATERIAL_SHINESTRENGTH = SpecularLevel / 100
MATERIAL_SHINE = Glossiness / 100

enjoy !

[This message has been edited by Morglum (edited 01-02-2003).]

OpenGL 1.2 and up allow you to separately manage specular and diffuse textures, using the GL_COMBINE texture environment mode and sufficient configuration studliness.

(Or do you need 1.3 for GL_COMBINE? I forget. It’s usually available as an extension for 1.1)

Animations are usually expressed as a position plus a rotation; thus if you’re seeing 3 + 4 values, I would presume those are a position and a quaternion. However, I know nothing about ASE so that’s just a wild guess.

Maybe that’s a stupid question, but how do you export your animations to the ASE format ? Using 3DS Max 3 or 4, i get a mesh for each key frame specified; so if my animation is 20 frames and the mesh is 2000 tris, i get 20 meshes of 2000 tris each. Unfortunately it’s an ASCII format, so for a complete animated character i get hundred of Mb of data… did i miss something? what are you doing to get the translations / rotations instead ?

Y.

Just uncheck ‘Animated mesh’ in the exporter dialog. Check ‘Force Sample’.

That also depends on your scene. Sometimes, you’ve got complicated anims impossible to write down as rotations. But all simple anims (like anything you’ll see in games) can be written with only translations/rotations/scaling on the objects.

ok, thanks jwatte for the trick, but my initial questions remain open. In particular :

where to find an ASE exporter for 3ds Max ?

It’s been built-into 3dsmax since version 3 I think. It’s certainly in both our copies of 3 and 5 here at work. It should be part of the standard install. If yours somehow is missing it, I suggest contacting Discreet customer support for help.

Yes I know, but this one is full of bugs. The output has wrong lines and it’s not always possible to recover from redundant informations.

bsenftner had posted a link to a corrected exporter, that’s what I look for. Please, you all, don’t tell me that nobody did download it when it was available ? Could you send it to me by e-mail ? Or give me another url ? Unfortunately bsenftner did not give an email address.

[This message has been edited by Morglum (edited 01-03-2003).]

If you’re into converting source code, there is a Delphi ASE reader at www.delphi3d.net

Another option is the demogl_utils_lib.zip in the download section at www.demogl.com

Haven’t tested these so I don’t know if they’re good.

thanks, but that’s not what I was looking for. I’m not trying to read/import existing ASE files, I’m trying to export ASE files from 3ds max. The standard exporter being buggy, I’m asking for a debugged one.

I don’t have a debugged binary to send you directly.

However, the ASE exporter is included in the Max SDK as the “asciiexp” sample in the ImpExp directory. If you know what the bugs are, fixing them yourself should be easy (hopefully).

Also, if you search for “ASE” in the 3dsmax5 SDK sparks archive help file, the very first hit you get concerns where to download an updated ASE exporter from the Discreet support site. If you have trouble accessing that site, you should probably be asking Discreet support, not the OpenGL forum.

However, I’ve found that, in the end, it almost always makes more sense to write your own exporter. (For what it’s worth.)

Hope this helps.

thanks !

I’ve searched for ASE in the archive and all what I’ve found is the following (broken) link :
http://support.discreet.com/webboard/wbpx.dll/~mos

can you tell me of which url you are talking about ?
Also, yes, I could parhaps do it myself. I’ll see. Still, it’s a pity doing something that has already been done.

I just happened to check this thread out and noticed that my exporter was being discussed. There is a new link: http://www.popdigitaltech.com. From there you can get the modified ascii exporter as well as a description of the changes I made. This version is for Max 4.0 only.

About the original posts questions:
In the scale information that I paid any attention to is passed in a *NODE_TM block. The information is passed as an x,y,z scale, but about a specific orientation. The following tags LTM_SCALE, LTM_SCALEAXISANG, LTM_SCALEAXIS compose the x,y,z scale about that angle,axis transformation.

To use this information, you create a transformation that applies the orientation transformation, then another that applies the x,y,z scale and then a 3rd that applies the inverse of the orientation transformation. Concat these together and use that.

Note that I don’e use animated scales, so I never looked at the output for animations that use scales. But I would guess that the information is something like the x,y,z scale followed by an angle,axis set of 4 numbers.

As far as calculating the effective scaling of a child after a parent, just concat their local matrix together.

-bsenftner

thank you, bsenftner !!

Do you think the exporter will also work for 3dsmax 5 ? Maybe after recompilation ?

Also, thanks for the hints about scalings.

Since I have not upgraded to Max5, I don’t know if a simple recompile of my corrections to the ASE source will be enough. I suggest using something like WinDiff or GDiff to view the differences between the provided ASE exporter within the Max5 SDK and my version. I have surrounded each modification that I made to the original source with comments that read “Blake mod” and “end Blake mod”. You can use these to identify changes to the ASE logic I’ve made and new additions to the ASE logic from Discreet for Max5.
For specific questions, since I don’t always read these forums, you can use the “contact” link on the www.popdigitaltech.com page.

ok, thank you very much.