총알에 대한 기본적인 질문을하는 것은 유감입니다. 그러나 문제가 있습니다. 여기에 설치가 있습니다 :Bullet에서 "질량"사용
나는 중력이없는 세계를 가지고 있습니다. 키를 누르면 세계 중심에 1x1x1 상자가 만들어집니다. 마우스 오른쪽 버튼을 클릭하면 0.05 * 0.05 * 0.05 크기의 상자가 카메라 위치에 만들어지고 찾고있는 방향으로 '촬영'됩니다. 여기서 문제가 시작됩니다.
작은 큐브가 큰 큐브에 도달하면 상호 작용이 잘못되었습니다. 작은 크기의 1/8000th 크기로 상자를 작게 만듭니다. 그러나 마치 같은 크기의 큐브를 가지고있는 것처럼 큰 큐브가 날아갑니다. 같은 질량의 두 물체를 모두 만들었 기 때문에 가정했습니다.
이것을 확인하려면 1 뉴턴 (또는 어떤 단위 총알이 사용하든간에)의 상향 력을 적용합니다. 두 개체는 같은 속도로 가속됩니다.
btMotionState *state = new btDefaultMotionState(btTransform(btQuaternion(0, 0, 0, 1), btVector3(0, 0, 0)));
btConvexHullShape* shape = new btConvexHullShape();
for(unsigned int i = 0; i < vertices.size(); ++i) {
shape->addPoint(toBt(vertices[i]));
}
shape->setMargin(0.01f);
btScalar mass = 1.f;
btVector3 inertia;
shape->calculateLocalInertia(mass, inertia);
shape->setMargin(0.01f);
btRigidBody::btRigidBodyConstructionInfo ci(mass, state, shape, inertia);
body = new btRigidBody(ci);
은 내가 btScalar mass = 1.f;
라인이 범인이라고 예상 다음과 같이 객체를 생성하기위한
내 코드입니다.
내 물체의 질량을 계산할 것으로 예상됩니까? 이것은 큐브에 대해 충분히 간단하지만 이상한 볼록한 모양은 무엇입니까? 이 일을 위해 총알을 얻을 수있는 방법이 있습니까?
그럼이 방법으로 질량 중심을 직접 계산해야 할 것입니다. 그렇지 않습니까? 그래서 (평범하지 않은 모양의 경우) 모양과 밀도를 알아야 할 필요가 있으며 시행 착오만으로는 충분하지 않습니다. – Rup
답변 해 주셔서 감사합니다. 나는 convex hull volume을 계산하는데 약간의 시간을 투자하거나,'triangleMesh' 타입 객체로 전환해야 할 것입니다. 그런 식으로 내 데이터가 설정되므로 실제로 그렇게하는 것이 좋을 것이라고 생각합니다. – BWG
@BWG 물체의 무게와 밀도보다는 물체의 무게를 아는 것이 훨씬 더 일반적입니다. 당신은 무엇을 모델링하고 있습니까? – weston