Following Dreaming in Flash‘s interview with Rob Bateman, from Away3d, Daily interviewed Ralph Hauwert, from unitzeroone and one of the core team members for Papervision3d, on his thoughts on the release of Flash 10 and how it will impact Papervision3d.
Daily Papervision: Can you tell us a little bit on your role on PV3D team?
Ralph Hauwert: I’m part of the core team. This is the central development team of the papervision3d library. In this team I fill in a role working on the render engine and architecture, optimisation and core architecture. A lot my time has been going into the 2.0 version, which we are hoping to finalize soon.
Daily: Knowing that you’ve been questioned by Adobe on account of PV3D, what features did you ask for, and which ones made it?
Ralph: Adobe contacted us a long while back, when Papervision3D was starting to gain it’s popularity. I specifically was working on shaders then and was encountering some weird things with the drawing API; my wish then was to get more control over the drawing API; it looks like we are getting that! Furthermore, native 3d was a discussion. Native doesn’t mean hardware though. We’d all love to be able to access that power, but it would most likely hurt the ubiquity of the player….I’d rather have more machines to deploy too in that case. They hinted at Hydra (Pixel Bender), in those days….we’re all very excited at what this feature set will offer us 3D engine developers. All engines will benefit from this and I’m looking forward to see what other engines like Alternativa, Sandy, Away and Five will bring us in the future.
Daily: What is for you personally the coolest new feature?
Ralph: Pixel Bender, by far. Although it will be running on the CPU, the sheer speed of it, and the API to it will unlock a massive amount of processing power to Flash. The language is much lower level, which is a good thing…with the ability to pass it BitmapData, Vectors and ByteArrays we can unleash that computational power upon other data then just imagery quite easily. I’m thinking vertex shaders, sound processing, physics sims….etc. The possibilities are very broad. In my initial tests with Pixel Bender in Flash 10, I saw several algorithms gaining a tenfold speed increase….
Daily: What’s the most relevant feature for Papervision3D?
Ralph: The new drawing API will probably be the hugest thing, together with the built in 3D features and classes. Pixel Bender will allow us nice per-pixel shading, but the raw speed will come from not having to (dynamically) tessellate a surface for both correct sorting and perspective texture correction. The drawing API optimisations will enable us to do the actual bottleneck right now (the drawing to screen, not the calculations), to shift the balance again and do more things on the engine side. Together with being able to have Pixel Bender process things, this will be huge. It’ll most likely change the landscape of 3D on the web.
Daily: What can we expect,in terms of performance and improvements, of the next Papervision3D version?
Ralph: Bigger, better, faster, stronger ? I haven’t completed testing yet, but hope to release a nice demo soon. If it’s actually going to be a new version…that’s another thing.
Daily: Do you have a planned schedule for start working on PV3D 3.0 as soon as FP10 releases?
Ralph: The idea would be something I call “retargetable rendering”. So, the thing would be that using Flash 10 features can be a switch, like using 9 features. The biggest decision we as a team need to make here is how to solve the fact that Flash 10 now carries it’s own classes for vertices, matrices and such….which will probably become a separate branch, or “retargetable math”, although that one doesn’t seem to be very feasible.
Daily: Will PV3D still render everything to a bitmap, or will we have real text and buttons?
Ralph: It’s important to note that the Flash Player always converts everything to bitmap to be able to display it on the screen. It’s a matter of where you have that conversion done. With us, the materials handle that, so it’s quite early on in the pipeline…but then again, we would be able to adjust for that. On the other side it’s good to know that we’d now also be able to do something with Vector shapes, like Five3D does now…but then more native to the Flash API.
Daily: What do you make of the new Pixel Bender, and how does it affect Papervision3D?
Ralph: Pixel Bender will enable us to do per pixel effect but also very raw power calculations on Vectors…in a more traditional 3D programming environment you’d call Pixel Bender a Pixel Shader or Fragment Shader. But because of it’s capabilities to handle other data, we’ll be able to use it as a Vertex Shader too…so more math on dynamic geometries. Apart from that again, we’ll see a huge rise in visual effects where Pixel Bender can be used for pre- and post-processing of visuals…I’m really exited about what it can do, and what it’ll have to offer to the Flash Community.