Đưa ra quan điểm
Vector pos = new Vector(0.0, 0.20156815648078918, -78.30000305175781, 1.0);
và mặt phẳng (tam giác)
Vector a = new Vector(-6.599999904632568, 0.0, -78.5, 1.0);
Vector b = new Vector(6.599999904632568, 0.0, -78.5, 1.0);
Vector c = new Vector(6.599999904632568, 4.400000095367432, -78.5, 1.0);
Tôi muốn có một mặt phẳng chỉ bình thường theo hướng pos
//Getting plane normal
Vector ac = Vector.Subtract(a,c);
Vector bc = Vector.Subtract(b,c);
Vector planeNormal = Vector.CrossProduct(bc, ac);
//Testing which side of the plane the point is on
double dprod = Vector.DotProduct(planeNormal, pos);
if (dprod < 0)
{
planeNormal.Negate();
}
Nhưng phương pháp này là sai. Các planeNormal
điểm kết quả theo hướng Z âm, vì vậy không nên phủ định. Có một thực hành tốt nhất cho điều này? Xin hãy giúp tôi, tôi thất bại ồ ạt @ math :)
Tôi sẽ bình thường hóa bình thường, nếu bạn đang sử dụng một phương pháp tương tự để tính toán ánh sáng.
—
Ray Dey