Silverlight 3: 3D Support, But Is This True 3D?

by Jon Davis 6. December 2008 13:49

Just a couple days after my repeat whine about Silverlight not having a rasterization API and 3D support I saw that Scott Guthrie announced that Silverlight 3 will offer "3D support and GPU hardware acceleration". I nearly crapped my pants when I read that. :)

What's not clear is whether 3D support will come via GPU hardware acceleration. I'm of the firm mindset that true 3D is OpenGL or Direct3D; anything else is fake. So if GPU hardware accleration is fully applied to the 3D support, it may be using OpenGL / D3D under the covers.

Otherwise, I'm just going to assume that the so-called GPU acceleration is intended to assist in video playback and vector graphics. And I only base that assumption on the fact that Adobe Flash "supports 3D" (has an API) but its hardware acceleration is limited to video playback and vector graphics. And I'm honestly not familiar with graphics acceleration on vector graphics, how that works, but given that they claim it, I believe it's feasible.

To be honest, I think it would be just about as bad if GPU acceleration was applied to 3D support but not to vector graphics.

Now on "rasterization", I over-use the word really, but all I wish for is two things: a mutable bitmap buffer, where we can plot pixels, and the ability to take "snapshots" of the vector brushes being displayed (i.e. myEllipsis.ToBitmap()) and export them to the same bitmap feature. This buffer should be reusable for textures on vector artwork as well as the coming 3D support. This is NOT an advanced component that would grow the framework, such a thing is EXTREMELY simple, particularly considering that Silverlight already supports images and manages bitmaps under the covers, it's just so heavily encapsulated that you're limited to URL maps and embedded files. I'm not asking for GDI+ functions! I just want to be able to retain a bitmap in memory and reuse it, and maybe be able to modify it by plotting pixels. There is no workaround for this; one could create his own bitmap class and write to a data stream but then Silverlight still can't use it (without persisting the data stream somewhere) because it's limited to URLs and embedded files!!

I'm starting to get a better picture of Microsoft in the Silverlight context lately. While I greatly respect Microsoft's tools and capacity to think brilliantly, as well as their enthusiast division(s) (XNA, Zune, Xbox, Games for Windows, etc), I think the fact that their enthuiasts division(s) are not very involved in the Silverlight product is seriously undermining the adoptability of Silverlight in competition with Flash. I acknowledge that there's not a lot of money to be made from it, but I at least consider it good marketing.

But on the enterprise business side, I truthfully cannot give Silverlight credit for meeting demand yet, despite the remarkable uses some have found of it (with some effort), because of the lack of high-level controls and APIs, although I fully respect and appreciate the fact that it is on track to meet demand. The new Controls Toolkit is great, but the controls as demonstrated in the samples, and the preexisting datagrid as demonstrated by normal use, all demonstrate that Silverlight has performance issues. Performance issues are of serious concern in business environments every bit as much as in enthusiast niches because it amounts to decreases in usability, which in turn amounts to turned off customers and ultimately lost profits. An example of this is the horrible scrolling performance issue, most seen in the datagrid, although I've come to realize that Silverlight's scrolling performance issues seem to have been improved somewhat since the last beta (when I stopped watching Silverlight because I was so turned off). Still, not improved enough. The Silverlight datagrid looks good until you touch it, and then makes your computer feel like something from the late 90s.

Actually, scrolling is only one example. It's user responsiveness on the whole; buttons have a similar problem. Actually, all the input objects have the problem. In general, while I don't question nor doubt Silverlight's capacity to look beautiful or to have very high FPS animations, etc., I think where it doesn't shine at all is in user input responsiveness. There are exceptions. Microsofts and Silverlight enthusiasts will always have some great demos lying around. But generally I've noticed a problem with user responsiveness, particularly when scrolling or dragging comes into play.

It's not a dealbreaker issue; not so bad that it's unusable. It's just bad enough to keep me from using Silverlight in everything I do. I prefer DHTML and its less-sexy appearance. Responsiveness is more important than appearance, and AJAX gets the job done in most cases. Silverlight meanwhile can fill in gaps where Javascript can't cut it, but then, so can Flash, and by the time you're already choosing to stick with HTML for the basics there's no compelling reason to use Silverlight except for the CLR and WMV support.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


C# | Silverlight

Add comment

(Will show your Gravatar icon)  

  Country flag

  • Comment
  • Preview


Powered by BlogEngine.NET
Theme by Mads Kristensen

About the author

Jon Davis (aka "stimpy77") has been a programmer, developer, and consultant for web and Windows software solutions professionally since 1997, with experience ranging from OS and hardware support to DHTML programming to IIS/ASP web apps to Java network programming to Visual Basic applications to C# desktop apps.
Software in all forms is also his sole hobby, whether playing PC games or tinkering with programming them. "I was playing Defender on the Commodore 64," he reminisces, "when I decided at the age of 12 or so that I want to be a computer programmer when I grow up."

Jon was previously employed as a senior .NET developer at a very well-known Internet services company whom you're more likely than not to have directly done business with. However, this blog and all of have no affiliation with, and are not representative of, his former employer in any way.

Contact Me 

Tag cloud


<<  May 2021  >>

View posts in large calendar