Sybs ALHABSHI wrote:
> > I'm trying to find the formula and explanation about normals for smooth> triangles. All info is helpful thanks.
Try Warp's mesh smoothing utility. It is made specificaly for POV-Ray
plus the docs give a good explaination of triangle smoothing.
http://www.students.tut.fi/~warp/PovUtils/
--
Ken Tyler - 1200+ Povray, Graphics, 3D Rendering, and Raytracing Links:
http://home.pacbell.net/tylereng/index.html http://www.povray.org/links/
"Sybs ALHABSHI" <syb### [at] htsavoiecom> writes:
> I'm trying to find the formula and explanation about normals for smooth> triangles. All info is helpful thanks.
The comments in the source code is the only place I know, where the
calculation of the normals is explained. It is written in triangle.c:
/*****************************************************************************
*
* FUNCTION
*
* Smooth_Triangle_Normal
*
* INPUT
*
* OUTPUT
*
* RETURNS
*
* AUTHOR
*
* POV-Ray Team
*
* DESCRIPTION
*
* Calculate the Phong-interpolated vector within the triangle
* at the given intersection point. The math for this is a bit
* bizarre:
*
* - P1
* | /|\ \
* | / |Perp\
* | / V \ \
* | / | \ \
* u | /____|_____PI___\
* | / | \ \
* - P2-----|--------|----P3
* Pbase PIntersect
* |-------------------|
* v
*
* Triangle->Perp is a unit vector from P1 to Pbase. We calculate
*
* u = (PI - P1) DOT Perp / ((P3 - P1) DOT Perp).
*
* We then calculate where the line from P1 to PI intersects the line P2 to P3:
* PIntersect = (PI - P1)/u.
*
* We really only need one coordinate of PIntersect. We then calculate v as:
*
* v = PIntersect[X] / (P3[X] - P2[X])
* or v = PIntersect[Y] / (P3[Y] - P2[Y])
* or v = PIntersect[Z] / (P3[Z] - P2[Z])
*
* depending on which calculation will give us the best answers.
*
* Once we have u and v, we can perform the normal interpolation as:
*
* NTemp1 = N1 + u(N2 - N1);
* NTemp2 = N1 + u(N3 - N1);
* Result = normalize (NTemp1 + v(NTemp2 - NTemp1))
*
* As always, any values which are constant for the triangle are cached
* in the triangle.
*
* CHANGES
*
* -
*
******************************************************************************/
I hope this helps.
Thomas
P.S.: I'm curious: For what project do you need this info?
--
http://thomas.willhalm.de/ (includes pgp key)
From: Thorsten Froehlich
Subject: Re: Help : Normals and utilities.
Date: 14 Dec 1999 14:18:31
Message: <38569807@news.povray.org>
In article <qqm### [at] goldachfmiuni-konstanzde> , Thomas Willhalm
<tho### [at] willhalmde> wrote:
>> I'm trying to find the formula and explanation about normals for smooth>> triangles. All info is helpful thanks.>> The comments in the source code is the only place I know, where the> calculation of the normals is explained. It is written in triangle.c:
All (or at least most) computer graphics books are the place :-) The books
you look for are in most libraries, the list of books is at the end of the
POV-Ray manual.
Thorsten