Other ways to support Sylphis3D...
There are two ways of creating the normal-map. The easy way is generating it from a ``hand-drawn'' gray-scale image that represents the bumps of the surface. This technic has moderate results. The more advanced generation method, involves extracting the normal information from a high detail mesh. This technic produces the best results, but requires that there are two models of the same thing. One with many triangles and one with low triangle count so that it can be used for realtime rendering. The obvious solution, to have artists create both models, can be very time consuming. It would be nice if it was possible to create the low resolution mesh from the high resolution mesh automatically. Most 3D modelling software include optimization functions, but most of the time don't create good approximations for the high resolution model. At least no good approximations for bump-mapping.
This text is about the triangle mesh optimizer created as part of the Sylphis 3D game engine and discuss the usage and the features of it.
https://sourceforge.net/project/showfiles.php?group_id=136327&package_id=161788&release_id=351672
Simply execute the downloaded file and the installer will guide you through the rest of the installation process.
Note that it might be a good thing to add the program's installation folder to the system path.
The input file mush be in the Simple Mesh File (.SFM) format and so the produced output will be. The importers for 3DSMAX version 5.0 are included in the Sylphis 3DSMAX exporters download, available at the Sylphis homepage.
Start the command line and change folder to the installation folder. Then type :
This will start the process to create a triangle mesh
approximation for example
cow.smf with 1000
triangles. Note that it is possible to get a 999 triangle mesh for
output. This will not happen with this mesh, but it is normal to
happen. Your console should look something like figure
1.
When the optimization process completes there should be the file cow_out.smf in the current folder. The output mesh should have 1000 triangles, as requested. This is a 97% reduction!
Lets import the files in 3DSMAX for visual review. In figure 2 we can see the high and low resolution models in wire-frame mode. In figure 3 we can see the high and low resolution models after smoothing their normals.
![]() |
Take notice that even at a reduction of 97%, the low detail model still maintains the major features of the high resolution model, while loosing the details that can be later be added by bump-mapping. Take for example the eyes and the nose holes that are removed in the low resolution model.
So lets compare the results of Sylphis G.T.O and 3DSMAX. In figures 5, 6 we can see the wire-frame an filled versions of the two low resolution models. The left was generated by the Sylphis G.T.O and has 1000 triangles. The right by 3DSMAX and has 1036 triangles. Even if it is hard to believe the right model has 36 triangles more than the left! It is obvious that the Sylphis G.T.O managed its triangle budget more wisely, resulting in more homogeneous triangle distribution and does not generates ``long'' and degenerate triangles. This is a very important parameter when normal mapping is the target.
![]() |
![]() |
In Figure 8 and Figure 7 we can see an other example of optimization. The original high resolution model consisted of 180000 triangles. To the left we can see the Sylphis G.T.O produced version. To the right we can see what 3DSMAX optimize produced.
![]() |
![]() |
It is again obvious that the Sylphis G.T.O produced better and more uniform triangles, while being more loyal to the triangle budget. The 3DSMAX version on the other hand even failed to maintain the figure of the body. The model became heavily distorted.
The first thing that we should do is to assign texture coordinates to the low resolution model cow_out.smf. For this use the Unwrap UVW modifier from 3DSMAX. Then create a flatten texture mapping. This will not create the best results but it is ok for the example. Now that the model has texturing coordinates export to .NMF files both the high and low resolution models. These file types is supported by the ATI's normal mapper. Invoke the normal mapper like this :
After finishing the above command will generate the normal map in Figure 9.
This can be applied on the low resolution model to make it look like the high resolution model. In Figure 10 we can see how the normal map can make the low resolution model look like the high resolution model. In Figure 10, A is the original high resolution model of 34834 triangles. B is the optimized by Sylphis G.T.O low resolution model of 1000 triangles without the normal map. Now C is the same model as B, but with the normal map applied. Note that C has only 3% of the triangles A has, but looks almost identical to it.