<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;"><div><a href="http://wiki.blender.org/index.php/User:Jjoonathan/NURBS_UVEdit">http://wiki.blender.org/index.php/User:Jjoonathan/NURBS_UVEdit</a></div><div><br></div><div>Progress:</div><div>* Fixed algorithmic bug causing trim to fail if trim curve intersected vertex. This was a critical bug that prevented all but specially crafted trim curves from being created/imported.</div><div>* Added proper N-gon and per-loop normal support to the convert-to-mesh operator (higher quality meshes, supports curves with kinks)</div><div>* Added UV editor for trim curves. Visualization functionality is mostly complete; editing functionality is in progress (selections propagate but that's it).</div><div>* Fixed bug in .blend read/write code for NurbTrim that prevented undo manager from working and merged it back into my main soc-2014-nurbs branch</div><div>* Spent time trying to compile in C90 mode, but I can't seem to do any of 1. persuade clang to emit C90 nitpicky errors (variables declared at beginning of function etc) 2. build in Xcode with gcc 3. build using UNIX makefiles with gcc.</div><div><br></div><div>This weekend (i.e. before soft pencils-down):</div><div>* Finish edit functionality in UV Editor (add buttons to call add curve, move control points, simplify operators etc)</div><div>* Rotation surfaces</div><div>* Revive Zak's buggy loft/sweep NURBS surface creation code I recently unearthed in contrib</div><div><br></div><div>Next week (i.e. after soft pencils-down, before hard pencils-down):</div><div>* Get build working on a linux or windows computer (I think I had one working in December on Windows using VS) so that I can actually see the C90 errors</div><div>* Test and bugfix. I suspect there is enough to do on that front to keep me busy all week.</div><div><br></div><div><br></div><div><br></div><br><div><div>On Aug 2, 2014, at 2:34 AM, Jonathan deWerd &lt;<a href="mailto:jjoonathan@gmail.com">jjoonathan@gmail.com</a>&gt; wrote:</div><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;">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></div></blockquote></div><br></body></html>