Unlimited Clay in the wild!

Unlimited cay GUI

Hi all 🙂

Finally the first public version of Unlimited Clay is out! I have committed it to my experimental branch and also I have released a patch that hopefully will be of the interest of the GSOC sculpting improvements project 🙂

here’s the patch

and here’s the branch:

https://svn.blender.org/svnroot/bf-blender/branches/branch-farsthary/

It have several design decisions that should be discussed later like the exposing the mesh tools (though I think is rigth 😉 )
A warning: it dosen’t work with multires currently, seems that multires don’t initialize few fields that are needed for unlimited clay and crashes, also while detail is not set to a correct default around 0.25 , when activated, the detail property is set to 0.05, rise up to 0.25!
And few differences compared with Sculptris:
Sculptris use a different mesh system and different mesh subdivission scheme, but that is only the make up, the underlying algorithm is the same and in the future the blender mesh subdivide tool could and should be improved, also Bmesh will provide new tools to toy with 🙂
all of this is independent to Unlimited Clay because is designed to be very modular, it simply use existent Blender mesh tools 🙂
Currently I have designed to do the subdivision at stroke finish step, while sculptris perform this step all the way while the stroke is executing, this is something that could be improved in the future, another make up difference.
I hope it will be at least usefull as a seed for a powerful feature.
Detail reducing is also a planned feature, meanwhile you could use every mesh reducing tool out there to clean up the resulting mesh, like remove double edges, with some range, tris to cuads, decimate modifier, etc…
Regarding making it a modifier…. could be interesting but I don’t see how could that be 😛

Waiting for feedback 🙂   Farsthary

Unlimited Clay in the wild!

Details go where they are needed

Hi all! 🙂

One of the main advantages of the adaptive subdivision on the fly is that you get details only where they’re needed, there’s no necessity now to have a high resolution mesh in places where this will be a waste of resources, you could have places of the same mesh as refined as you want, and I think this will allow , with the same amount of resources, more detailes models.

By the way, check the impressive progresses made by GSOC student Jason Wilkinson about sculpt tools improvements in less than a week (speed optimizations, working clay brush,etc)! grab a “jwilkins” build on graphicall.

Cheers

Details go where they are needed

Unlimited Clay, Sculptris Holy Grail soon in Blender!

Hi Everyone

I just couldn´t resist the temptation 😉

The first time I saw voxel sculpting in 3D Coat I said to myself: I hope one day we have in Blender Voxel Sculpting! But at that time I hadn´t the necessary skills to start the project, so I pushed it to my todo list. What captivates me more about Voxel sculpting, is the “Unlimited Clay” freedom, you don´t have to worry anymore for polygon stretching and instead you can focus on the art itself.

Of course, for animation and game projects those freeforms have to be retopologized (not an issue if Rohith‘s project is successful) and this is always important to keep good topology from the beginning … but you get my point.

Then , suddenly, Sculptris came to the scene, a very small and well designed application with an incredible feature: Sculpting tessellation or subdivision on the fly! it was not voxel based at all
but provides similar freedom: unlimited clay to sculpt!

another topic if Voxel Sculpting or Sculpting Dynamic Subdivision are equivalents from the user perspective (I think they are 😉 ) but something start to blink under my radar: -We must have it in Blender! And this seems definitely easier to implement than Voxel Sculpting because the foundations are already set in the excellent and ever improving Sculpt module.

After the Blendiac visited to Cuba, I have promised this to them and I have talked with Dr Petters (Sculptris creator) about a future possibility of implementing that feature in Blender. He’s gently answered telling me that it was not his current interest and he at that time didn´t know what will be the future of Sculptris: Opensource?, sell to a company?, etc

I’ve told him that sometime in the future, even without his assistance or proper documentation, I will try to replicate that feature: the algorithm proves to be not difficult at all. So I put this second project on hold, until two days ago, where a Blenderartist thread wake up my sleeped interest in Sculpting Dynamic Subdivision: and after two sleepless nights I have a working prototype!!!!!


