Archive for the ‘3D ENGINES’ Category
This is a very cool project called V8-GL. It is an OpenGL engine with 80% of the API converted to run on the V8 Javascript engine, the same engine that runs Google Chrome.
This is exciting as more productive languages like Javascript get speed boosts from engines like V8 and are capable of manipulating more complex systems like OpenGL. Google is also pursing this in the browser with O3D with javascript manipulation of hardware rendering. Also, a Google funded project called Unladen Swallow is converting Python to the LLVM virtual machine, so that it can have increasing speeds to compete with gcc speeds.
Making things easier to produce and control with more simplified and minimal languages like Javascript, Python and Actionscript etc that control more complex systems, that typically you would need to invest more time in such as a platform on C++ is the goal. V8-GL has this goal in mind.
V8-GL from the author states:
V8-GL intends to provide a high-level JavaScript API for creating 2D/3D hardware accelerated desktop graphics.
In other words, you can hack some JavaScript code that opens a desktop window and renders some 3D hardware accelerated graphics. Bindings are made using the V8 JavaScript engine.
- V8-GL blog post
- V8-GL source on Github
- Also check out the SpiderMonkey jslibs project with other javascript wrappers for libraries like ode, sdl and more using the engine by Mozilla.
Rozengain or Dennis Ippel of AKQA updated probably one of the tools I use the most for flash 3d and that is the blender to as3 exporter. This simplifies loading in the meshes you have and lessens the bulk of the COLLADA format. COLLADA is great but flash is still client side and fairly memory intensive for 3d so loading in models directly to as3 is nice if flash is your presentation tool.
AS3 Blender exporter has been updated to allow multiple object export. Also in April is was updated to export quads and modifiers.
One concern you might have is statically binding the code within a main swf fileon compile and resulting file size compared to loading in the DAE dynamically. But you can just load these in as you would external DAE COLLADA files as compiled swfs and since it is just code it is very compact. This adds some duplication of code (such as tweening libraries or the 3d engine source as needed) but allows a more horizontal loading or lazy loading of meshes when needed.
This is just another option to get 3D models into the flash 3d engine of your choice in addition to COLLADA, some MD2 support and limited ASE support.
This is an awesome project that keeps getting better, thanks Rozengain.
Unity 3D iPhone was updated recently to 1.0.2 and it has been greatly improved in performance and a much more solid 1.0 toolkit. According to Unity 3D information by up to 50% which means much more room for assets to munch memory for us yay!
I updated to iPhone SDK 3 beta 4 and iPhone OS 3 beta 4 and the latest Unity iPhone and things were much better in perception of speed at least in early testing. Not sure if it was more from one or the other but the games I am testing/building so far are quicker and the OS feels faster overall.
Get the latest Unity 3d iPhone dev kit (only for Mac OSX obviously since it uses XCode to compile per Apple licensing requirements)
This build fixes many issues and makes some great optimizations for speed as listed here:
New Features and Improvements
- Reduced memory footprint for uncompressed audio by 50%
- “Memory usage for textures reduced by 50%. Texture memory is now freed once it has been submitted to OpenGLES on the device. The “Enable Get/SetPixels” flag in the Texture Import Settings lets you disable this feature on a per texture basis in order to access the texture data from a script using GetPixel etc.
- Improved iPhone script call optimization
- Removed unused parts of Mono runtime
- Reduced memory overhead while reading data from disk and slightly improved load times.
- Support for several predefined splash-screens (portrait/landscape) for Indie version. Just rename one of the splash-screens in the output directory to Default.png
- Exported audio session activation/deactivation functions to AppController.mm
- Added Scripting Reference code examples for iPhone specific APIs
Bug Fixes
- Fixed audio to play correctly after phone call / text message / alarm interruption occurs
- Fixed compressed audio occasionally refusing to play
- Fixed AudioSource.PlayOneShot to work correctly with compressed audio
- Fixed audio to respect Mute switch and background iPod music
- Fixed Pause function and time property for compressed audio clips
- Fixed OpenAL memory leak
- Fixed PhysX memory leaks
- Fixed Audio and Animation assets leaking while loading new scene
- Fixed a crash related to playing compressed audio in a sequence
- Fixed memory leak while updating Mesh geometry data
- Fixed several small memory leaks in rendering module
- Fixed asynchronous .NET sockets
- Fixed .NET threads
- Fixed cross thread boundary calling to the delegates
- Fixed UnityEngine.TextEditor stripping
- Fixed GUI slider stripping
- Fixed GUI scroll view stripping
- Fixed IndexOutOfRange exception checking
- Fixed Boo.Lang.dll stripping
- Fixed occasional crashes of AOT cross compiler
Yogurt3D flash based 3d engine appeared recently and is another flash based 3d engine which is based on OpenGL called SwiftGL and is stated as open source.
The site mentions that OpenGL source can be converted to run in the engine. You can do this now with Alchemy although it is in very early stages. It is not clear if it is an automatic conversion or if it simply means it is similar in syntax and method signatures, objects etc.
I definitely will be watching and see how it progresses, there isn’t much other than a single post about the engine so far and no info on the api or sample code. Looking forward to seeing more, the z-sorting is quite nice. Doesn’t appear like collisions are there yet but it has a nice look.
Sometimes excellent toolkits come out of the blue like this such as Ffilmation (isometric flash engine) or Alternativa (flash 3d engine flash 10 focused) so you never know.
@bartek from everydayflash.com is an amazing 3d flash designer and developer. The latest from everydayflash is a sample using MouseConstraint in JiglibFlash the 3d physics engine for all major flash 3d engines.
It is easy to see how the latest version of JiglibFlash with MouseConstraint will be heavily influencing flash games and applications very soon. This is a very smooth and quick demo that feels very responsive on the controls. There are so many possible uses for JiglibFlash now that the MouseConstraint is available. It will evolve further but this version seems ready to start integrating into many flash game and interactive ideas and projects. Even though it is still alpha it has been heavily cleaned up and a plugin system added by bartek for pluggable 3d render engines. That is a huge step for 3d pipelines in flash.
Great work JiglibFlash team!
Google has a few things going for 3d in the browser, not just 3d but hardware rendering in the browser. They previously had native client which allows you to run code via a plugin proxy with a sample running Quake. They also had Lively which was a virtual world plugin that was shut down a few month after it started.
Now they are also making and releasing an O3D plugin that looks to be another way to do web 3d scenes and games although it is a very early stage. They appear to want to have an open discussion about how best to add hardware rendering to the web. Their approach uses a javascript api to control the browser plugin and the O3D control is essentially just a renderer.
This won’t change anything now as Unity3D, Flash 3D pseudo engines, even Director 3D still are the top choices for games, apps, and interactives that need effects and possibly hardware rendering. But it is interesting that Google is essentially re-entering this debate after ditching on Lively and they must see some benefit to having a discussion about 3d on the web and 3d standards in general. I know they have lots of models and tools with SketchUp and Google 3D warehouse so who knows maybe they will take it over by being standards, open and information based.
What is O3D?
O3D is an open-source web API for creating rich, interactive 3D applications in the browser. This API is shared at an early stage as part of a conversation with the broader developer community about establishing an open web standard for 3D graphics.
Get involved
- Download the plug-in (Windows and Mac) and explore the samples to see O3D’s capabilities. Linux users, see these instructions.
- Read the Technical Overview and Developer’s Guide to learn how to get started.
- Join the O3D developer groups to provide feedback.
One thing is for sure, 3d development is still old school proprietary lock in in most cases. Working with 3d and tools like Maya, 3dsmax and others they have always been very non standard. From file formats to interfaces to even basic movements, all different. The general maths of 3d are the same and so should 3d pipelines. Formats like COLLADA are nice because they are starting to open up 3d pipelines and content creation but COLLADA still has many porting issues. FBX file format is another that is really useful and common making pipelines in Unity 3D, for instance, very nice. But it is owned and run by Autodesk who owns all the 3d apps (Maya, 3dsmax, SGI) and I am a bit leary of that method. But in the end 3d pipelines and rendering will be somewhat standardized and maybe the web will be hardware rendered one day. In most cases it is not needed, but for gaming, immersion, demos and other entertainment it could benefit heavily from a more standardized 3d pipeline and methods.
JiglibFlash has been updated on a few fronts…
Recently added include, you can now use RADIANS or DEGREES to manipulate objects in the engine, also adding standard yaw, pitch and roll methods.
There is a mouse interaction now available with a MouseConstraint class to allow the user to drag a 3d element with the mouse which is great for gaming and interactive 3d physics scenes.
New class: MouseConstraint
There has been a new class to the Papervision3D plug-in called MouseConstraint and a new example to the Papervision3D examples folder. The class basically allows you to attach a world constraint to an object and simulate dragging.
The best update though is you can now use any of the major open source flash 3d engines as the renderer: Papervision 3D, Away3D or Sandy.
AS3 Flash 3D Physics Engines
Torque3D seems to have full featured browser surfaces that you can use in the 3d engine seamlessly, see the video below (at :38). This is amazing stuff.
Making games that integrate content from the web is especially required these days. It is a difficult thing to do within the 3d render because of all the plugins, styling etc that needs to be rendered on a 3d surface. Well Torque3D has a killer feature in that it supports entirely full features browser render on a 3d surface. So now you can integrate html content, flash video etc in your game easily.
You can play content in flash player content easily and have stripped down html but it is limited, you can play videos and have content in Unity3d but it is limited, even larger engines like Unreal 3 have difficulty handling flash and html content. If this is a good implementation Torque3D has a killer feature on their hands! Flash is commonly used as user interface elements and content within games but it can be challenging. This is pretty exciting if it works as advertised. Think of how cool all the little consoles, mini-games and controls in 3d games could be in flash easily.
See at :38 in the video…
Away3D was updated to Flash 10 earlier this month. Flooded with final semester, massive workload and all the conferences #swsx, #gdc, #mix09 etc I missed the announcement.
It is looking pretty sweet with this mustang demo showing off the update. Pixel bender has provided a performance update for effects that shows nicely here.
The above demo shows some of what is possible with the update: normalmapping with ambient, diffuse and correctly normalised specular shading, without the need for layers. As if that’s not enough, a further Pixel Bender shader is applied to the view to create a HDR (High Dynamic Range) effect on the highlights, something usually seen in much more 3d-rich console games. Special thanx go to Eddie Carbinfor donating an excellent normalmapped mustang model, and David Lenaerts for writing the HDR filter.
Airtight Interactive did a comparison a while back where FP10 rendering was faster against the olde version of Away3D, this update may change that will have to take a look. All away3d needs is a designer
Director 11.5 was quietly released last week at GDC with a few nice upgrades.
- The sound library is updated to Dolby surround 5.1.
- Director 11 now supports ByteArray and binary data handling.
- It also states support for Flash 9 swfs. Previously Director 11 did not work well/atall with AS3/Flash 9 swfs which made it nearly useless.
- Streaming support for audio and video with RTMP (red5, flash media server, etc)
- Updated video support
- Bitmap and audio filters for video
I still think Director is on decline unless they open up the development platform, lose Lingo and allow a real IDE to develop with. So frustrating being restrained to that IDE that is not very flexible and cumbersome to extend and code in when you compare it with cutting edge IDEs like Unity3D or open source flash IDEs like FlashDevelop. It has been completely removed from our workflow for some time due to new Flash 2.5D engines such as papervision 3d, away 3d and sandy or for more immersive hardware rendered 3d, unity3d.
| Adobe Director version comparison chart | |||
|---|---|---|---|
| Product features | Director 11.5 | Director 11 | Director MX 2004 |
| Support for 5.1 surround sound | Yes | No | No |
| Real-time audio mixing | Yes | No | No |
| Audio effects and DSP filters | Yes | No | No |
| H.264 MPEG-4, FLV, and F4V video support | Yes | No | No |
| Streaming support for audio and video with RTMP | Yes | No | No |
| Ability to apply audio filters on a video | Yes | No | No |
| Ability to apply bitmap filters on a video | Yes | No | No |
| Google SketchUp file import | Yes | No | No |
| Enhanced physics engine with support for dynamic concave rigid bodies | Yes | No | No |
| ByteArray datatype for binary data handling | Yes | No | No |
| Multiple undo/redo for text editors | Yes | No | No |
| Text rendering and performance optimization | Yes | No | No |
| Cross-domain policy support for Adobe Shockwave® Player | Yes | No | No |
| Mac OS X Leopard support | Yes | No | No |
| Unicode support | Yes | Yes | No |
| Microsoft DirectX 9 support | Yes | Yes | No |
| Advanced physics engine with included NVIDIA® PhysX™ support | Yes | Yes | No |
| JavaScript dictionary | Yes | Yes | No |
| Code snippets | Yes | Yes | No |
| Bitmap filters | Yes | Yes | No |
| Microsoft® Windows Vista® support | Yes | Yes | No |
| Support for Intel® based Macs | Yes | Yes | No |
| Cross-platform projector publishing | Yes | Yes | Yes |
| Web publishing with Adobe Shockwave Player | Yes | Yes | Yes |
| Support for more than 40 video, audio, and image file formats, including SWF | Yes | Yes | Yes |











