[Soc-2014-dev] Weekly Report #9: NURBS Modernization

Jonathan deWerd jjoonathan at gmail.com
Sat Jul 19 12:31:06 CEST 2014


Progress:
* Finished code to tessellate trim curves!
	see: http://wiki.blender.org/index.php/User:Jjoonathan/NURBS_In_Blender
* Rewrote knot code to match the conventions in the math literature, tested for compatibility by comparing meshes
* Worked on adapting a better NURBS evaluation algorithm that can produce first and second derivatives (for normals and error bounds, respectively).
	it's still buggy.
* Worked further on the NurbEdge interface to handle imported trim curves
	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

Todo:
* Finish tracking down the NaN-producing bugs in the new surface evaluator
	From there, should be easy to implement good normals
* Finish NurbEdge so that it at least handles wrapping in UV space. This will allow importing of most .3dm files.
* Implement revolution surfaces.
	Demo Claas's hairdryer model!

On Jul 12, 2014, at 11:14 AM, Jonathan deWerd <jjoonathan at gmail.com> wrote:

> (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.)
> 
> Progress:
> * Finished the code that traverses BReps from 3dm files and cuts them into surfaces
> * 2D Trim curves import as Nurb objects that are appended to a NurbList in their parent surface
> 	Just curves currently, I still have to get multi-part loops working
> 	Also they don't seem to be preserved by DNA even after calling makesdna...
> * 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
> * Wrote, debugged the method that builds the displist from the gridmesh
> * Timed it, see pretty graph a few emails back
> * 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)
> 
> Next up:
> * 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.
> * Get trim curves to load/save from .blend files by figuring out what I'm doing wrong with makesdna
> * Finish NurbEdge interface for defining edges to sew, get it in DNA as well
> * Use NurbEdge to implement revolution surfaces
> 



More information about the Soc-2014-dev mailing list