Improving the contour detection algorithm

Hi

contour (1)One of the core algorithm of the QuadPaint tool estimates the amount of closed contours that can be extracted from an arbitrary set of strokes, which can be treated as graphs.

In my first development attempt I successfully implemented an algorithm that extracted the minimum path loops first. It worked very well but soon realized that the condition had very common ill cases:

In the above figure, the minimum path for the outer loops overlaps the inner loop, causing messed geometry in latter stages of the pipeline:

prevSo I must carefully find another solution, another condition that adjacent loops should met:

Filled loops should not overlap , but that term is a bit tricky because we are talking of 3D meshes so some sort of projection or volume intersection test needs to be implemented, and we all know those arbitrary precision intersection mesh calculations are very heavy for close to real-time performance.

I eventually found a very elegant solution: Filled contour areas, non overlapping adjacent contours have minimum area compared to the overlapped ones, In terms of a Set theory, overlapping is equivalent to a Union and non overlapping to a Difference.

And that’s it! after implement that condition, arbitrary graph sets can be decomposed in  minimum area loops or adjacent non overlapping sets.

contour (2)

 

 

Improving the contour detection algorithm

Non overlapping shell

Hi 🙂

test showing correctly generated shell
test showing correctly generated shell

Screenshot (11)

Screenshot (20)

Screenshot (21)

Screenshot (22)

Screenshot (23)

Screenshot (24)

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? 😛

Non overlapping shell

Improved surface reconstruction algorithm

After many attempts I finally got a really nice algorithm for surface reconstruction, now the triangle density is much more uniform, is like a flow I may say 😛

Since a picture worth thousand words, take a look:

This is the raw output of the Reconstructor, without smoothing, curvature preserving and other post-process steps that further improve the result. This is just to compare against the previous solution the fundamental of the algorithm.

Note: Click on images to see them with better resolution 😉

Original hole test, non uniform
Original hole test, uniform
Previous base reconstruction algorithm, non uniform starting mesh
New base reconstruction algorithm, non uniform starting mesh
Previous base reconstruction algorithm, uniform starting mesh
New base reconstruction algorithm, uniform starting mesh
New base reconstruction algorithm, with all post-process improvements activated

Hope you like it!

Improved surface reconstruction algorithm

A bit of UI cleaning

Hi 🙂

Merged tools

Those who was scared of the cluttering of the UI with new tools popping every time, shall not, as devs, many times we clutter the UI with experimental tools and on going work, so what you see in screen casts are more like our flavor of the software, by no means is the release look. Feedback is very important too, I may say, crucial, because is easy to lost track on artist needs.
So, I decided to clean a bit three floating tools that, altough they have a very different inner algorithms, externaly they may behave very similar, so I’ve merged Decimate-Reduce-Remove Clay into a single Clean Clay tool, with the option to choose among the previous actions of course, so no functionality is lost, just streamlined 🙂

A bit of UI cleaning

3DCoat Christmas Discount!

In this last month of the year , Pilgway team is happy to offer a special Christmas discount! From December 17 until December 31, 2011 a $100 discount on 3D-Coat Professional, therefore lowering the standard price to $249. Happy holidays!
December is a great month for discounts and gifts 🙂
Pilgway team

3DCoat Christmas Discount!

Symm copy command

Hi 🙂

Some times your model has grown so much in polygon count that every performance help you can give it matters but you are not willing to loose the advantage of symmetry, or perhaps you want to enforce symmetricity after several, non symmetric sculpting transformations, among others, that seems the perfect use case for the “Symm copy” command.
Previously it only handles voxel models, so any surface feature will get re-sampled and of course, your LC fine details will get lost, so we have revamped to allow full operation in every mode and few optimizations too.
Hope you like it.


Symm copy command