Just today realize how long since my last post, sadly being in Cuba prevents me from regular updates.
Last months ive being working polishing A LOT the FillHoles tools for purposes way beyond regular sculpting to the point of making it a very powerful tool on they own for mesh healing. I will probably make a short video soon featuring a complete workflow for that tools but honestly, this offline situation that has prolonged more than a year now is demotivating me a lot.
Ive started working on a quadrangulation tool that proves to be challenging and interesting enough to drive me trough this situation.
Hope in new post I will be a little more happy :)
Cheers to all
Recently I´ve been doing some ground work, polishing FillHoles tool and other internal tools. Nothing fun to show but definitelly improving robustness and inbetween added here and there small useful new features, like the one I´ve being showing in this quick and dirt video series.
Like proportinal inflate, I´ve recently added too in Separate disconnected functionality a treshold to delete smaller parts. Very common when we import noisy meshes with lots of floating parts.
One of the most important feature is the possibility to bridge and connect seperated meshes manually, like I show here: http://farsthary.wordpress.com/2014/07/15/fillholes-revamp-test-1/
So stay tunned because the real fun my start soon for me :P
This is a small but important revamp for FillHoles tool. Completely changed its behaviour to allow more consistent holes boudary treatment. previously all actions where applied at the end of click.
Now holes are saved and different actions are applied one by one at user choice.
Also solved an important bug in Contour smoothing causing the contour to sligthly rotate in each iteration. now it behaves at should be.
Here’s the first test of QuickPose tool, a surprise tool I was working on. As its name points, is a tool aimed for quick and dirty posing and transforming a selected region from a mesh. It turns an area into a rubber like material so all transformation are nicely propagated to the vertices in a physical way.
Sometimes you don´t need complex setup just for bending few parts from a model :)
Under the hood it performs complex implicit representation of the mesh and store its diferential coordinates in order to preserve high frecuency detail when the mesh is deformed.
Still is subject to further optimization and interface change, particularily I need to add support for pose rotations so stay tunned!
Smoothing algorithm seems to be a never ending source of inspiration. There´s probably as much smoothing algorithm as there´s researchers out there!
So far 3dCoat has a plenty of smoothing tools, but nearly all of them suffered when mesh density is high or varies a lot across a surface.
Every artist know this when a small dense area rebels against a smoothing eefort. We have tools like recently developed like Smoother, that ideally smooth a painted area, useful for pre-planned smoothing. Or powerfull smoothing, that performs a more aggressive smoothing but still suffers from the curse of the high numbers.
well, Now i have added to TSmooth a third algorithm: Strong smoothing. it will always smooth the mesh under the pen regardless the base geometry, and vene better, in a consistent way!
So be careful smoothing with this tool because it can obliterate the most stubborn details!
hope you like it!
For CopyClay I´ve actively researched several bending algorithm. Making the parts seamless blend with the base mesh is far from trivial, and many algorithms can be used. A membrane based algorithm was first develop, which strored an offest from an ideal membrane for each vertex, it turned out not very robust and limited.
Then I cam up with an iterative, spring elastic algorithm that perform quite good and moreover, is fast. For most cases is the default.
It has the limitation that for parts that required extreme bending over mesh, it requires a lot of iterations and thus, become slow and non optimal.
So finally I’ve implemented a laplacian iteration-free method, completely based on linear system solution,wich has many advantages over previous one: it provides the best bending algorithm altough is not as fast as few iterations on Elastic method) but for best quality is unmatched!
It accurately bend the part over the surface because in theory is the convergence mesh of the elastic method at unlimited iterations.
Working over few bugs in Bridge I realize that not always we need such a high resolution in bridging detail provided by the automatic splitting algorithm implemented in it.
And the fact that in most cases tunnels are hidden from the actual models it can be good to fine tune its detail level so it can be less or perhaps more?, because there’s everything in this world :P
So I add a slider to control that possibility if user wants too, but the default will be the automatic detail estimation.
Some weeks ago I got a pretty interesting mantis bug repport about LiveClay couldn’t correctly handle long stretched triangles. I’ve develop for current LC tools a very advanced splits triangle criterias that ensure we always get nice triangulation, nice topology and nice valence on the mesh, in a very organic like way.
Also 3DCoat almost always deals with high density meshes so I never saw the artit use cases dealing with such ill formed triangles…it turns out it was more common that I initially tougth!
Any low poly model imported from every general purpose 3dpackage can have such triangles and in furniture modeling those are everywhere, so yes, hard surface low density meshes was a missing spot for LC tools.
The largest edge split triangle will allow to split ill or long stretched triangles in a correct way for the sculpt tools.
And the solution was the simplest split criteria: split only the longest edge of a face. It will always subdivide ill triangles in a way they become tractables latter, something was not happen with previous criteria, but ofcourse a tradeoff must be made, between nice topology and stroke preserving shape. So former advanced split criteria will still be the best when mesh density is relatively high compared to the brush size or mesh is organic.
Summarizing, there´s now two options for split faces: Soft (previous advanced algorithm for organic or dense meshes that keeps nice topology/geometry ) and Hard (new algorithm for keep hard edges and preserve as much geometry as possible at the cost of topology quality)
Soft split is the previous advanced split algorithm while Hard is the new split for hard surfaces or stretced triangles.
Long time without posting! yes, mainly due to internal work that realy is not worth to publicly comment but not for being internal is less interesting and important. At least to me and 3DCoat and also the fact im in Cuba again :P
Finally CopyClay is getting to its goal. many new features has being added and others got a major overhaul and improvement!
Hope you like it!
From my first introduction of CopyClay a lot of things have got improved: realtime preview, rotation,scaling,offset all with mouse or hotkeys, better stability and improved blending.
Still has a road to walk this tool but things are looking nicer toward artist now:
I will continue polishing this tool and adding new features to enhance it.
test showing correctly generated shell
Currently I’m finishing a very nice tool: A non overlapping Shell tool. I have made in the past our current Shell tool but it is a common shell algorithm found in virtually every 3D package: it just offset object surface, so if you need an object of a given thickness for 3D printing or other use where it “must” have that thickness and no other, unless you manually tweak the previous generated shell and depending on the complexity of the model …you are out of luck.
With this new tool, no matter the thickness value you want, it will be correctly calculated, so overlapps will just be solid or welded as a real solid objects with cavities should do.
Algorithms develop for this tool can be useful in other parts of 3DCoat too, it was my first slip on “remesh” type tools…so who knows what the future may bring? :P
Internal work with debug information displayed
Long time without posting! I’m doing a lot of maintenance and polishing work so, while is important for 3DCoat internals it seems to me not very interesting for public announcements since most of the things are technical related to 3Dcoat only XD
There’s a famous 80-20 rule (http://en.wikipedia.org/wiki/Pareto_principle) that says that most of the time you will spend dealing with things that can be considered “the confetti” on the code…and boy that’s so true!
Most of my time spent this month is sunk in final implementation on features I quickly drafted and implemented overnigth!
Stay tunned :)