• Create Account

### #Actualtom_mai78101

Posted 15 April 2013 - 12:54 PM

I have created a simple 3D animation, which is a cube that is bobbing its head back and forth, and using Blender to export the animation into 3DS Max file format.

According to this link here, I have satisfied the first and second requirements, which are to use a file format (3DS Max file) that is saved as a binary file, and to create a 3DS file loader.

From here on, I couldn't follow the instructions. The respondent said to skin the weighted mesh by going through the vertex shader, does it mean I have to use GLSL to do animation by controlling the vertex and calculate the weight on the mesh? I even got more confused with the part that says to use the matrices that were included with the skins. But it got me thinking that maybe 3DS Max files have a file structure hierarchy that stores data useful for these.

I went to this site that teaches how to create a 3DS Max loader. There, it includes the following hierarchical file structure known.

MAIN CHUNK 0x4D4D
3D EDITOR CHUNK 0x3D3D
OBJECT BLOCK 0x4000
TRIANGULAR MESH 0x4100
VERTICES LIST 0x4110
FACES DESCRIPTION 0x4120
FACES MATERIAL 0x4130
MAPPING COORDINATES LIST 0x4140
SMOOTHING GROUP LIST 0x4150
LOCAL COORDINATES SYSTEM 0x4160
LIGHT 0x4600
SPOTLIGHT 0x4610
CAMERA 0x4700
MATERIAL BLOCK 0xAFFF
MATERIAL NAME 0xA000
AMBIENT COLOR 0xA010
DIFFUSE COLOR 0xA020
SPECULAR COLOR 0xA030
TEXTURE MAP 1 0xA200
BUMP MAP 0xA230
REFLECTION MAP 0xA220
[SUB CHUNKS FOR EACH MAP]
MAPPING FILENAME 0xA300
MAPPING PARAMETERS 0xA351
KEYFRAMER CHUNK 0xB000
MESH INFORMATION BLOCK 0xB002
SPOT LIGHT INFORMATION BLOCK 0xB007
FRAMES (START AND END) 0xB008
OBJECT NAME 0xB010
OBJECT PIVOT POINT 0xB013
POSITION TRACK 0xB020
ROTATION TRACK 0xB021
SCALE TRACK 0xB022
HIERARCHY POSITION 0xB030


I saw that there is a chunk that store animation frames, which are probably keyframes that appears in Blender's Dopesheet. But the file structure didn't tell me where I can load (or read) matrices that is used to calculate the vertices when the animation is being played. Thus, I'm stucked.

1. What does the third requirement meant for me to do?

2. Are there examples / sample codes that loads 3DS Max files and animate the models in the program?

### #1tom_mai78101

Posted 15 April 2013 - 12:54 PM

I have created a simple 3D animation, which is a cube that is bobbing its head back and forth, and using Blender to export the animation into 3DS Max file format.

According to this link here, I have satisfied the first and second requirements, which are to use a file format (3DS Max file) that is saved as a binary file, and creating a 3DS file loader.

From here on, I couldn't follow the instructions. The respondent said to skin the weighted mesh by going through the vertex shader, does it mean I have to use GLSL to do animation by controlling the vertex and calculate the weight on the mesh? I even got more confused with the part that says to use the matrices that were included with the skins. But it got me thinking that maybe 3DS Max files have a file structure hierarchy that stores data useful for these.

I went to this site that teaches how to create a 3DS Max loader. There, it includes the following hierarchical file structure known.

MAIN CHUNK 0x4D4D
3D EDITOR CHUNK 0x3D3D
OBJECT BLOCK 0x4000
TRIANGULAR MESH 0x4100
VERTICES LIST 0x4110
FACES DESCRIPTION 0x4120
FACES MATERIAL 0x4130
MAPPING COORDINATES LIST 0x4140
SMOOTHING GROUP LIST 0x4150
LOCAL COORDINATES SYSTEM 0x4160
LIGHT 0x4600
SPOTLIGHT 0x4610
CAMERA 0x4700
MATERIAL BLOCK 0xAFFF
MATERIAL NAME 0xA000
AMBIENT COLOR 0xA010
DIFFUSE COLOR 0xA020
SPECULAR COLOR 0xA030
TEXTURE MAP 1 0xA200
BUMP MAP 0xA230
REFLECTION MAP 0xA220
[SUB CHUNKS FOR EACH MAP]
MAPPING FILENAME 0xA300
MAPPING PARAMETERS 0xA351
KEYFRAMER CHUNK 0xB000
MESH INFORMATION BLOCK 0xB002
SPOT LIGHT INFORMATION BLOCK 0xB007
FRAMES (START AND END) 0xB008
OBJECT NAME 0xB010
OBJECT PIVOT POINT 0xB013
POSITION TRACK 0xB020
ROTATION TRACK 0xB021
SCALE TRACK 0xB022
HIERARCHY POSITION 0xB030


I saw that there is a chunk that store animation frames, which are probably keyframes that appears in Blender's Dopesheet. But the file structure didn't tell me where I can load (or read) matrices that is used to calculate the vertices when the animation is being played. Thus, I'm stucked.

1. What does the third requirement meant for me to do?

2. Are there examples / sample codes that loads 3DS Max files and animate the models in the program?