That’s right! Papervision3D now has integrated QuadTree support. For those of you who aren’t sure what this means – it is a technique of subdividing the screen into smaller and smaller regions to resolve potential conflicts between triangles. This is one solution to the common error found in the Painter’s algorithm that Papervision, (and all Flash3D engines) uses.
Papervision3D isn’t the first engine to incorporate QuadTrees into 3D Flash – and this is actually a port from Away3D. Those guys did a phenomenal job at implementing QuadTrees into their engine – and after scouring the math and structure, very few changes were actually made to it – mostly just some big changes to get it working in Papervision, and a few extra features to help you out. Be sure to give the Away team huge props for their work.
So to start using it, you will need to update your SVN, and check out the new QuadrantRenderEngine class. For some demos and a walkthrough on how to use it, as well as some of the nuances of the QuadTree, check out my post, Using QuadTrees In Papervision3D.
In terms of what this means for the engine, it is a good step forward for Papervision3D. Not only does it now give users 1 more option for handling z-fighting – it also setup the engine for some cool new features that will be coming out soon, including BSP and 2D clipping. In addition, it got me going through the engine, and found some things that needed to be cleaned up. All in all – it only means great things for the community.
Enjoy!

October 14, 2008 at 7:09 am |
great News… thanks Andy
October 14, 2008 at 8:24 am |
nice one andy! keep up the good work..
October 14, 2008 at 11:18 am |
Wow! :-O The best news in a long time
But, how does this new render engine perform against the basic renderer?
October 14, 2008 at 12:41 pm |
I checked out the latest build from SVN. It has a CS4 folder, with some Shader Classes. I tried searching through but i didn’t find any .pbk files. (shader bytecode). Are you guys planning to do the Gourad, and Phong shading through shaders in flash 10, anytime soon?
October 14, 2008 at 2:17 pm |
nice,
by the way, thx to away team!
October 14, 2008 at 7:18 pm |
[...] you haven’t seen it yet, Andy Zupko just released QuadTree for Papervision3D! He also released a more indepth look at using the new features on his blog. A big huge thanks to [...]
October 15, 2008 at 5:05 pm |
Hey guys, Quad Tree is great and is solving a lot of problems, however it seems to disable interactive events on 3d objects, possibly due to the splitting of the views for detail. It could also be that the rectangled views are overlaying the objects underneath, though this seems unlikely.
What are your solutions? We’ve tried a few different approaches only to come out frustrated.
October 15, 2008 at 7:10 pm |
[...] extra features to help you out. Be sure to give the Away team huge props for their work.” Read more addthis.com « Tweener: Bezier Curve [...]
October 15, 2008 at 10:26 pm |
it’s just what i’ve been waiting for… bravo!
October 16, 2008 at 12:19 pm |
[...] is not an option. Just keep pushing and making the product better. The latest installment is quadtree support. More about it here from John Grden’s blog. Quadtrees are an important data structure (named [...]
October 17, 2008 at 3:22 pm |
[...] > Papervision QuadTree Support « Papervision3D [...]
October 17, 2008 at 4:58 pm |
Hmm, I haven’t seen any comments about explointing the new features in flash 10. It should really speed up papervision… what’s the timeline for this, if any?
October 17, 2008 at 9:31 pm |
looks promising
October 20, 2008 at 8:23 am |
Not all engines use Painters, just for the record. I was thinking about quadtree for my engine but decided not to do it and did for BSP. Anyway its interesting to see how this algorithm performs in flash.
Nice work.
Jimmy, except for drawing and native 3D classes (some of them really poor, i mean degrees in matrix rotations WTF) there isn’t much that F10 brings to the 3D engines, F10 just brings intuitive 2.5D for most folks that arent deep into math
Then there are Shades which is a chapter itself, unfortunately they are designed mainly for 2D implementations. No direct vertex/pixel lookup without binding, no support for UVT in drawTriangles when using shaderFill etc. Anyway i am sure there will be some nice effects done with shaders but its not as major step as some of us expected, not to mention when someone doesn’t have HW the shader code will run really really slow
October 20, 2008 at 9:45 pm |
[...] Papervision3Dのブログに紹介されていたQuadTreeを試してみました。QuadTreeを試用することで衝突部分のポリゴン欠けが回避できる新機能です。デモではステージをクリックすることでレンダリングエンジンの切り替え比較ができます。 [...]
October 21, 2008 at 6:18 pm |
This is great news!!!!!
However i’ve found a bug rendering doubleSided materials. It appears to flip each polygon texture when the material is backfaced.
October 23, 2008 at 1:18 pm |
@Andre – Can you send some code to reproduce the problem? The problem isn’t showing up for me.
October 23, 2008 at 3:33 pm |
[...] QuadTree support with PaperVison3D resolve cross polygon issues. This demo can switch using render engine, these are QuadrantRenderEngine and BasicRenderEngine, by clicking stage. [...]
October 28, 2008 at 12:19 pm |
I have the same problem as André Anaya. Rendering of doubleSided materials (try bitmap material to see that) is not working as it needs.
November 2, 2008 at 3:50 am |
Excuse me, but one of your comments in this blog really upset me…
You said the all Flash3D engines use the painters algorithm. This is a false fact, or if true, will be falsified very soon. I just need to find a website and finish my 3d engine up, and the world will see perfect z-sorting in Flash for the first time.
Please don’t make assumptions…it’s not a big thing, but it’s just something that ticks me off…
Very nice work on the quad trees! I like to see cool work arounds!
November 2, 2008 at 3:02 pm |
Thank you Zupko for this great amelioration, after using it it’s difficult to get back to the Basic render.
However, it seems that QuadrantRenderEngine doesn’t support the layers and the effects linked to them (filters, BlendMode…). I don’t know if that issue was risen yet and if solutions were given. What about it?
November 3, 2008 at 1:19 pm |
Why don’t you use an octree instead of a quadtree?
November 6, 2008 at 12:59 pm |
P.Svilans:
But you are free to do that, afterall i am up for anything new in Flash.
It isnt true, and you are right not all engines use Painters, for example Agile3D can use BSP as well as modified painters, Alternativa3D always use BSP, Away3D have other options for some time as well… And i am sure there are other engines out there that i am not aware of which may use other algorithms as well. However perfect Z-sorting would mean HW supported Z-buffer otherwise it will be always complex to calculate for some type of scenes and scenarios. I did try pixel perfect Z-buffer in Flash and believe me its slow
Joa Elbert:
I guess quadtrees are not as complex and heavy to include and also faster than octrees so that would be the reason
November 9, 2008 at 5:59 pm |
Joa Ebert, it is subdividing the 2D screen that is receiving the rendering, not 3D space, hence why it is a quad tree.
March 16, 2009 at 6:52 pm |
quadtree is nice Thank you Zupko very much,but I’m not sure about other guy have some problem same me. when I use quadtree render DAE file (model),I don’t know why memory will up .It look like kill memory,but when I use Basic render don’t have this problem . I like quadtree because my model is look nice but I can’t fix about this problem.I can’t open ‘swf’ more than five minute memory will full.If don’t use DAE I think don’t have problem.
help me plz.
thank you.
October 12, 2009 at 1:26 pm |
Nowadays, Posting examples are very rare in this site.
last known example posted a year ago.
Code Gurus are requested to share their experiments.
-Papervision fan.
November 28, 2009 at 12:38 am |
[...] The QuadrantRenderEngine use a technique of subdividing the screen into smaller and smaller regions to resolve potential conflicts between triangles. http://blog.papervision3d.org/2008/10/14/papervision-quadtree-support/ [...]
March 18, 2010 at 2:58 pm |
Hey,
The QuadrantRenderEngine solved my Z-solving problem. However it is very slow. Is there a way to speed it up a little????
Thanks,
Martijn
June 15, 2010 at 3:46 am |
I don’t know why memory will up .It look like kill memory,but when I use Basic render don’t have this problem . I like quadtree because my model is look nice but I can’t fix about this problem.I can’t open ‘swf’ more than five minute memory will full.If don’t use DAE I think don’t have problem.
======================
Support for Technology