通过Qt3D模块导入STL文件:如何进行灯光和材质配置

时间:2018-06-28 14:19:20

标签: qt qml qt3d

我已使用某人的代码here on Bitbucket上传了Qt3D并打开并查看了STL文件。该代码具有与导入的STL模型相对应的实体:

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

以上sceneLoader正在通过QML对话框加载导入的STL模型:

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

但是,当我导入STL文件时,照明不起作用。无论我如何更改灯光或材质,导入的3D STL模型都是白色,而不会显示3D形状:

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

但是,当我使用Blender software将STL文件转换为Wavefront OBJ文件时,导入的OBJ文件到Qt3D应用中的显示就正确了:

Wavefront OBJ model is viewed properly


我尝试了Qt3D的许多灯光和材质功能,但无法正确查看STL模型。谁能提供适用于STL文件的Qt3D灯光/材质配置示例?

1 个答案:

答案 0 :(得分:0)

当我使用Qt 5.9.0构建/运行该应用程序时,它运行良好,即可以导入所有颜色的STL文件:

enter image description here

但是对于Qt 5.11,它不能正常工作:

enter image description here

我认为问题是SceneLoader在Qt 5.9.0和Qt 5.11中的工作方式不同。


请查看this report on Qtthis report on assimp