<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Progress:<div>* Finished trim curve tessellator [1]</div><div>* Finished code to read/write trim curves from a .blend</div><div>* Added loop-select modifier for NURBS control points (selects a U row or V column)</div><div>* Minor UI tweaks (control mesh is thinner and Z-tested, NURBS weight is disambiguated from softbody weight, etc)</div><div>* Wrote code to dump internal NURBS state from Blender into GLSL visualizer to track down a lingering bug (see below)</div><div><br></div><div>This weekend:</div><div>* Track down the trim bug that is causing an explosion of trim polygon edges whenever a straight line runs parallel to an edge of a tessellation poly</div><div><br></div><div>Next week:</div><div>* Rotation surfaces</div><div>* Fix a bunch of style issues and warnings that Sergey brought to my attention</div><div>* Prepare a squashed merge</div><div><br></div><div>[1]&nbsp;Two weeks ago I accidentally reported finishing trim curve tessellator when I meant to report that I had finished the surface tessellator. I later clarified the matter, but to resolve all doubt: this week both are finished. Well, except for the bug I mentioned, which is currently blocking the more complex demos.<br><div><br><div><div>On Jul 26, 2014, at 3:43 AM, Jonathan deWerd &lt;<a href="mailto:jjoonathan@gmail.com">jjoonathan@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>This week was largely eaten up by a task that I thought would be a quick copy/paste job but turned into a morass of debugging math code. Fortunately that part is done -- and the result is much prettier smooth curves:</div><div><br></div><div><a href="http://wiki.blender.org/index.php/User:Jjoonathan/New_NURBS_Eval">http://wiki.blender.org/index.php/User:Jjoonathan/New_NURBS_Eval</a></div><div><br></div><div>Progress This Week:</div><div>* Finished the new evaluation code. Key features:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>*&nbsp;Computes any number of partial derivatives analytically</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>* Immediate application 1: compute normals analytically = it looks smooth again :)</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>* No nasty lighting artifacts near trim edges</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>* No seams where curves touch/loop due to calculating normals at polygon corners</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>* Immediate application 2: handle (literal) edge cases of eval points lying on knots correctly</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>* Immediate application 3: uses 1/2 as many divisions, so possibly it's faster, although I didn't check</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>* Future application: computing error bounds</div><div>* Performed extensive verification of the new eval code</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>* Mesh points coincide with Rhino surfaces</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>* All 1st, 2nd&nbsp;(partial) derivatives agree with Mathematica's NURBS implementation (direction, amplitude correct).</div><div>* Made progress on the trim curve tessellator.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>* NOTE: last week I mistakingly said that I had finished the trim curve tessellator when I actually meant to say that I had finished the surface tessellator.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>* Refactored the import code so that it can make detatched curves</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>* Adjusted&nbsp;memory management &amp; blenloader</div><div><span class="Apple-tab-span" style="white-space: pre;">        </span>* The trim curve tessellator isn't a sticking point, I only got around to working on it again today. The eval code was the sticking point.</div><div><br></div><div>Things that were done that don't officially constitute progress:</div><div>* Spent Thursday finishing rotation surface &amp; interpolation surface chapters in P&amp;T</div><div><br></div><div>Things that must be done before I can import the sample .3dm files:</div><div>* Finish the trim curve tessellator</div><div>* Rotation surfaces</div><div><br></div><div>Things I could use help on:</div><div>* Does anyone know of good example code for making a BMesh out of n-gons? N-gons would make the meshes produced by Alt+C *much* cleaner.</div><div><br></div><div><br></div><br><div><div>On Jul 19, 2014, at 1:28 PM, claas kuhnen &lt;<a href="mailto:info@ckbrd.de">info@ckbrd.de</a>&gt; wrote:</div><blockquote type="cite"><p dir="ltr">So agree I am very excited about this</p>
<div class="gmail_quote">On Jul 19, 2014 1:27 PM, "Sergey Sharybin" &lt;<a href="mailto:sergey.vfx@gmail.com">sergey.vfx@gmail.com</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto;">
<div dir="ltr">Seems to be rather nice progress. Would be cool if all the bits are committed and some .blend in shared which demonstrates the stuff.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Jul 19, 2014 at 4:31 PM, Jonathan deWerd <span dir="ltr">&lt;<a href="mailto:jjoonathan@gmail.com" target="_blank">jjoonathan@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto;">Progress:<br>
* Finished code to tessellate trim curves!<br>
&nbsp; &nbsp; &nbsp; &nbsp; see: <a href="http://wiki.blender.org/index.php/User:Jjoonathan/NURBS_In_Blender" target="_blank">http://wiki.blender.org/index.php/User:Jjoonathan/NURBS_In_Blender</a><br>
* Rewrote knot code to match the conventions in the math literature, tested for compatibility by comparing meshes<br>
* Worked on adapting a better NURBS evaluation algorithm that can produce first and second derivatives (for normals and error bounds, respectively).<br>
&nbsp; &nbsp; &nbsp; &nbsp; it's still buggy.<br>
* Worked further on the NurbEdge interface to handle imported trim curves<br>
&nbsp; &nbsp; &nbsp; &nbsp; still working on code to match endpoints that are separated in UV space but coincide in R3 due to either wrapping in UV space (cyclic NURBS) or coving<br>
<br>
Todo:<br>
* Finish tracking down the NaN-producing bugs in the new surface evaluator<br>
&nbsp; &nbsp; &nbsp; &nbsp; From there, should be easy to implement good normals<br>
* Finish NurbEdge so that it at least handles wrapping in UV space. This will allow importing of most .3dm files.<br>
* Implement revolution surfaces.<br>
&nbsp; &nbsp; &nbsp; &nbsp; Demo Claas's hairdryer model!<br>
<br>
On Jul 12, 2014, at 11:14 AM, Jonathan deWerd &lt;<a href="mailto:jjoonathan@gmail.com" target="_blank">jjoonathan@gmail.com</a>&gt; wrote:<br>
<br>
&gt; (Apologies if this is a duplicate email. I see a copy of this email in gmail's "sent" folder but I don't see one in my inbox, so I'm sending again.)<br>
&gt;<br>
&gt; Progress:<br>
&gt; * Finished the code that traverses BReps from 3dm files and cuts them into surfaces<br>
&gt; * 2D Trim curves import as Nurb objects that are appended to a NurbList in their parent surface<br>
&gt; &nbsp; &nbsp; &nbsp; Just curves currently, I still have to get multi-part loops working<br>
&gt; &nbsp; &nbsp; &nbsp; Also they don't seem to be preserved by DNA even after calling makesdna...<br>
&gt; * Moved surf_gridmesh into bf_blenkernel, promoted curve.c to curve.cpp (for future OpenNurbs use), fixed a few small bugs that caused, moved the GLUT debug code into blender/tests, convinced CMake to build and link it<br>


&gt; * Wrote, debugged the method that builds the displist from the gridmesh<br>
&gt; * Timed it, see pretty graph a few emails back<br>
&gt; * Started writing NurbEdge structure to handle in general the sewing of trim edges and cyclic edges (e.g. so that spheres don't have seams)<br>
&gt;<br>
&gt; Next up:<br>
&gt; * I still need to finish the code that tessellates the trim curves. I didn't get much time to work on it today, so I'm planning to work on it tomorrow as well.<br>
&gt; * Get trim curves to load/save from .blend files by figuring out what I'm doing wrong with makesdna<br>
&gt; * Finish NurbEdge interface for defining edges to sew, get it in DNA as well<br>
&gt; * Use NurbEdge to implement revolution surfaces<br>
&gt;<br>
<br>
_______________________________________________<br>
Soc-2014-dev mailing list<br>
<a href="mailto:Soc-2014-dev@blender.org" target="_blank">Soc-2014-dev@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/soc-2014-dev" target="_blank">http://lists.blender.org/mailman/listinfo/soc-2014-dev</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div><span style="color:rgb(102,102,102)">With best regards, Sergey Sharybin</span></div>
</div>
<br>_______________________________________________<br>
Soc-2014-dev mailing list<br>
<a href="mailto:Soc-2014-dev@blender.org">Soc-2014-dev@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/soc-2014-dev" target="_blank">http://lists.blender.org/mailman/listinfo/soc-2014-dev</a><br>
<br></blockquote></div>
_______________________________________________<br>Soc-2014-dev mailing list<br><a href="mailto:Soc-2014-dev@blender.org">Soc-2014-dev@blender.org</a><br><a href="http://lists.blender.org/mailman/listinfo/soc-2014-dev">http://lists.blender.org/mailman/listinfo/soc-2014-dev</a><br></blockquote></div><br></div></blockquote></div><br></div></div></body></html>