I focused on three areas this week:<div><br></div><div>1.) Plane brushes - These are brushes that all determine the average plane of the vertexes under the brush and then pull or push vertexes relative to the plane.  These include</div>
<div>- Flatten - pull vertexes towards the plane</div><div>- Clay - offset the plane above or below the surface then draw vertexes towards it</div><div>- Fill - pull vertexes up towards the plane</div><div>- Scrap - pull vertexes down towards the plane</div>
<div>- Contrast - push vertexes away from the plane</div><div><br></div><div>2.) Optimization - I&#39;ve used a profiler to find functions that are taking large amounts of time and I optimize those functions (Wash, Rinse, Repeat)</div>
<div>- eliminated dead code</div><div>- removed unnecessary code</div><div>- simplified overly complicated code</div><div>- removed calls to calloc and memset</div><div>- created multiple versions of a function when the default does too much work in some cases</div>
<div><br></div><div>- however, I have not done any work to improve algorithms</div><div>- I removed OpenMP for now, pending a better understanding of how to use it effectively</div><div><br></div><div>- for smaller models (1 million polygons) the bottlenecks are no longer in the sculpt code itself, but elsewhere</div>
<div>- for large models (6 million polygons before my machine croaks), optimizing sculpt more would help</div><div><br></div><div>3.) Brush Spacing - The distance between stamps is now based on the size of the brush instead of screen space pixels</div>
<div>- this improves the consistency of spacing under different perspectives and brush sizes</div><div>- the strength of the brush is attenuated according to how much stamps overlap</div><div><br></div><div>I&#39;ll be taking it easy this weekend starting Friday.  I&#39;ll be monitoring feedback and planning my next move.</div>
<div><br></div><div>Later,</div><div>Jason Wilkins</div><div><br></div>