A few posts ago, I wrote about the fact that DirectFlex was able to load and display Nintendo 64 3d models. You can found this post and a few screenshots here. This experiment was made using the Flash 9 version of DirectFlex, and a lot of things have changed since then. Here we are, with a brand new version of DirectFlex specially designed to take advantage of the new features of Flash 10.
DirectFlex new features and Wii 3D models rendering
The new Flash 10 version of DirectFlex comes with a lot of new features such as:
- New architecture
- Improved performances
- Texture coordinates support
- 3DS files support
- Embed assets (textures and 3D models) support
- Pre-made camera classes
A good example of those new features is the fact that DirectFlex is now able to load and display Nintendo Wii 3D models. To make this new experiment I downloaded "Zelda : Twillight Princess" 3D models. Those models have been ripped from the original Wii game and are easily available on google. Because a picture is worth a thousand words, here are a few screenhots:
Those screenshots are the very first of the Flash 10 flavor of DirectFlex. I chose to render a Goron, a legendary creature of the Zelda universe. But I can hear you wondering : "Why ?! Why a *&*%#@ goron ?! We want Link!". Well the reason is very simple: the 3DS loader and the optimizations I added are still quite experimental and a few bugs remain when I load Link's 3DS model... Too bad! But I am sure I will come up with a solution soon!
But it is not that easy...
The main problem with those Wii ripped models is not the number of primitives itself but the fact that they are not really real-time rendering friendly: they are subdivided in a lot of subsets. Therefor, they are easier to edit and to manipulate inside a 3D editor such as 3DS Max. The problem is that each of those subsets have to be rendered one after the other and at each frame. Thus, a lot a function calls occur which causes a huge framerate breakdown. A good solution would be to merge all subsets to get only one giant mesh. But usually, each subset must be rendered with a specific material/texture so you can not just blindly merge all subsets together. Hopefully, I managed to implement a bunch of new features that makes it possible and very functional!
This is still experimental but is defenitely worth exploring. I will release a live SWF demo as soon as camera controls will be more efficient.