Featured Post

Thrift for Windows

I recently wanted to play around with Thrift, the serialization/communication protocol/ddl that was open sourced by Facebook which is quite similar to Google protocol buffers. While Thrift itself supports windows just fine, and there is even a runtime library for C#, the compiler is quite hard...

Read More

Isometric Deferred Shading

Posted by BernhardGlueck | Posted in graphics programming, ria, shaders, silverlight | Posted on 07-06-2009

Tags: , , ,

0

One idea I had for using pixel shaders in modern RIA technologies goes as follows.

Since we do not have real 3D support for now in either of those technologies ( I do not count Software 3D engines like Papervision since they simply are not up to the task of game 3D graphics ), what can we do with shaders and 2D graphics beyond simple filters ?

In an isometric tile engine which are quite popular for RIA game development, we could have for example a second sprite that encodes the relative distance to the camera ( aka depth or z-depth ) for each pixel in the tile.
Add a third sprite layer that stores the per pixel normal of the tile, and you can reconstruct the world space pixel position in a post processing shader ( similar to what deferred renderers are doing in 3D ) as well as get the normal vector. And now you can solve the whole lighting equation in any way you want in 3D even though there are only 2D assets used.

I have to play with the implementation details, but first results look really promising.

  • Share/Bookmark

RIA rant

Posted by BernhardGlueck | Posted in flash, graphics programming, ria, shaders, silverlight | Posted on 07-06-2009

Tags: , , ,

0

Recently a slew of new web “RIA” technologies have been brewing up a storm.

Adobe released Flash Player 10 with a quite capable JIT compiler and AS3 which
now actually can be called a real programming language.

Microsoft is hot on it’s heels with Silverlight 3.0 Beta, which I personally like much better
since it’s more of a developers technology gone design than the other way around.

Both technologies now use 3D hardware acceleration for their rendering, and both expose
a low level API for defining pixel shaders. Right now both implementations only use a
software implementation of the pixel shader pipeline, without using the GPU for what it was actually designed for. At least there is still hope that Microsoft might support GPU acceleration with the RTM of Silverlight 3.

Adobe cites concerns of platform compatibility for not using GPU shaders, but come on, capable hardware has been on the market since 2002 and even the most low end embedded GPUs in Laptops support it ( even Windows Vista and above need at least PS2.0 support for their Aero theme ).
How hard can it be to check if capable OpenGL or DirectX drivers are available and then using the native pixel shader capabilities ? The drivers have been quite stable for the last 5 years in that regard, and nobody prohibits you from falling back to software emulation if you deem the installed hardware not compatible enough.. Since they actually already go through OpenGL or DirectX for their rendering, there is not that much investment into developing a new rendering pipeline too.

Hopefully both vendors will soon integrate that particular feature, since I already have some very weird dreams about what we could do with it.

  • Share/Bookmark