Perf: Viewing thousands of images in Silverlight 3 on a 3D Wall
- by Bob Holland
I currently work on a very cool Silverlight app that displays photos in a 3D wall space like the Wall3D demo that is thrown in with Blend 3.
The problem I am currently facing is performance. The app works like this:
As you scroll right or left the 3d photo wall rotates
As each movement is made, the next column of photos are downloaded, decoded into a BitmapImage and thrown into a 3D Wall Node.
As you can imagine users (if you let them) will want to flip through the photos really quickly, but the problem I have is I cannot display the photos quick enough.
In most cases it's a beautiful app that works really well, but when an album contains over 300 photos, you can imagine the sort of memory taken up by all the BitmapImage classes and how moving the slider can jump from photo 20 to photo 120 in a second.
Of course we have algorithms in place to not download every photo in between, but I still can't work out a fast way to get the photos displayed.
It may be a case that we need to throw away the 'great for show' 3D wall and go to a flat DeepZoom like wall like the Playboy archive one that Vertigo did.
Still not sure, let me know your thoughts.
P.S. We are using Kit3D for all the 3D work, it's using PerspectiveCamera, Model3DGroup, ModelVisual3D, RotateTransform3D & TranslateTransform3D.
Cheers,
Bob.