Qt3D模块导入STL文件:如何配置灯光和material

Import STL files by Qt3D module: how to do configuration of light and material

我已经使用某人上传的代码 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文件时,灯光不工作。不管我怎么调光还是material导入的3D STL模型都是白的,看不出3D的形状:

然而,当我使用 Blender software 将 STL 文件转换为 Wavefront OBJ 文件时,导入到 Qt3D 应用程序中的 OBJ 文件正确显示:


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

当我 build/run 使用 Qt 5.9.0 的应用程序时,它工作正常,即它可以导入所有颜色的 STL 文件:

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

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


请看this report on Qt and this report on assimp