通过 Qt3D 模块导入 STL 文件:如何配置灯光和材质
Posted
技术标签:
【中文标题】通过 Qt3D 模块导入 STL 文件:如何配置灯光和材质【英文标题】:Import STL files by Qt3D module: how to do configuration of light and material 【发布时间】:2018-06-28 14:19:20 【问题描述】:我使用某人上传的代码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 形状:
但是,当我使用Blender software 将 STL 文件转换为 Wavefront OBJ 文件时,导入到 Qt3D 应用程序中的 OBJ 文件正确显示:
我尝试了 Qt3D 的许多灯光和材质特性,但无法正确查看 STL 模型。谁能提供一个适用于 STL 文件的 Qt3D 光/材质配置示例?
【问题讨论】:
【参考方案1】:当我使用 Qt 5.9.0 构建/运行应用程序时,它运行良好,即它可以导入具有所有颜色的 STL 文件:
但是对于 Qt 5.11,它不能正常工作:
我认为问题在于 SceneLoader
在 Qt 5.9.0 和 Qt 5.11 中的工作方式不同。
请看this report on Qt和this report on assimp
【讨论】:
以上是关于通过 Qt3D 模块导入 STL 文件:如何配置灯光和材质的主要内容,如果未能解决你的问题,请参考以下文章