Open Asset Import Library (short name: Assimp) is used in Spring for loading a number of common and well supported model formats (.3ds, .dae, .lwo, .blend - currently .obj is parsed by a different code path).
What Spring supports in its Assimp renderer:
- extended metafile (
%modelfilename%.luanext to the modefile)
- still uses tex1 & tex2 texture system of S3O (same shader as S3O)
- 2nd texcoord
- loading of the texture filepaths from the model (don't have to be in
- when texture filepaths aren't included in the model, it searches for
- special modelpieces `SpringHeight` & `SpringRadius` Removed from version 101.0
- New in version 102.0 auto-normalize normals and tangents for all AssImp-loaded models
- New in version 95.0 allow modellers to work around #3552 (differing axes conventions between software) by recognizing a number of new piece-table keys as follows
For the root piece: Removed from version 104.0
- "xaxis" = float3, "yaxis" = float3, "zaxis" = float3 (determine global orientation of model)
For all pieces: Removed from version 104.0
- "rotAxisSigns" = float3 (determines direction of script-applied rotations around each axis)
- "rotAxisMap" = number (currently can only be 0=XYZ or 3=XZY, determines coordinate conversion)
The following Workflow is provided for a standard 3D Modeling package using the Z = forward, Y = upwards convention, like Maya, Modo or Lightwave. You can also use Blender to export models for ASSIMP, as covered in the next section.
Blender Workflow Tutorial
This is a stub containing a simple outline of a Blender workflow.
- Open an existing Blender model or import a different format through the File menu (File > Import).
- In the 3D view, drag out the secret panel from the right. secret panel
- In that panel, select Display > Shading > GLSL. display settings
- Make sure you have a lamp in your scene while in this mode or your model will be dark.
- Applying texture:
- In the UV/Image editor, click the image icon (Tooltip: Browse Image to be linked) to select your texture. If it's not there, click on Image > Open Image to browse for it.
- In the 3D View, select (right-click) your object and hit Tab to enter Mesh Mode.
- Hit A to select all your faces.
- In the 3D View, hit A to select all the faces there and select your image with the image icon. Assuming there's a UVMap, you should see your texture.
- If you don't see any faces you'll need to add the UVMap to a new texture:
- In the Properties view click on Textures (checkerboard icon).
- Click on Add New Texture (plus icon).
- Select Type = Image or Movie.
- Under Image, click on the image icon and choose your image file.
- Under Mapping, select Coordinates = UV.
- Under Influence > Diffuse, check Color and make sure it's 1.00.
- To add a normalmap:
- Repeat steps 5.5.1 to 5.5.5.
- Under Image Sampling, check Normal Map.
- Under Influence > Geometry, check Normal. Make sure it.s 1.00.
- You'll need to do this for each piece.
- Piece hierarchy:
- Select piece A, hold shift and select piece B. Hit Ctrl+P and it will make piece A a child of piece B.
Make sure all the pieces are descending from one single piece.This is no longer necessary but is still good practice. Spring will now place all your pieces into one root piece for you, regardless.
- Setting piece origins:
- Select a piece.
- Place the 3D cursor where you want the origin to be (left-click).
- Click on Object > Transform > Origin to 3D Cursor.
- You can now rotate your pieces:
- Click on the dropdown "Pivot Center for Rotation/Scaling" and select Individual Origins.
- Do this for all your pieces.
- Preparing for Spring (this may or may not apply depending on how assimp handles your model.):
- Ensure that the scales for each object in your scene are uniform (that is, x, y, and z scales are equal to each other). A quick way to ensure that is select all (a) and apply scale (ctrl+a -> scale).
- Save your model.
- Select all the pieces of your model, ignore the lamp.
- Click on File > Export > Collada.
- Check "Export Only Selected" and export.
- The dae file will be used as your object.