Импорт файлов STL модулем Qt3D: как выполнить настройку освещения и материала - PullRequest
0 голосов
/ 28 июня 2018

Я использовал чей-то загруженный код здесь, на Bitbucket , чтобы открывать и просматривать файлы STL с помощью Qt3D. Код имеет сущность, которая соответствует импортированной модели STL:

        Entity
        {
            id: monkeyEntity
            components: [
                SceneLoader
                {
                    id: sceneLoader
                }
            ]
        }

Выше sceneLoader загружает импортированную модель STL с помощью диалогового окна QML:

FileDialog
{
    id: fileDialog
    onAccepted:
    {
        sceneLoader.source = fileDialog.fileUrl
    }
}

Но когда я импортирую файлы STL, освещение не работает. Независимо от того, как я меняю освещение или материал, импортированная 3D-модель STL будет белого цвета без отображения 3D-формы:

STL model is all white, not showing the 3D shape

Однако, когда я использую программное обеспечение Blender для преобразования файла STL в файл Wavefront OBJ, импортированный файл OBJ в приложение Qt3D отображается правильно:

Wavefront OBJ model is viewed properly


Я испробовал много возможностей освещения и материалов в Qt3D, но не смог правильно рассмотреть модель STL. Кто-нибудь может привести пример конфигурации света / материала Qt3D, которая будет работать для файлов STL?

1 Ответ

0 голосов
/ 10 июля 2018

Когда я собираю / запускаю приложение с Qt 5.9.0, оно работает нормально, то есть может импортировать файлы STL со всеми цветами:

enter image description here

Однако в Qt 5.11 он не работает нормально:

enter image description here

Я думаю, что проблема SceneLoader, которая работает по-разному в Qt 5.9.0 и Qt 5.11.


Пожалуйста, посмотрите на этот отчет о Qt и этот отчет о assimp

...