Announcement

Collapse
No announcement yet.

Some research with implicit surfaces

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Some research with implicit surfaces

    Hi,

    I did some research and programming regarding implicit surfaces recently. I'm still in the "agorithm developing" phase but I thought I should show what I got so far. Perhaps someone has some good input for me.

    First of all I want to thank Vlado for his extraordinary support for developers. There's no other company I know where you can get this kind of support directly from the developers. The VRaySDK had a step learning curve but I'm feeling quite comfortable now.

    So let's come to the stuff:

    Let's take a polyobject:

    http://www.dimo3d.info/teapot.jpg

    Implicit surfaces or isosurfaces are defined by density fields and a threshold. those points in space that share the same density can be visualized as a surface. Blobbies are an excellent example of this. If you put a falloff density field on every vertex and add them you get a blob surface.
    By raymarching into this field you can directly raytrace this isosurface:


    http://www.dimo3d.info/teapot_blob.jpg

    This is already kind of cool because it renders blob surfaces with infinite precision with no memory consumption. However my current implemention is a little bit bruteforce. The processing time grows exponentially with the number of vertices. Not efficient for rendering 100.000 particles as a blobmesh. But it needs almost no memory for this and I did tests where I could render particle counts that didn't render with the max blobmesh anymore. It's very slow though.

    Ok, but what if we add a 3D texture to this density gradient? (I can pick any max 3D texture including DarkTree). We get this:



    http://www.dimo3d.info/teapot_texture.jpg

    Freaky, isn't it? Kind of 3D displacement with holes and stuff.

    Something like a coral reef:

    http://www.dimo3d.info/Corals.jpg


    Here's a small test animation:

    http://www.dimo3d.info/implicit.mov


    However it is not yet production ready. It's too slow for animations right now. In the movie you might notice the flickering around the edges. To get rid of this, you have to boost rendertimes very much.(Lowering the stepsize for the raymarching algorithm)

    I'm currently implementing a spatial subdivision scheme to speed things up, but this will take a while since that's a sparetime project at the moment.
    I'm also lacking a good name for this. At the moment it's called VraySphere because it started as a VRaySDK sample project for ray/sphere intersection (from Vlado).

    Best regards,

    Dieter
    --------
    visit my developer blog

  • #2
    Nice work, thanks for sharing

    looks like a very promising idea to follow, a similar track to scanline's 'implicit micro confinement' thing. volumetric modeling looks fun!
    Dave Buchhofer. // Vsaiwrk

    Comment


    • #3
      Wow.. good work !!
      looks great !

      Comment


      • #4
        Incredible!

        When can we get our hands on a beta??
        --------------------
        speedtree is evil

        Comment


        • #5
          I think that i remember Peter Watje writing a plugin for MAX that does exactly this sort of thing. Can't remember the name though....
          -----Dwayne D. Ellis-----

          Comment


          • #6
            id be very willing to test something like this out seeing as how i want to try my hand at an under water scene and there will be coral reef. this would be perfect for something like that. although possitioning plants on the reef might be difficult since this is a render time function right?

            ---------------------------------------------------
            MSN addresses are not for newbies or warez users to contact the pros and bug them with
            stupid questions the forum can answer.

            Comment


            • #7
              Hi,

              I didn't even know that Peter Watje worked on this. Excellent info. I already read through his source code. A lot of valueable info there.

              The main difference is that he generates a polygon mesh where I am directly raytracing the surface at rendertime. I can capture a lot more fine detail.
              However having a preview in the viewport would be great. But this is for the second phase when my rendering algorithm is fast and stable.

              Dieter
              --------
              visit my developer blog

              Comment


              • #8
                Great work Dieter,
                Could you keep me posted with the progree on this it would be a valuble tool to have.
                Chris Jackson
                Shiftmedia
                www.shiftmedia.sydney

                Comment


                • #9
                  yeah. the preview thing will be good refering to my comment about placing plants on the reef. however your totally right. get it stable 1st then worry about making it pretty later hehe

                  ---------------------------------------------------
                  MSN addresses are not for newbies or warez users to contact the pros and bug them with
                  stupid questions the forum can answer.

                  Comment


                  • #10
                    Looks really interesting. Hopefully we will see a beta soon

                    yeah, function before funtionality

                    Comment


                    • #11
                      just out of curiosity. how would you texture something like that? hehe

                      ---------------------------------------------------
                      MSN addresses are not for newbies or warez users to contact the pros and bug them with
                      stupid questions the forum can answer.

                      Comment


                      • #12
                        would definitly have to be procedural only...imagine trying to unwrap that sucka!!

                        hahah

                        Comment


                        • #13
                          Excellent, looks great.
                          Richard De Souza

                          www.themanoeuvre.com

                          Comment


                          • #14
                            Hi,
                            Procedurals and Camera Map texture Map works.


                            Dieter
                            --------
                            visit my developer blog

                            Comment


                            • #15
                              nice!!!!!!!!!!

                              now what was i gonna say...oooh yeah... gimme gimme gimme
                              hehehe

                              Comment

                              Working...
                              X