KRPANO THE MULTIRESOLUTION PANORAMA FLASH PLAYER
Probably the most performing flash panorama player on the market.
by Marco Trezzini
VRMAG had an interesting conversation with Klaus, the developer of krpano, probably the most performing flash panorama player on the market.
He kept his answers short in order to not take away too much time from the coding of the new version ;-)
Please, can you tell us about your general background?
Hello, I'm 27 years old, live in Austria and work there as a software-developer for a small software company.
I'm working there on server/data-processing systems, but unfortunately nothing about graphics/panoramas.
Panoramas are just a hobby for me at the moment. In school I learned programming and accounting.
I always was interested in computer graphics.
With around 16-17 years I coded my first 3d engine.
When and why did you get involved in the panoramic imaging industry/community?
Can you tell us about the history of krpano?
It started with the making of a homepage for my father's vineyard (this was some years ago).
I wanted to display panoramas on it.
I think there was only the java-ptviewer at this time to do that.
But I wanted it fullscreen and the ptviewer was too slow for that.
So I tried to make my own Java-Panorama-Viewer.
I coded it like an old 3d-texture-mapping-engine, with all performance tricks that could be used on such.
And it worked well see it here:
But unfortunately Java had a limit of 64MB Memory per default.
With that large panoramas weren't possible.
And the other problem with Java was - nobody had it installed, everywhere I want do demonstrate my viewer I had to install Java first.
That was bad!
So I searched for alternatives and found the new Adobe Flash Player 9.
It had no memory limits, everybody has it installed, but unfortunately it was not as fast as Java.
It wasn't possible to render panoramas pixel per pixel as in Java.
In Flash the 3d rendering must be simulated by drawing many small 2d skewed and rotated images.
So the quality wasn't as good as in Java, but there were other advantages -
Flash starts very quick, everybody had it installed, and it was easy to develop too.
Ok, now with Flash, I thought I can display really large panoramas (like 20000x10000 pixel or so).
It usually was possible but therefore the viewer needed around 800MB working memory (4byte/pixel)!
That was not practical (and reading 800MB every frame is slow too!).
So the idea to solve this was to load only the parts which are currently needed for display,
and to load these parts in the resolution that fits the current views best.
So loading was fast and not so much memory is needed. It was not so easy to implement all this.
I also developed a long time on the internal scripting system which allow virtual tours and on the user interface.
It's still not perfect and finished, but I thought it's good enough now for a first release.
What are krpano most important features?
I think the multiresolution-images-support is very special, with that,
it was possible to view 3D gigapixel panoramas only with Flash.
Have a look at this example of around 300 megapixel here:
krpano Hafen Panorama
The following 2 samples are built upon 2 gigapixel panos by XRez
The next very special feature is the "fisheye"-effect, I think.
It allows a more realistic viewing of the panoramas.
At large field of view the distortion of the 3d-view is often very unnatural.
Mathematically it is correct, but often it looks strange or funny.
And with a fisheye-distortion the look is much more natural.
The fisheye-effect is fine adjustable, from nothing up to a 180° fisheye image.
Here some pictures to compare:
Normal without fisheye-distortion: (have a look at the heads of the people)
And now with a little fisheye-distortion: (look at the proportion of the heads)
Or an extreme example - the 180° full fisheye view:
You can view it live here:
krpano 3D Projections
The great panorama in the example is from Ayrton Camargo
I think other important features are the hotspot and scripting features,
with which virtual tours with smooth zooming/blending effects are possible.
You can see an example here:
krpano Virtual Tour Wine-Cellar
There are many flash players out there, thus yours seem to have much better performance, can u tell us more about?
As I said I was always interested in computer graphics and there are many things about graphics performance:
precalculating, reducing redundancy, draw/calculate only parts that are visible and so on.
This and some special flash/as3 quirks which had to be respected, that's all.
I think it's now near to the limit of flash, but I think it still can be done more and better.
I also have ideas for making the quality better.
(And maybe this can help too - I coded the most time on an old and very slow 1.4 GHz pc-laptop,
on that everything is slow ;-) so working on performance is always necessary).
What has been/or is today the response of the industry/community?
I got an offer for the source code but I can't talk more about it at the moment.
And I got many requests for some easy GUI-tools for panorama/virtual tour creation.
What are the future developments we can expect?
I hope a lot! :-) More settings, more features, more plugins, the support for QTVR files,
embedded images, better quality/performance, more documentation and of course some GUI tools
to make the creation/editing of the flash panoramas easier.
There is still much work. I spend the most of my spare-time with it.
And maybe in some years also a pano-stitcher from me (all my panos are stitched/blended with my own stitcher!)