Before going into detail, the following diagram shows the most important data structures and computation stages in the Bullet physics pipeline. This pipeline is executed from left to right, starting by applying gravity, and ending by position integration, updating the world transform.
자세히 설명하기 전에 다음 다이어그램은 Bullet 물리 파이프 라인에서 가장 중요한 데이터 구조와 계산 단계를 보여줍니다. 이 파이프 라인은 왼쪽에서 오른쪽으로 실행되며 중력을 적용하여 시작하고 위치 통합으로 끝나며 세계 변환을 업데이트합니다.
The entire physics pipeline computation and its data structures are represented in Bullet by a dynamics world. When performing ‘stepSimulation’ on the dynamics world, all the above stages are executed. The default dynamics world implementation is the btDiscreteDynamicsWorld.
Bullet lets the developer choose several parts of the dynamics world explicitly, such as broadphase collision detection, narrowphase collision detection (dispatcher) and constraint solver.
전체 물리 파이프 라인 계산 및 데이터 구조는 역학 세계로 Bullet에 표시됩니다. 역학 세계에서 'stepSimulation'을 수행하면 위의 모든 단계가 실행됩니다. 기본 dynamics 세계 구현은 btDiscreteDynamicsWorld입니다.
Bullet을 사용하면 개발자가 광범위 위상 충돌 감지, 협 위상 충돌 감지 (디스패처) 및 제약 솔버와 같은 역학 세계의 여러 부분을 명시 적으로 선택할 수 있습니다.
Integration overview
If you want to use Bullet in your own 3D application, it is best to follow the steps in the HelloWorld demo, located in Bullet/examples/HelloWorld. In a nutshell:
자체 3D 응용 프로그램에서 Bullet을 사용하려면 Bullet / examples / HelloWorld에있는 HelloWorld 데모의 단계를 따르는 것이 가장 좋습니다. 간단히 말해서
• Create a btDiscreteDynamicsWorld or btSoftRigidDynamicsWorld
These classes, derived from btDynamicsWorld , provide a high level interface that manages your physics objects and constraints. It also implements the update of all objects each frame. +
btDynamicsWorld에서 파생 된 이러한 클래스는 물리 개체 및 제약 조건을 관리하는 높은 수준의 인터페이스를 제공합니다. 또한 각 프레임마다 모든 개체의 업데이트를 구현합니다.
• Create a btRigidBody and add it to the btDynamicsWorld +
To construct a btRigidBody or btCollisionObject, you need to provide: +
btRigidBody 또는 btCollisionObject를 생성하려면 다음을 제공해야합니다.
• Mass, positive for dynamics moving objects and 0 for static objects
• CollisionShape, like a Box, Sphere, Cone, Convex Hull or Triangle Mesh
• Material properties like friction and restitution
Update the simulation each frame:
• stepSimulation
Call the stepSimulation on the dynamics world. The btDiscreteDynamicsWorld automatically takes into account variable timestep by performing interpolation instead of simulation for small timesteps. It uses an internal fixed timestep of 60 Hertz. stepSimulation will perform collision detection and physics simulation. It updates the world transform for active objecs by calling the btMotionState’s setWorldTransform.
역학 세계에 대한 stepSimulation을 호출하십시오. btDiscreteDynamicsWorld는 작은 시간 단계에 대한 시뮬레이션 대신 보간을 수행하여 가변 시간 단계를 자동으로 고려합니다. 60Hz의 내부 고정 타임 스텝을 사용합니다. stepSimulation은 충돌 감지 및 물리 시뮬레이션을 수행합니다. btMotionState의 setWorldTransform을 호출하여 활성 개체에 대한 세계 변환을 업데이트합니다.
The next chapters will provide more information about collision detection and rigid body dynamics. A lot of the details are demonstrated in the Bullet/examples. If you can’t find certain functionality, please visit the physics forum on the Bullet website at http://bulletphysics.orgbulletphysics.org
다음 장에서는 충돌 감지 및 강체 역학에 대한 자세한 정보를 제공합니다. 많은 세부 사항이 Bullet / 예제에 나와 있습니다. 특정 기능을 찾을 수없는 경우 Bullet 웹 사이트 (http://bulletphysics.org)의 물리 포럼을 방문하세요.
'Bullet Physics' 카테고리의 다른 글
Collision Filtering (selective collisions) (0) | 2020.12.02 |
---|---|
Bullet Collision Detection (0) | 2020.12.02 |
Basic Data Types and Math Library (0) | 2020.12.02 |
Library Overview (0) | 2020.12.02 |
Introduction (0) | 2020.12.02 |
댓글