I have no skills at all in Mesh/Sculpt code, so my current work is … well, a tinkering with Blender code. If it attracts the interest of an experienced dev in Mesh/Sculpting I could take this further 😉 . There´s a lot of room for improvements and currently it’s highly experimental so not comparable currently with the Sculptris implementation and should be redesigned, but it could easily be a kick ass feature in the Blender Sculpting toolbox! It basically allows the artist to add new details and parts to the sculpted mesh like branches, carved perfect holes, etc, on the fly, without a prior planification. Here I show you a video and as always, I hope you will love this new surprise 🙂

Hope you love it

Cheers Farsthary

Unlimited Clay, Sculptris Holy Grail soon in Blender!

Filters Issues

Hi

Today I’m very disappointed 😦 , since several days my email has being presenting serious issues, it has being filtered, I don’t know what are they doing but the filters took away every email from bf-commiters …
Moreover, I have no longer access to Youtube,Vimeo,BlipTv, any of those sites that I use to post feature videos.

What will be next? the total isolation, I hope this is a big mistake that will be soon corrected,I really hate this kind of information control measures, and are from ourselves, it has nothing to do with other countries.

Last night I have implemented a surprise I know you all will love, I haven’t slept because of coding and preparing a small video to show it in action … and then I find this 😦

I hope find the way to send this new thing soon. 😦

Filters Issues

Not worth the effort ;)

Hi
I have completed my implementation of the spatial hash structure for particles and the result was not impressive at all. Without handling hashing collisions (a hashing collision is when two different domain particles are assigned to the same spatial bucket) the performance gain is not constant and very small compared with the current kdtree but error prone, and with hashing collision handling the performance generally is slower … I was suspecting that the current spatial structure is not the current performance bottleneck of particles, so improving it could lead to small gains.
My conclusion is that implementing the spatial hashing is not worth right now, this research time though seems lost is not, I have learned quite a lot in the process and I get an important conclusion to keep moving in the future 😉

Of course, there are many spatial hashing implementation possibilities and I may have not tested an optimal one, I have noted that with the hash the fluids seem more smooth than with kdtree … an intriguing situation that speaks about kdtree leaving outside influential particles in fluid motion, but not a serious issue right now.
The Blender GHash module didn’t fit, because it use pointers as keys and I need values as keys, and still I have learned to use this handy tool.
Hashing is often overlooked but is very powerful.

I have started to write down the particle fluids wiki, I spend the whole day editing the page, and basically copy/paste with some pictures upload , but as you can imagine for my internet connection it was like a hell. Hours to set up a wiki page that otherwise could take several minutes! Anyway, as soon as i get connected again I continue updating it and adding the fluid particles related pages.

Cheers Farsthary

Not worth the effort ;)

Some hashing research

A kdtree

hi guys!

These days I’m busy researching on spatial hashing, is a deep and wide field.
currently particles are using a very efficient and general purpose kdtree structure. A kdtree is basically a hieraquical data structure to make fast queries of nearest neighbours of a given point in space, in other words is a space partitioning data structure.
Well, near every tree type structure have worst cases of O(nlogn) for query, inserting and so on, the cool thing about hashing is that they have O(1) insertion time and linear seeking time (is not so simple but to keep the explanation for all audiences 🙂 ) , the main drawbak of hashing structures are choosing the hash function, it have the biggest impact on the performance of the algorithm. hashing basically subdivides the entire space in an infinite array of buckets, and storing only the buckets that contains objects (particles) , so the buckets size is the second factor that influence the hash performance.
In my experiemnts I have situations where is faster than kdtree and others where is slower that’s why I’m searching for an efficient and simple hash function and to be able to correctly handling hash collisions (the effect where different particles in distant space positions are mapped to the same bucket)

Hasing, if well implemented, could show advantage over kdtree on large and sparse particle counts.

Cheers   Farsthary

Some hashing research