Hi Roland,
Hrm - I get the angle -almost- for free...my vertices and faces are linked in the internal data structure, so the weighting cost is the cost of:
- calculating the normalized vector to the adjacent points on the polygon (the vertex "object" can be found by ptrs easily)
- calculating the dot product of those vectors
- applying acos to get a radian angle weight.
I don't need to normalize - after all, the angles going into the vertex may not sum up to 360 or 2pi. I just use the relative weights and renormalize the normal at the end, something I would have had to do anyway.
Adding the weighting coefficient only slowed smoothing by 5% - that's a pretty light cost to pay to get the specular hilights looking right when a face is/must be triangulated. :-)
cheers
Ben
Hrm - I get the angle -almost- for free...my vertices and faces are linked in the internal data structure, so the weighting cost is the cost of:
- calculating the normalized vector to the adjacent points on the polygon (the vertex "object" can be found by ptrs easily)
- calculating the dot product of those vectors
- applying acos to get a radian angle weight.
I don't need to normalize - after all, the angles going into the vertex may not sum up to 360 or 2pi. I just use the relative weights and renormalize the normal at the end, something I would have had to do anyway.
Adding the weighting coefficient only slowed smoothing by 5% - that's a pretty light cost to pay to get the specular hilights looking right when a face is/must be triangulated. :-)
cheers
Ben