Я смотрел везде, но нет никаких руководств или объяснений, как использовать QSkyBoxEntity.
Я создал Entity и заполнил его трансформацией (установил перевод и 3D-масштаб). Также изменено имя и расширение.
Когда я пытаюсь запустить программу, она говорит
"Qt3D.Renderer.OpenGL.Backend: не удалось найти подходящий модуль текстуры для "skyboxTexture""
Я проверял несколько раз и пробовал разные png-файлы, но безуспешно. Мое изображение (я знаю, что это фальшивая прозрачность, но ведь это ничего не должно менять, верно?)
А вот часть кода:
Qt3DCore::QEntity *resultEntity = new Qt3DCore::QEntity;
Qt3DExtras::QSkyboxEntity *skyboxEntity = new Qt3DExtras::QSkyboxEntity(resultEntity);
skyboxEntity->setBaseName("skybox"); //I tried using path as well
skyboxEntity->setExtension("png");
Qt3DCore::QTransform *skyTransform = new Qt3DCore::QTransform(skyboxEntity);
skyTransform->setTranslation(QVector3D(0.0f,0.0f,0.0f));
skyTransform->setScale3D(QVector3D(0.1f,0.1f,0.1f));
skyboxEntity->addComponent(skyTransform);
Похоже, он не находит текстуру скайбокса. Вы использовали абсолютный путь, когда говорите: «Я тоже пытался использовать путь»? Путь, который вы устанавливаете, относится к пути сборки, т.е. это не то место, где лежит ваш файл C++.
В качестве альтернативы вы можете использовать файл ресурсов, а затем загрузить изображение, используя
"qrc:/[prefix]/[filename without extension]"
Вы также можете ознакомиться с ручным тестом Qt3D SkyBox здесь:
https://github.com/qt/qt3d/tree/dev/tests/manual/skybox
Ах хорошо. Возможно, затем опубликуйте это как ответ для других людей, если они столкнутся с этим.
@Florian_Blume нужно было ждать 2 дня для этого, но, тем не менее, документация говорит, что вы можете использовать png и другие файлы для скайбокса.
Важно правильно называть файлы, чтобы скайбокс работал и использовал ресурсный файл для хранения.
Я рекомендую .tga, но и другие форматы тоже должны работать.
Вы можете прочитать об этом здесь: https://doc.qt.io/qt-6/qml-qt3d-extras-skyboxentity.html
А вот пример, как это должно выглядеть
Я тоже пробовал это, но у меня это просто не сработало с png. Я уже исправил это, добавив 6 файлов tga с разными частями скайбокса.