Archive for the ‘RENDERING’ Category
WebSockets and many other great features are now available across the iOS devices that are updated to iOS 4.2.
You can test your devices for WebSocket support and I just tested iPad and iPhone/iPods on iOS 4.2 and it is a go.
The update also adds some other excellent Safari browser features including:
- As mentioned, WebSocket support
- Accelerometer support
- Improved SVG and Canvas rendering
- Better Ajax
The new Safari on iOS 4.2 makes the iOS platform the current best html5 mobile solution for interactive apps and games in the browser. This should add some fun in terms of interactive web, games and better web experiences for iOS users.
- More on new features in iOS 4.2 Safari
- Test your browser for WebSockets
We hope they add in WebGL support soon, there was mention of WebGLRenderingContext but not supported in browser yet.
Besides recently becoming the most popular configuration in the entire iPod lineup, the iPod Touch “has become the most popular portable game player in the world,” Jobs chimed. “The iPod Touch outsells Nintendo and Sony portable game players combined. It has over 50 percent market share for both the U.S. and worldwide.”
- DS = 125m
- iOS devices = 120m
- PSP = 62m
- DS = 718m games sold
- PSP = 252m
- iOS games = 1.5B games and entertainment
However, as Mike Capps commented to Gamasutra in our interview immediately following the event, “Right now, I can display from my iPad to my Apple TV on a big screen TV. How far away are we from ,’That’s my game console, and it’s displaying wirelessly to my television set?’ It’s not far away.”…What will that mean? What form will it take? How soon will it come? All unanswerable. But Sony, Nintendo, and even Microsoft are all officially on notice as of today.
Do consoles anchored to a TV suddenly seem like the old way?
To the argument that the Appstore is full of bad games, it is, but it is also the secret to their success. Apple built a platform and let indies in. Apple was very critisized about their approval process but Playstation, XBOX, Nintendo Wii, Nintendo DS, Sony PSP all have more harsh approval processes and dont’ even let indies begin developing until they approve. The result is higher quality games on the latter devices however it is the same problem the web brought.
I think that was Nintendo and Sony’s downfall in that they didn’t jump on the downloadable store AND allow indies in. There are lots of fart apps that come with allowing almost everything but you also get stuff like Angry Birds, Monster Dash, Real Racing, 2XL, Gameloft etc. I’d rather let everything in and let the charts decide what is best rather than it be a closed market to indies from even trying. But that comes with lower quality games for the most part except those standouts that might have been rejected on Nintendo or Sony platforms. 99% of the Appstore is crap but 1% is awesome, that 1% might be bigger than the quality games that make it to the PSP or DS.
Chromium is moving to GPU hardware accelerate rendering all types of web content as much as possibly with their latest efforts.
For some time now, there’s been a lot of work going on to overhaul Chromium’s graphics system. New APIs and markup like WebGL and 3D CSS transforms are a major motivation for this work, but it also lets Chromium begin to take advantage of the GPU to speed up its entire drawing model, including many common 2D operations such as compositing and image scaling. As a lot of that work has been landing in tip-of-tree Chromium lately, we figured it was time for a primer.
The primer they are looking at is not just rendering the content made in WebGL, CSS3 3d transformations and more but the entire final pass of the output. This leads to some very interesting years ahead in browsers. With Chromium, IE9, Firefox and Safari all now with aspects of hardware rendering and acceleration via the GPU, anyone not doing GPU acceleration is seemingly behind the curve that seemed to start in 2007ish to a culmination of today’s latest browsers.
After these layers are rendered, there’s still a crucial last step to blend them all onto a single page as quickly as possible. Performing this last step on the CPU would have erased most of the performance gains achieved by accelerating individual layers, so Chromium now composites layers on the GPU when run with the –enable-accelerated-compositing flag.
Web content will get really interesting over the next couple years. Even basic computers now have a GPU and bottom of 32MB video memory. Why aren’t we using those GPUs as much as possible for web content and web games. The time of software rendering might be coming to an end now that processors seem to have topped out and the bottom level computer is capable of handling a decent amount of video memory. It will be easier to justify useful graphics acceleration with a better user experience when we can take advantage of all the computer/device has to offer.
Here’s a look at another interesting flash player implementation by Joa Ebert using Java with OpenGL rendering support. It is at an early stage but has the right idea in hardware rendering to OpenGL which is easily cross platform and mobile capable with speed.
This project is pretty new but there is work to make it web browser capable either in a java applet or a plugin for IE/FF/WebKit/etc but there are also others that are out there using alternative renderers. Most of these are in early development with varying support and do not currently compare to Adobe’s Flash Player versions. However the hardware rendering ones like JITB may beat it fairly quickly once all the other features are added. Complete OpenGL based renderers like Unity or WebGL are fast and can run pretty heavy rendering because of hardware acceleration for all drawing and native support.
Other Flash Player implementations:
- AS3 script via LLVM
- Written in C++ (very portable for native)
- OpenGL accelerated rendering
- limited support
- Firefox plugin
- Early development
- flash 7-9 support
Flash Players that use OpenGL as the renderer are nice because cross platform support is easier. The reason why OpenGL is a great idea is it is so cross platform on desktop and on mobile, it is also coming soon in WebGL for the browser hopefully.
Versions of OpenGL and support
- OpenGL ES
- OpenGL ES 1.1 = OpenGL 1.5 and lower (fixed function)
- iOS devices 3rd gen and lessx
- OpenGL ES 2.0 = OpenGL 2+ (current version 4.1 – shader capable).
- iPhone (3GS or later), iPod Touch (3rd generation and later) and iPad
- Android 2.2+
- OpenGL ES 1.1 = OpenGL 1.5 and lower (fixed function)
There is still a clear open field for an open source player to match something like Moonlight for Silverlight or hardware rendered canvas. WebGL would be great to have in time if it gets support but it is also nice to have a compiled language in the content that works in the player faster than scripting but with the ease of scripting. Plugins are still very relevant if they can address that.
Wow. IE9 just set it in motion.
Canvas 2D is now really on the horizon for all browsers. IE9 preview now supports the <canvas> tag and all canvas element APIs and most Canvas 2D context APIs and attributes!
- In the latest Platform Preview we support all Canvas element APIs and most Canvas 2D Context APIs and attributes.
Features Partially Implemented
- The latest Platform Preview does not include support for the globalCompositeOperation attribute.
- DOM Exceptions
- The latest Platform Preview does not include support for Canvas 2D Context DOM Exceptions.
- The latest Platform Preview does not include support for the drawFocusRing() Focus management API.
This is pretty amazing even though it has been hinted at by other news (previously from AMD). Why should we care what Internet Explorer is up to? Well the dream of standards across web browsers seems to be materializing for html5 and more importantly, canvas 2d.
Even with Silverlight Microsoft has decided to join the party and upgrade the web on some great standards to build even more innovative platforms on top of. Some may see this as a death knell for Silverlight, Flash etc but I do not see it that way. I see <canvas> as a competing interactive technology but many times technologies bind together for a better experience, they also drive one another to innovate.
Canvas, Flash, Silverlight are all for the most part still software/CPU accelerated. The question is who will start the hardware acceleration of canvas and competing technologies even further to bring us closer to OpenGL ES/WebGL in the browser?
Ars Technica states that IE9 will have hardware accelerated canvas in addition to SVG but that doesn’t seem to be officially stated anywhere by Microsoft yet that I can find. AMD has hinted at it and previous news about SVG being hardware acclerated. Time will tell and it will be a HUGE boost to the browsers that do, of course we need all of them to do it to be worthwhile for mainstream content.
Ars on the hardware accelerated canvas support:
What does come as a surprise is canvas support. Microsoft has been promoting Internet Explorer 9′s support of SVG, which provides vector graphics capabilities within the Web browser, but thus far has kept quiet when asked if it would support the canvas bitmap graphics specification. Not only is canvas being supported, it is also being hardware accelerated, continuing Microsoft’s efforts to give Web applications the ability to exploit the extensive hardware capabilities of modern PCs.
Another golden ray of hope is ES5 support in IE9. Again Wow!
Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet
Wide industry Support from Major Browser Vendors including Google, Mozilla and Opera; Specification will be Available Royalty-free to all Developers
I think that Google O3D and OpenGL ES success on iPhone games probably combined to get this in motion. OpenGL and very basic video cards are now standard in most machines out there. Unity3D actually published hardware statistics on casual gamers (web-based games) ever so kindly and shows that even though there are some older Intel cards out there, for the most part machines nowadays have a video card capable of supporting at least low-poly 3d and hardware supported 2d rendering in real-time for games, user interfaces and more.
This is exciting news, it appears the movement of the web gaming market is getting much more capable and is accelerating the innovation of hardware accelerating the web.
Demos of Haxe Sandy:
- Haxe Sandy
- Haxe Sandy Demos
- Haxe Sandy Tutorials by Matthew Casperson
- Haxe Sandy Download
V8-GL from the author states:
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.
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.
Augmented Reality and the base of the original ARToolkit has taken the flash world by storm with the FLARToolkit and really the speed updates of the AVM2 in Flash9 and Flash10 to be able to pull off the OpenCV calculations needed on the bitmap data from each frame of a camera. It has been around quite some time but now web based engines such as Flash and now Processing can take advantage of this awesome technology.
The Simple ARToolKit Library for Processing (PC) is just a basic port of single marker AR support and it currently only runs on windows.
Den Ivanov did some cool experiments with this kit but adding the capability to do multiple markers. In his videos the processing runtime seems to process the render pretty quickly. It seems that most Flash AR is around like 5-10 frames per second for the detection.