Qt 6.4에는 Qt Quick 3D Physics 모듈이 기술 미리보기로 새롭게 포함된다. 이름에서 알 수 있듯이 이것은 Qt Quick 3D 위에 물리적 시뮬레이션 기능을 추가하는 모듈이다. 특히 단순한 기본 요소(구, 상자, 평면 및 캡슐)와 볼록 및 삼각형 메시 및 하이트맵을 사용하여 강체 시뮬레이션이 가능하다. 질량, 밀도, 중력 및 마찰과 같은 물리적 특성을 사용자 정의할 수 있다. 이를 통해 애니메이션을 직접 만들지 않고도 3D 장면에서 물리적으로 올바른 동작을 만들 수 있다.
장면에 물리학을 추가하는 것은 매우 쉽다. 다음 스니펫은 서로 상호 작용하는 평면과 상자가 있는 전체 장면을 만들고 렌더링하는 데 필요한 모든 것이다.
import QtQuick
import QtQuick3D
import QtQuick3D.Physics
Window {
visible: true
DynamicsWorld {}
View3D {
anchors.fill: parent
PerspectiveCamera {
position: Qt.vector3d(0, 100, 500)
clipFar: 5000
clipNear: 1
}
DirectionalLight {
eulerRotation.x: -45
eulerRotation.y: 45
castsShadow: true
}
StaticRigidBody {
position: Qt.vector3d(0, 0, 0)
eulerRotation: Qt.vector3d(-90, 0, 0)
collisionShapes: PlaneShape {}
Model {
source: "#Rectangle"
scale: Qt.vector3d(10, 10, 10)
materials: PrincipledMaterial {
baseColor: "green"
}
castsShadows: false
receivesShadows: true
}
}
DynamicRigidBody {
position: Qt.vector3d(0, 200, 0)
collisionShapes: BoxShape {}
Model {
source: "#Cube"
materials: PrincipledMaterial {
baseColor: "yellow"
}
}
}
}
}
다음과 같이 보인다.
Qt Quick 3D Physics 는 순수한 QML API이며 곧 출시될 Qt 6.4에서 기술 프리뷰로 제공된다. 문서에는 모듈의 다양한 기능을 보여주는 몇 가지 설명 예제가 함께 제공된다. 직접 사용해보고 싶다면 여기에서 시작하는 것이 가장 좋다. 이 모듈에 대해 말할 수 있는 것이 훨씬 더 많지만 한 장의 그림이 수천 단어를 말해주기 때문에 다음의 예제 비디오가 훨씬 더 많은 것을 표현할 것이라고 생각된다.
(언리얼 엔진에 비할 바는 아니지만 그 영역을 넘볼지도..😎)
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 | 운영자 | 2019.01.05 | 86906 |
15 | Qt로 XML 파싱 : Qt 6에서 업데이트된 (Parsing XML with Qt: Updates for Qt 6) [1] | j2doll | 2020.01.16 | 1019 |
14 | Qt 5.15 및 Qt 6의 출시 일정 | makersweb | 2020.04.09 | 967 |
13 | 최초의 Qt 6.0 스냅샷 제공 (First Qt 6.0 Snapshot Available) | j2doll | 2020.06.21 | 645 |
12 | Qt 6.0의 개발 호스트 및 대상 플랫폼 | makersweb | 2020.09.16 | 1017 |
11 | Qt 6에서 QList 변경사항 | makersweb | 2020.10.08 | 1051 |
10 | Qt 6의 비동기 API | makersweb | 2020.10.19 | 1274 |
9 | Qt Quick Controls 2에 네이티브 데스크탑 스타일 추가 | makersweb | 2020.11.23 | 529 |
8 | Qt5Compat 라이브러리를 사용하여 Qt5에서 Qt6로 포팅 [2] | makersweb | 2020.12.05 | 757 |
7 | Qt 5 코드를 Qt 6로 포팅하기 위해 도움이 되는 Clazy Framework | makersweb | 2021.03.01 | 987 |
6 | Qt 6 에서 프로퍼티 바인딩 | makersweb | 2021.04.03 | 823 |
5 | 싱글 샷(Single-Shot) 시그널/슬롯 연결 | makersweb | 2021.05.12 | 807 |
4 | 안드로이드용 Qt 6.2 | makersweb | 2021.10.02 | 559 |
3 | Qt 6의 C++ 프로퍼티 바인딩 예제 | makersweb | 2021.11.01 | 908 |
» | Qt 6.4에 추가될 Qt Quick 3D Physics | makersweb | 2022.08.07 | 395 |
1 | QRhi 에 대해서 | makersweb | 2023.12.29 | 697 |