I’ve been using Papervision 2.0 for several months now, and while I’ve been able to get it to do most of what I want it to, it has been a tedious journey. If I were to do this project over again, I’m not sure I would choose Papervision, unless they make some improvements.
I’ve put together a short wish list of things I’d like to see done to Papervision:
1. Documentation, Documentation, Documentation!
The ASDocs for Papervision are some of the worst I’ve ever seen. There is virtually no useful information there. While there are many tutorials on the web for various functions, a responsive mailing list (firstname.lastname@example.org), and a good book (Papervision3D Essentials by Paul Tondeur and Jeff Winder), the ASDocs really need to be maintained for people that want to do anything complicated.
2. Fix Z-Sorting Performance and Functionality.
I’ve been working on a room planner application where users can dynamically add products to a room, and z-sorting has been a bugaboo. I’ve been forced to use the QuadrantRenderEngine, which is a CPU hog and also disables the use of filters (like a ‘glow’ around a selected object). I’ve had to optimize this by turning rendering off when not needed and selectively using the QuadrantRenderEngine (by setting testQuad=false on DisplayObject3Ds). This renderer needs some attention to improve performance.
3. How Do I Create a Collada Object?
Should I use DAE, SkecthupCollada or the Collada class for my Collada objects (answer: DAE)? Why are there 3 classes where there should only be one? Enough said.
4. Add Height, Width and Depth to All DisplayObject3D Classes.
This seems like a no-brainer, but sadly this info is missing, even for the Cube class. I added it myself for the project I am working on. Note you can dig out the axis aligned bounding box (aabb) in the geometry property of some DisplayObject3D classes, but unfortunately not all, and not DAE (Collada) objects.
5. Can We Have a Class to Create 3D Objects from a Vertex Array, Please?
Sometimes I would just like to create a 3D object from a set of vertices. I haven’t found an easy way to do that with Papervision. It would be nice if there was a class that supported the creation of a 3D object from a vertex array passed in the constructor.
Well, that’s my list for now. Hopefully some of the Papervision developers will read this and consider these enhancements and fixes. If you have any of your own, please feel free to tag them on in a comment.