ИВ
June 6, 2021, 7:06 p.m.
Не работает FirstPersonCameraController
Добрый день. Осваиваю 3D, как говориться - первый блин комом.
Сделал окно в QML
- import QtQuick 2.15
- import QtQuick.Window 2.14
- import QtQuick3D 1.15
- import QtQuick.Scene3D 2.0
- Window {
- width: 640
- height: 480
- visible: true
- title: qsTr("Hello World")
- Scene3D {
- anchors.fill: parent
- Mega3DScene {}
- }
- }
И файл Mega3DScene.qml
- import QtQuick 2.15
- import Qt3D.Core 2.0
- import Qt3D.Extras 2.15
- import Qt3D.Input 2.0
- import Qt3D.Render 2.0
- import Qt3D.Logic 2.0
- import QtQuick.Window 2.14
- Entity {
- id: rootEtity
- Camera {
- id: mainCamera
- projectionType: CameraLens.PerspectiveProjection
- fieldOfView: 60.0
- aspectRatio: 16.0 / 9.0
- nearPlane: 0.1
- farPlane: 1000.0
- position: Qt.vector3d(0.0,0.0,50.0)
- upVector: Qt.vector3d(0.0,1.0,0.0)
- viewCenter: Qt.vector3d(0.0,0.0,0.0)
- }
- FirstPersonCameraController{
- camera: mainCamera
- }
- SkyboxEntity {
- baseName: "qrc:/Items/Item/skybox"
- extension: ".tga"
- }
- components: [
- RenderSettings {
- activeFrameGraph: ForwardRenderer{
- clearColor: Qt.rgba(1,1,1,1)
- camera: mainCamera
- }
- },
- InputSettings{}
- ]
- Entity{
- TorusMesh {
- id: torusMesh
- radius: 15.0
- minorRadius: 6.0
- slices: 16
- rings: 32
- }
- PhongMaterial{
- id: torusMaterial
- diffuse: Qt.rgba(0,0,1,0)
- ambient: Qt.rgba(0.15,0,0,1)
- }
- Transform {
- id: torusTransform
- translation: Qt.vector3d(0.0,0.0,0.0)
- SequentialAnimation on rotationY {
- loops: Animation.Infinite
- NumberAnimation {
- duration: 3000
- to: -360
- from: 0
- easing.type:Easing.InQuad
- }
- }
- }
- id: torusEntity
- components: [torusMesh,torusMaterial,torusTransform]
- }
- Entity{
- PointLight{
- id: pointLight01
- color: Qt.rgba(1,0.5,0.5,0)
- }
- Transform{
- id: lightTransform01
- translation: Qt.vector3d(0.0,0.0,30.0)
- }
- id: pintLightEntity01
- components: [pointLight01,lightTransform01]
- }
- Entity{
- PointLight{
- id: pointLight02
- color: Qt.rgba(1,0.5,0.5,0)
- }
- Transform{
- id: lightTransform02
- translation: Qt.vector3d(0.0,0.0,-30.0)
- }
- id: pintLightEntity
- components: [pointLight02,lightTransform02]
- }
- Entity{
- SceneLoader{
- id: sceneLoader01
- source: "qrc:/Items/Item/teaPort.obj"
- }
- Transform{
- id: lightTransform03
- translation: Qt.vector3d(0.0,-5.0,-30.0)
- scale: 0.3
- }
- components: [sceneLoader01,lightTransform03]
- }
- Entity{
- SceneLoader{
- id: sceneLoader02
- source: "qrc:/Items/Item/text.obj"
- }
- Transform{
- id: lightTransform04
- translation: Qt.vector3d(0.0,-5.0,30.0)
- scale: 0.3
- }
- components: [sceneLoader02,lightTransform04]
- }
- }
Отрисовывает, хотя и не корректно (у тора пропадает материал, почему тоже не понятно), но при этом не работает FirstPersonCameraController - не реагирует на мышь и клавиатуру.
Не понятно почему, вроде все согласно руководству.
1
99
Do you like it? Share on social networks!
- Last comments
- AKApril 1, 2025, 11:41 a.m.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPMarch 9, 2025, 4:14 p.m.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМNov. 22, 2024, 9:51 p.m.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Now discuss on the forum
- МАApril 1, 2025, 4:21 p.m.0ff763fe-4e50-455d-a3a6-5699c243b1a5_17_44_22_1.xml
- fFeb. 15, 2025, 1:46 p.m.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
Если что вот весь проект https://cloud.mail.ru/public/RyWF/wQjtfNhDe