Here’s a quick mock up of a configurable Papervision Coverflow UI as part of my ongoing experiments.
From my initial attempt pretty much any layout is possible and the only real issue is that of z-index sorting (which i need to learn more about) making the animation appear to jump when planes intersect. A QuadrantRenderer does help a bit but i need a better solution…
UPDATE: I found a solution – do3d.useOwnContainer automagically assigns a new viewport layer for each object (in my case the planes) and tidies up the artifacts when objects collide/overlap during the animation. Plus it works with the Basic Renderer!
Try the Second Version to check the difference.
UPDATE 2: useOwnContainer wasn’t quite right (it was nasty when using filters – memory killer!) and still had some issues. After a lot of trial and error i found it better to use my own (non dynamic) viewport layers. Simply create a layer for each plane when my app starts up then when renderring change the index of each layer to match the distance between the camera and each plane.
Here is the Third Version – notice how the plane jumps in front of the previous one immediately when clicked. Previously it was placed in front only when the z depth was higher than the previous plane. Not sure if this looks exactly right but at least i’m now in the driving seat…
I added some filters to my planes as an experiment for the Latest Version Just a blur and color matrix in an attempt to add some depth without using PV3D lighting (although i did mess with the DepthShader Andy Zupko made – it’s good but just a bit too slow here). Not sure about my blur either but it does make the current selection stand out…
TODO: The only real issue i have now is related to resizing the swf. If i set rotation to 0 i can scale my app to any size and it will look exactly the same regardless of dimensions. However if i add in even a slight amount of rotation the spacing gets screwed. I tried using a ratio screenWidth/screenHeight * rotation (which made things a bit better but didn’t fix the problem) plus lots of tweaks wherby the center offset and z depth where biased based on rotation but as yet nothing significant that cures the problem.
p.s. Blink and you’ll miss it – please be aware i’ve been staring at this for days and the differences between the versions are very subtle
p.p.s. When resizing the app gets reset to default settings (my bad) – so if you want to compare how rotation affects the spacing at different dimensions make sure to have 2 different scaled versions open. I’ll fix this if i get time…