Most of Minko's source code is now documented in the 2.0b branch and you can download the developers reference with this link:
But this documentation evolves with the code. And the code is updated every day. Of course, most of the changes are minor bug fixes and do not affect the documentation. Yet, it might be the case so we needed a way to:
- be able to easily rebuild the updated developers reference when the ASDoc changes
- give others the possibility to rebuild the documentation from the latest sources in case we do not provide the latest compiled version (which will happen since we won't upload a new ZIP everyday)
This is why I've added all the required files to make it possible to build the developers reference with ANT:
- The build.xml file contains an "asdoc" task to build the developers reference.
- The build.properties file contains some customizable variables like the home directory of the Flex SDK to work with (you might need to customize this value in order to get the ANT tasks to work properly).
- The doc-templates directory contains a custom documentation template that will evolve with Minko's requirements.
If you have troubles working with the developers reference you can ask for help on Aerys Answers, Minko's official support forum.
One of Aerys' engineers - Roman Giliotte - is the most active developer on Minko. He is the one behind the JIT shaders compiler, the Collada loader and the lighting engine. This last project received a special attention in the past few days with a lot of new features. Among them: normal mapping and parallax mapping.
The following sample shows the difference between (from left to right) classic lighting, normal mapping and parallax mapping:
The 3 objects are the exact same sphere mesh: they are just rendered with 3 different shaders. You can easily see that the sphere using parallax mapping (on the right) appears to have a lot more details and polygons. And yet it's just the same sphere rendered with a special shader that will mimic the volume effect and details on the GPU.
Parallax mapping can be used to add details and volumes on any mesh. This technique is used in many modern commercial games such as Crysis 2 or Battlefield 3. It makes it possible to load and display a lot less polygons but with a high-polygon level of details.
And of course, thanks to Minko and Flash 11/AIR 3, it works just as well on Android and iOS!
The only thing you need is a normal map and a heightmap. And those two assets are very easy to generate from any actual 3D asset. The technique we use is called "steep parallax mapping". And thanks to Minko's exclusive JIT AS3 shaders compiler, you can now use parallax mapping in any of your custom shaders! The code is available on github :
- the code for the parallax mapping is available as a shader part on github in minko-lighting
- the demo is available in the minko-examples repository
One of the future optimizations include storing the height in the w/alpha component of the normal map. This way, the memory usage will be the same than with normal mapping but with a much better rendering.
If you have questions or suggestions, you can leave a comment or post on Aerys Answers.
Being able to create procedural geometry is very important in a 3D engine. Minko is special because it offers 2 ways to work with the 3D geometry:
- The streams API: low level but the fastest solution. You have to create and fill the buffers yourself which becomes rapidly annoying and hard to read.
- The vertex iterators: a high level dynamic API, slow but very very easy to work with.
In this post I will explain how you can create a 3D procedural terrain in just a few lines of code.