Snake brush, a much awaited LiveClay feature

Hi guys πŸ™‚

Snake brush

Good news! in a quick code sprint with Andrew yesterday we have being able to easily implement the Snake tool for LiveClay, a very useful brush that takes full advantage of dynamic subdivision to literally sculpt in the air πŸ˜‰ this is the first version and I’m sure it can be further improved in the future but is quite good right now πŸ˜‰ … crease brush coming soon πŸ˜‰ Now surface mode sculpting is getting really powerful and feature filled πŸ™‚

This new improvements are available now for beta testing πŸ˜‰

Cheers

Farsthary

PS: The Wrinkle brush can do crease too! it behaves in a similar way! just use a strong curve πŸ˜‰

wrinkle performing a crease
Snake brush, a much awaited LiveClay feature

New wrinkle brush and fast Tube brush for 3D-Coat

Hi guys!

I take some time to research and implement these two types of brushes with rely on LiveClay too on the surface mode so they can be quite useful and leverage functionality between voxel mode and surface mode. Β (Finally I can upload Full HD content Yay! ;))

Cheers

Farsthary

New wrinkle brush and fast Tube brush for 3D-Coat

Further revamp of the self collision phase

Hi πŸ™‚

More speed optimization and a re code πŸ™‚

I have being working hardly to revamp and make much more faster the self collision part while sculpt, this is the most time consuming step in the ‘merge and split’ feature for LiveClay and thus require careful attention and as much optimization as we can in order to make a suitable real time tool even for huge meshes πŸ˜‰

Further revamp of the self collision phase

Starting tackling “Making holes and bridges” or changing topology genus feature

Hi all πŸ™‚

Closest distance detection

Well, a “must have” feature in dynamic subdivision methods is the possibility to merge, split and make holes through the polygon mesh while you sculpt, like have being proposed in the paper Freestyle.

The proposed method is algorithmically compatible with dynamic subdivision algorithm so i have started to perform my own implementation of that over LiveClay, is still a WIP feature and I’m only taking the very first steps, one of them, detecting what is the closest surface vertexes is almost done as you can see in the picture above.

Early test showing correctly detected closest points.

One drawback of this kind of methods are the speed, but I guess that is something that can be definitely worked on πŸ˜‰

Cheers
Farsthary

Starting tackling “Making holes and bridges” or changing topology genus feature

A better subdivision threshold function

Hi again πŸ™‚

Β y = f(x,z)
detail function plotted in 3D
detail function plotted in 3D

Ok, is the Neverending story the software developent, there’s always something to add, something to improve, some knobs to tweak πŸ˜‰ I have realized that softwares like Meshmixer and Sculptris (greetings to their awesome devs ;)) limit somehow the amount of detail that a certain brush size can have , in order to avoid unnecessary geometry added and improve performance, if is bad to down-sampling the brush splat is worse to oversampling it πŸ˜‰Β  you can use almost any parameter to trigger the edge subdivision, in my previous implementation I was using a temporal function depending on the radius (x) and the use defined detail level(z), the problem can be seeing as simpler or as complicated as you want, so I have spent most of this day trying different threshold functions until I found the function that best suits most of the artists use cases πŸ™‚

Thanks to that, now polygons grow on a much optimal and smarter rate further increasing performance πŸ™‚

Edit: How this function works? This function basically will return a value that will aid in the decision process of subdividing an edge, so choosing an optimal function will have a huge impact in the quality of the resultant stroke, if is not properly set you may end up subdividing a lot your edges for a relatively low detail stroke or you may not have enough detail for a detailed stroke, regarding your detail slider user controlled parameter.

Cheers

Farsthary