2
私はC#の2つのモデル間でブーリアン減算を行う必要があります。メッシュの1つは完全に他のメッシュ内にあるので、私は1つのモデルの法線を逆にして2つのモデルを一緒に追加することを望んでいました。私は法線を逆にする方法を失っている。C#Calucate表面ブール代数の代わりに通常の逆数
これは、私は、通常の表面を計算しています方法です:
//creates surface normals
Vector3D CalculateSurfaceNormal(Point3D p1, Point3D p2, Point3D p3)
{
Vector3D v1 = new Vector3D(0, 0, 0);
Vector3D v2 = new Vector3D(0, 0, 0);
Vector3D normal = new Vector3D(0, 0, 0);
// Finds The Vector Between 2 Points By Subtracting
// The x,y,z Coordinates From One Point To Another.
// Calculate The Vector From Point 2 To Point 1
v1.X = p1.X - p2.X;
v1.Y = p1.Y - p2.Y;
v1.Z = p1.Z - p2.Z;
// Calculate The Vector From Point 3 To Point 2
v2.X = p2.X - p3.X;
v2.Y = p2.Y - p3.Y;
v2.Z = p2.Z - p3.Z;
// Compute The Cross Product To Give Us A Surface Normal
normal.X = v1.Y * v2.Z - v1.Z * v2.Y; // Cross Product For Y - Z
normal.Y = v1.Z * v2.X - v1.X * v2.Z; // Cross Product For X - Z
normal.Z = v1.X * v2.Y - v1.Y * v2.X; // Cross Product For X - Y
normal.Normalize();
return normal;
}
は、通常の表面を反転するための簡単な方法はありますか?
ありがとう、私はこれを試してみます。 –
ありがとう、それは法線を反転させています。それは私が望んでいたものではありませんが、何が起こっているのかを知ると、別の質問を投稿します。 –