scr2xt3.pngKai Kostack, developer of the awesome Demolition script, is at it again…

During the initial development stages, Kai writes:

I had another strange idea. Now it's the implementation of micropolygons via python. It's probably the worst implementation of micropolygons ever made, because it's so slow and needs unbelievable amounts of memory but at least it works.

basic.jpg

11t7qzb.gif111sa5h.gif2psentx.gif

Further developments

I did some optimizations for motion blur.

m01lrsj5.gif

Check this example mapped with depth images:

suzannelrdk5.gif

I just put suzanne there, produced a depth map straight from the z-buffer and then I applied the displacement modifier to it. To be exact two of them because I used two different uv-layers, each for every size. I used this image:

suzannerw8.png

Another example

qdunevergleichrr8.png

Render time: 6 minutes for 12,000,000 micropolygons

Not bad for a python script.

First Release (the code has been ported to C and integrated into a test build as a modifier)

This is the first test build (for Windows) and there are a still a few known issues left to solve:

  • There is no motion blur correction and optimization so far. The modifier is calculated for each subframe for regular motion blur and vector blur won't work at all so far.
  • When rendering the modifier is always calculated three times per frame, even when vector blur or speed vectors are disabled. i don't know why blender does this, it's strange.
  • In the viewport on time changes the animated camera position and rotation is somehow always one frame behind. i don't think the modifier is the reason for this, G.scene->camera->obmat simply returns old values.
  • And some for the end-user invisible hacks were needed to bypass some strange behavior of a meshtool function. I need to talk to some blenderdev about this.

It's slow but it should work.

Download it from graphicall.org

I've created also a patch in case you want to build for your own platform. There is lots of old code in there but I'll clean it up later when the problems are solved.

For more details and to keep track of development, visit the discussion thread. 



Related Posts


Related posts are selected automatically based on their content.


23 Responses to “Adaptive Subdivision Modifier (in development)”  

  1. 1 madman Edit Link

    Great!
    Good work!

    I waiting for this

  2. 2 Jarod Edit Link

    very cool stuff!

  3. 3 3sie 3wiel Edit Link

    Berry berry cool mun!

  4. 4 LoMac Edit Link

    Interesting.

  5. 5 mike pan Edit Link

    Sweet, this patch should speed up large tessellated ocean surfaces significantly.

  6. 6 Marcus Edit Link

    I'm not sure if I got the concept of this. What exactly does it, why adaptive? Can somebody explain to me, please?

  7. 7 LoMac Edit Link

    I guess it adds more resolution as needed. like if you;re far away it doesn't need so much then as you get closer it increases the resolution of the mesh.
    I could be totally wrong.

  8. 8 AniCator Edit Link

    What the! That is really cool for big detailed scenes! Maybe you should add a subtractive subsurface function to it too.

  9. 9 TX_RX Edit Link

    Now that's an amazing feature! Nice one Kai! I bow to your super skills with Python, man, someone like him will wind up being snapped up by sidefx or autodesk the rate he's producing these great scripts!

  10. 10 wayne Edit Link

    is adaptive subdivision actually the same thing as micro-polygon?

    how does this specific patch relate to the micro-poly work that was planned for peach?
    http://users.pandora.be/blendix/peach_development.pdf

  11. 11 Kernon Edit Link

    Sorry folks, I failed to include a link to the discussion thread. It's been added to the article.

  12. 12 wayne Edit Link

    what would be really interesting is magically combining this with the sculpt tools….
    kinda similair to zbrush3's HD sculpting

    maybe they can do that with project Durian…

  13. 13 yokljo Edit Link

    ooh, fractal suzanne

  14. 14 Schnappi Edit Link

    damn, that sounds like a typical LoD implementation for games.
    Im not sure if it is useful at the end for animation projects but still it shows how powerful blender really is. :)

  15. 15 Kukanani Edit Link

    Interesting.

  16. 16 roofoo Edit Link

    @Schnappi: Actually it's the opposite of LOD. LOD reduces poly count as objects get further from the camera. This takes a mesh and adds more detail to the mesh when it gets close to the camera. Big difference.

  17. 17 panzi Edit Link

    Awesome!
    For me this is mathemagic.

  18. 18 Master Hoshi Edit Link

    A LOD modifier would be very useful since you could actively decimate. Would probably be slow though.

  19. 19 Ataru Edit Link

    Whew, that's amazing! In theory I like this idea even better than the demolition script. Keep up the good work, Mr. Kostack! I'm downloading it! ;-)

  20. 20 Wahooney Edit Link

    Very, very impressive :D

    Wants it!

  21. 21 mrmowgli Edit Link

    I like i, sort of like a dynamic LOD? Why not just use a multires and swap out which one is rendered based on distance from the camera?

    Also, how about making it available as a Node or letting Weight Paint modify how many polygons are created on a mesh?

    mrmowgli

  22. 22 ygs Edit Link

    I hope this will be available for SCULPT MODE TOO !

    This would be VERY HELPFUL!

    Any hope ?

  23. 23 nowherebrain Edit Link

    Well "adaptive" means that it will tessellate where and how you define…could be based on distance, weight paint, edge sharpness, ipo, or any combination..this is my guess. This is how it "should" work….I've not used it though. In any case this is some very nifty stuff…"great work" is a sore understatement here….especially if it was coded by one person…"WOW" is my opinion..getting this to a dll will drastically improve it's speed too.
    One question, is it UV compatible….does it preserve UV's?

Tip: register on gravatar.com to show your own avatar with your comments instead of

Leave a Reply