On 27/06/2013 at 16:57, xxxxxxxx wrote:
User Information:
Cinema 4D Version: R13+
Platform: Windows ; Mac OSX ;
Language(s) : C++ ;
---------
This is driving me crazy. Google isn't getting me results based on my inputs.
A ray hits a triangle in a mesh. My code gets the UVW coordinates for each point of the triangle in question from the UVWTag and UVWStruct (using the GeRayColResult.face_id). I have the Barycentric coordinates of the hit point relative to the triangle from GeRayCollider/GeRayColResult. How do I go about interpolating to the UVW coordinate in UVW space (not triangle space, i.e.: not barycentric) of the hit point given the triangle's three UVW coordinates and the hit point's Barycentric coordinate?
To add, I have these two options (the only two so far) :
// GetUVFromBarycentric
// - Given the Texture vertices of a triangle (UVW space) and the Barycentric coordinate of a point (P) within, return P's Texture coordinate
//*---------------------------------------------------------------------------*
Vector GetUVFromBarycentric(const Vector& vAUV, const Vector& vBUV, const Vector& vCUV, const Vector& vPBary)
//*---------------------------------------------------------------------------*
{
return vAUV*vPBary.x + vBUV*vPBary.y + vCUV*vPBary.z;
//return Vector(b0 * vA.x + vP.x * vB.x + vP.y * vC.x, b0 * vA.y + vP.x * vB.y + vP.y * vC.y, 0.0);
}
I have not tried either yet but will soon.