이 페이지에서

PhysicsWorld QML Type

물리 시뮬레이션을 제어합니다. 더 보기...

Import Statement: import QtQuick3D.Physics
Since: Qt 6.4

속성

신호

상세 설명

PhysicsWorld 유형은 물리 시뮬레이션을 제어합니다. 이 노드는 물리 월드의 인스턴스를 생성하고 그 속성을 정의하는 데 사용됩니다. 물리 월드는 하나만 존재할 수 있습니다. QML 내의 모든 충돌 노드는 물리 월드에 자동으로 추가됩니다.

속성 설명

defaultDensity : real

이 속성은 동적 객체의 기본 밀도를 정의하며, 단위는 킬로그램/세제곱 단위입니다. 이는 한 변의 길이가 1 인 정육면체의 무게와 같습니다.

기본값은 0.001 이며, 이는 1 g/cm³에 해당합니다. 즉, 물의 밀도입니다. 측정 단위가 미터인 경우, 적절한 값은 1000 입니다. 양수 값만 허용된다는 점에 유의하십시오.

범위: (0, inf]

enableCCD : bool

이 속성은 지속적인 충돌 감지를 활성화합니다. 이를 통해 물체가 고속으로 다른 물체를 관통하는 현상(‘터널링’이라고도 함)의 위험을 줄일 수 있습니다. 기본값은 ‘ false ’입니다.

경고: CCD가 활성화된 상태에서 트리거 바디를사용하는 것은 지원되지 않으며, 이로 인해 트리거 보고가 누락되거나 잘못된 보고가 발생할 수 있습니다.

forceDebugDraw : bool

이 속성은 물리 세계에 있는 모든 활성 도형에 대한 디버그 렌더링을 활성화합니다. 기본값은 ` false`입니다.

gravity : vector3d

이 속성은 물리 세계의 중력 벡터를 정의합니다. 기본값은 (0, -981, 0) 입니다. 측정 단위가 미터이고 지구 중력을 시뮬레이션하는 경우, 값을 Qt.vector3d(0, -9.81, 0) 로 설정하십시오.

maximumTimestep : real

이 속성은 시뮬레이션의 최대 시간 단위를 밀리초 단위로 정의합니다. 기본값은 33.333 입니다.

범위: [0, inf]

참고: 시뮬레이션시간 단계는 렌더링과 동기화되어 작동합니다. 즉, 렌더링된 프레임이 완료된 후에만 새로운 시뮬레이션 프레임이 시작됩니다. 따라서 렌더링된 프레임 하나당 최대 하나의 시뮬레이션 프레임만 실행됩니다.

minimumTimestep : real

이 속성은 시뮬레이션의 최소 시간 단위를 밀리초 단위로 정의합니다. 기본값은 1 입니다.

범위: [0, maximumTimestep]

참고: 시뮬레이션 시간단계는 렌더링과 연동되어 작동합니다. 즉, 렌더링된 프레임이 완료된 후에만 새로운 시뮬레이션 프레임이 시작됩니다. 따라서 렌더링된 프레임 하나당 최대 하나의 시뮬레이션 프레임만 실행됩니다.

numThreads : int [since 6.7]

이 속성은 물리적 시뮬레이션에 사용되는 스레드 수를 정의합니다. 값의 범위는 다음과 같이 해석됩니다:

값범위설명
음수[-inf, -1]스레드 수 자동 설정. 애플리케이션이 시스템에서 스레드 수를 조회하려고 시도합니다.
0{0}스레딩 없음. 시뮬레이션이 순차적으로 실행됩니다.
양수[1, 256]지정된 스레드 수. 256을 초과하는 값은 제한됩니다.

기본값은 -1 이며, 이는 스레드 수를 자동으로 설정함을 의미합니다.

참고: 씬 실행이 시작된후에는 스레드 수를 변경할 수 없습니다.

이 속성은 Qt 6.7에서 도입되었습니다.

reportKinematicKinematicCollisions : bool [since 6.7]

이 속성은 운동학적 동적 강체 쌍 간의 충돌이 접촉 보고서를 트리거할지 여부를 제어합니다.

기본값은 ‘ false ’입니다.

참고: 씬 실행이 시작된후에는 이 설정을 변경할 수 없습니다.

이 속성은 Qt 6.7에서 도입되었습니다.

PhysicsWorld::reportStaticKinematicCollisions, DynamicRigidBody 및 PhysicsNode::bodyContact도 참조하십시오 .

reportStaticKinematicCollisions : bool [since 6.7]

이 속성은 정적 강체와 운동학적 동적 강체 간의 충돌이 접촉 보고서를 트리거할지 여부를 제어합니다.

기본값은 ‘ false ’입니다.

참고: 씬의 실행이 시작된후에는 이 설정을 변경할 수 없습니다.

이 속성은 Qt 6.7에서 도입되었습니다.

PhysicsWorld::reportKinematicKinematicCollisions, StaticRigidBody, DynamicRigidBody 및 PhysicsNode::bodyContact도 참조하십시오 .

running : bool

이 속성은 물리적 시뮬레이션을 시작하거나 중지합니다. 기본값은 ‘ true ’입니다.

scene : Node

이 속성은 물리적 시뮬레이션의 모든 노드를 포함하는 최상위 노드를 정의합니다. 이 노드의 상위 노드에 해당하는 모든 물리 객체는 이 PhysicsWorld 의 일부로 간주됩니다.

참고: 여러 시뮬레이션 노드( PhysicsWorld )에 동일한 장면 노드(scene node)를사용하는 것은 지원되지 않습니다.

typicalLength : real

이 속성은 시뮬레이션 내 객체의 대략적인 크기를 정의합니다. 이는 특정 길이 관련 허용 오차를 추정하는 데 사용됩니다. 이 크기보다 훨씬 작거나 큰 객체는 제대로 작동하지 않을 수 있습니다. 기본값은 100 입니다.

범위: [0, inf]

typicalSpeed : real

이 속성은 시뮬레이션 내 물체의 속도의 일반적인 크기를 정의합니다. 이는 충돌 속도를 바탕으로 접촉을 ‘튀어오르는’ 상황으로 처리할지, 아니면 ‘정지’ 상태로 처리할지 판단하는 데 사용되며, 이 임계값 미만의 운동 에너지를 가진 물체는 시뮬레이션에서 ‘휴면’ 상태로 전환될 수 있습니다.

일반적인 물리적 환경에서는 중력에 의해 1초 동안 떨어지는 물체의 대략적인 속도를 설정하는 것이 좋습니다. 기본값은 1000 입니다.

범위: [0, inf]

viewport : Node

이 속성은 ‘ forceDebugDraw ’가 활성화된 경우 디버그 컴포넌트가 그려질 뷰포트를 정의합니다. 이 속성이 설정되지 않은 경우 ‘ scene ’ 노드가 사용됩니다.

forceDebugDraw 및 scene항목도 참조하십시오 .

신호 문서

[since 6.5] frameDone(float timestep)

이 신호는 물리 시뮬레이션이 한 프레임의 시뮬레이션을 완료했을 때 발생합니다. timestep 매개변수는 시뮬레이션에서 해당 시간 단계가 지속된 시간을 밀리초 단위로 나타냅니다.

참고: 해당핸들러는 ` onFrameDone`입니다.

이 신호는 Qt 6.5에서 도입되었습니다.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.