It's the angle threshold where normals are broken between faces, but that only 
works for vertex normals.  Since only one point normal can exist at a single 
point you can only have smooth normals.


On Dec 6, 2011, at 8:51 AM, Ivan Busquets wrote:

> Oh, I forgot to ask...
> 
> In GeoInfo::construct_normals(), what is the threshold argument for?
> 
> 
> On Tue, Dec 6, 2011 at 8:48 AM, Ivan Busquets <ivanbusqu...@gmail.com> wrote:
> Thanks Jonathan.
> I'll have another look at construct_normals. I think I gave that a try as 
> well, but was probably not doing the right thing.
> 
> With regards to some of those Primitive methods being designed for a Mesh 
> primitive, I did try to use them with a Card, and was still getting nothing 
> out of them. :(
> 
> Thanks again. I'll give construct_normals a shot and see how it goes.
> 
> Cheers,
> Ivan
> 
> 
> On Tue, Dec 6, 2011 at 8:31 AM, Jonathan Egstad <jegs...@earthlink.net> wrote:
> There's an existing method to do this which is pretty fast: 
> GeoInfo::construct_normals().  I think you need to pre-create the 'N' 
> attribute and specify the group the attribute is owned by (Group_Points for 
> your question.)
> 
> The drawback to this method is that is doesn't use any existing normals it 
> just creates brand new ones.
> 
> Those primitive methods your trying to use likely won't work very well except 
> for a Mesh primitive as that's the only DDImage Primitive that uses faces 
> properly.  I don't think the Polygon does the right thing.  Many of those 
> methods were created very early on and were not well debugged since Mesh was 
> the only one to really stress them.
> If the Foundry would release a PolyMesh primitive in DDImage that would 
> likely work much better (hint, hint.)
> 
> -jonathan
> 
> 
> > My first attempt has been to average the normal vector of all 
> > faces/primitives of which a point is part of.  This is what I'm doing (in 
> > pseudo-code):
> >
> >
> > for each point {
> > N = (0,0,0)
> >    for each primitive {
> >      for each vertex in this primitive {
> >        prim->build_indices(...)
> >        check if point index == current point
> >        if it does: add this primitive's normal to N
> >     }
> >   }
> > divide N by number of primitives that use this point
> > normalize N
> > }
> >
> >
> > Now, this works, but it's extremely slow, mainly becauseof the rather 
> > redundant set of loops (looping through all primitives for each point).
> >
> > In trying to optimize this, I've seen some methods in the Primitive class 
> > that look like they could help, but I haven't been able to get anything out 
> > of them. Particularly:
> >
> >
> > Primitive::get_geometric_normal()
> > Primitive::get_face_normal()
> >
> > Can't get anything out of neither of them. They both return a (0,0,0) 
> > vector. They both take a PointList*. Am I right in assuming I should feed 
> > them the full PointList* for my object as returned by GeoInfo::point_list() 
> > ?
> >
> > Also tried with:
> >
> > Primitive::get_vertex_faces()
> >
> > which is supposed to fill in an std::vector of face indices, but I'm always 
> > getting 0 out of it.
> >
> >
> > Any help on the best approach to compute per point normals would be greatly 
> > appreciated. Also, how are the Primitive methods mentioned above meant to 
> > work? It looks like they could be extremely useful in this case, but I must 
> > be missing a step somewhere.
> >
> > Thanks,
> > Ivan
> > _______________________________________________
> > Nuke-dev mailing list
> > Nuke-dev@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
> > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
> 
> _______________________________________________
> Nuke-dev mailing list
> Nuke-dev@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
> 
> 
> _______________________________________________
> Nuke-dev mailing list
> Nuke-dev@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev

_______________________________________________
Nuke-dev mailing list
Nuke-dev@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev

Reply via email to