Tôi đang cố gắng tạo biểu đồ cảnh cho trò chơi 3D của mình, trong đó mọi biến đổi của đối tượng đều liên quan đến cha mẹ của nó. Mỗi nút của biểu đồ có vectơ Xoay, Tỷ lệ và Dịch.3D liên quan đến biến đổi tuyệt đối
Cách kết hợp ma trận chuyển đổi tương đối chính xác để có được chuyển đổi tuyệt đối của một đối tượng là gì? Tôi sẽ rất vui nếu bạn cũng có thể giải thích giải pháp của bạn.
Dưới đây là một ví dụ về để làm điều đó SAI:
Điều này thực sự bật ra được các giải pháp:
Matrix GetAbsoluteTransformation()
{
if (!this.IsRoot())
{
return this.Transformation * this.Parent.GetAbsoluteTransformation();
}
else
{
return this.Transformation;
}
}
Trong trường hợp này, khi node cha có thể xoay, thu nhỏ hoặc di chuyển, đứa trẻ được chuyển đổi cùng một số tiền, đó là một hành vi chính xác!
Nhưng đứa trẻ sẽ chỉ xoay quanh nguồn gốc của nó và không di chuyển xung quanh nguồn gốc của bố mẹ.
Ứng dụng:
Có một mẫu xe với bốn bánh xe. Các bánh xe có vị trí tương đối xung quanh nguồn gốc của xe. Các bánh xe có thể xoay giống như bánh xe thực. Nếu bây giờ tôi xoay xe, các bánh xe nên luôn gắn liền với nó. Trong trường hợp này chiếc xe là gốc và bánh xe là các nút con.
Ví dụ khác sẽ là mô hình của hệ mặt trời. Hành tinh xoay quanh trục của chúng, di chuyển xung quanh mặt trời, và mặt trăng di chuyển xung quanh các hành tinh.
Hóa ra ý tưởng đầu tiên của tôi là làm thế nào để làm điều đó, mà sau đó tôi coi là không phù hợp, thực sự là giải pháp! Tôi đã dành vài giờ đồng hồ để giải quyết vấn đề này. * facepalm * Cảm ơn mọi người vì đã giúp đỡ nhanh chóng và chính xác! – Lucius