การคำนวณความเฉื่อยเทนเซอร์
คำถามที่ซับซ้อนและยาวนิดหน่อยที่ฉันจะยอมรับฉันยังไม่ค่อยเข้าใจดีนักดังนั้นฉันจะพยายามอธิบายให้ดีที่สุดเท่าที่จะทำได้ เวอร์ชั่นย่อ:มีสูตร c ++ / physx ทั่วไปที่นั่นเพื่อคำนวณแรงเฉื่อยเทนเซอร์ตามรูปร่างของวัตถุหรือไม่? รุ่นยาว: สำหรับฟิสิกส์ของเราเราต้องระบุเทนเซอร์แรงเฉื่อย x, y และ z ในปัจจุบันวิธีที่เราทำมันก็แค่อัตราส่วนตามมวล ดังนั้นหากวัตถุยาวบนแกน X และบางบน Y และ Z และมวลเป็น 10,000 เราจะตั้งค่า Z และ Y เป็น 7000 และ X ถึง 3000 (นี่ไม่แน่นอน แต่เพื่อให้ความคิด) วิธีนี้ใช้งานได้ค่อนข้างดี แต่ปัญหาที่ใหญ่ที่สุดของเราคือเมื่อมีความไม่แน่นอนของข้อต่อบางแห่งเราต้องคาดเดาที่เทนเซอร์จนกว่าเราจะรู้ว่าอะไรดีที่สุด สิ่งนี้อาจใช้เวลานานมากหากเรามีการจำลองทางฟิสิกส์ที่ยิ่งใหญ่มากและข้อต่อหนึ่งใน 20 ข้อทำให้ผู้อื่นเสียเสถียรภาพ สิ่งที่ฉันกำลังทำคือฟังก์ชั่นที่จะใช้กล่องขอบเขตของวัตถุและหวังว่าจะคำนวณเมตริกซ์ที่ค่อนข้างแม่นยำ ฉันใช้คณิตศาสตร์บางส่วนจากhttp://en.wikipedia.org/wiki/List_of_moment_of_inertia_tensorsและสร้างฟังก์ชั่นที่ทำงานคล้ายกับการหมุนข้างล่างนี้ หรือถ้าการหมุนสิ้นสุดแล้วเช่นนี้ ดังนั้นนี่ดูเหมือนจะให้ผลลัพธ์ที่คล้ายกับวิธีที่เราทำ แต่ฉันไม่ต้องการเปลี่ยนมาใช้วิธีนี้โดยไม่ทำให้แน่ใจว่ามันจะใช้งานได้ทั่วไป ด้านล่างเป็นรหัสสำหรับฟังก์ชั่นของฉันตามภาพแรกที่มีลูกบาศก์และเดือยกลาง NxVec3 CalculateInertiaTensor( VisBoundingBox_cl boundingBox, float …