- FPS: is it possible to display Half Life 1 graphics in Flash ? I don't know yet... but this experiment is an improvement of the one I posted a while back
- Earth: I always wanted to implement the famous Google Earth in Flash. This might be a good first step! I made this experiment in approximately 1 hour to test out a few new features
Please let me know what you think about those new experiments. Any feedback will be greatly appreciated!
UPDATE: you can find a newer version on the DirectFlex Blog.
It's been a while since the last post. But I'm back and I decided to release the first DirectFlex demo ever
This demo is quite simple and features a 3D model extracted from the famous Half Life 1 add on Counter-Strike 1.6. The model is made of "only" 740 polygons, which is not much compared to what DirectFlex can do. Still, being able to display Half Life 1 models inside of Flash with a decent framerate brings hope for future developments. Anyway it is a good proof that DirectFlex is (way) faster than any other Flash 3D "engine" out there... but hey! live demo first and then technical stuff... (Flash 10 required!)
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:
Remember remember... (the fifth of november ?!) what is the main point about DirectFlex ? It "looks like" DirectX (at least the API layer does). But what does that mean exactly ? It means that a lot of things are the same. Not only design concepts but also prototypes and names. But because I'm quite sure that most of the flash developpers never did any DirectX programmation, I think it's worth a little explanation. I won't talk very precisely about class definitions and prototypes but I will just try to explain the global logic of DirectFlex' API layer and how to use it to draw a simple cube.
I was recently trying a few good old Nintendo 64 games on my eee-pc when I had the idea to try to import some characters to display them in Flash with DirectFlex. I'm not going to explain the full procedure here but simply show a proof of concept. Here it is, the"adult" Link character from "Zelda : Ocarina of Time" :
My first post was about the 3D Flash library I'm currently working on : DirectFlex. As I said, it is not a simple 3D engine but a full 3D API like DirectX or OpenGL. As Flash 10 is likely to be available when the first public version of DirectFlex will be released, I decided to rewrite the API's core to take advantage of the new 3D mathematics classes and the hardware acceleration features. This is actually the third time that DirectFlex is entirely rewritten from scratch... but time after time the quality of the work and the performances have improved a lot.
The next version of the Flash player will introduce a lot of new cool/useful features. One of them is the brand new 3D API. Of course, a lot of people are talking about the cool new "3D effects" that use this 3D API, but in the end those do not allow "real" and "complex" 3D such as real-time 3D games. So basically, yeah, drawing 3D spinning planes is "cool", but that's not how you're gonna create some "ass-kicking" RIA...
In order to render complex 3D geometry, you'll have to use the underneath 3D API itself. This 3D API is mainly about three classes : Matrix3D, Vector3D and Utils3D. Those implements data types and methods to transform vertices data from a space to another in order to render actual 3D geometry on our very 2d flat screens. And... that's it. We also have the new "Graphics.drawTriangles" method and hardware acceleration, but all of this does not provide what we could call a user-friendly 3D API. But here comes...