Qt下使用OpenGL读取和显示3ds模型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt下使用OpenGL读取和显示3ds模型相关的知识,希望对你有一定的参考价值。

我从网上下载过实现的代码 但是很奇怪贴图不显示 只有结构 所以哪位大哥能提供个正确的类,要能正常显示贴图 要QT下的 能正常运行的话 还能再加追加分

能显示模型说明你的类已经可以使用了,问题应该在于你的图片的位置的问题,你可能将图片放置的文件夹搞错了,你试试将模型、贴图、exe都放在同一个目录下,然后通过双击exe运行程序,看能不能显示贴图(不要通过qtcreator,因为它有个个默认的路径)。追问

显示贴图现在已经弄好了 但是还有有个问题 就是只能显示贴图 不能显示画笔的颜色 即有贴图的地方正常 没有贴图的地方颜色不正确...

参考技术A 我有android下的追问

额 想要QT平台的

如何使用 Qt3D 加载 3DS 文件

【中文标题】如何使用 Qt3D 加载 3DS 文件【英文标题】:How to load 3DS file using Qt3D 【发布时间】:2014-08-08 08:58:51 【问题描述】:

我使用 Qt3D 成功将 .OBJ 模型加载到 Qt 中,但无法加载 .3DS 模型。我只是按照here的教程进行操作。

我的环境是:Windows7、Qt5.3.1、mingw32。

显示错误:Asset importer error: Chunk is too large

请给点建议。

【问题讨论】:

我看到它说,这发生在 Windows 上,但不在 Linux 上。您可以尝试安装 Linux VM 并在那里运行代码,看看它是否在那里工作。我不记得看到过解决方案... 谢谢,但我希望它在 Windows 上运行。 我的意思是在 Linux 上进行测试以确认代码和文件是有效的,这确实是 Windows 特有的问题。 【参考方案1】:

看起来,问题与包含在 Qt3D 中的 Open Asset Import Library (short name: Assimp) 有关。

另外,请注意,您在 Linux 上很有可能不会遇到此类问题。

这里解决了类似的问题:http://sourceforge.net/p/assimp/discussion/817654/thread/a246ba12/

看起来,您需要使用参数-mno-ms-bitfields 重建Qt3D(根据Qt3D Installation, Windows (MinGW))。尝试将下一行添加到qt3d.pro

QMAKE_CXXFLAGS += -mno-ms-bitfields

希望对你有帮助!

【讨论】:

谢谢我重新安装Qt并重建Qt3d,像这样: mingw32-make -j 3 install CFLAGS='-mno-ms-bitfields' 但还是不行,编译成功,一样错误。 抱歉,我无法测试。我可以建议您从“清除页面”开始。另外,你为什么没有按照我描述的那样做?它不会编译吗? 很抱歉,我没有明白重点,我错过了一些步骤吗?编译成功,但还是不行。

以上是关于Qt下使用OpenGL读取和显示3ds模型的主要内容,如果未能解决你的问题,请参考以下文章

OpenGl读取导入3D模型并且添加鼠标移动旋转显示

Qt中怎么加载并显示3d模型啊?

两种方法在Qt中使用OpenGL库加载stl三维模型

Qt 5.5 和 OpenGL:尝试调用 paintGL() 时引发读取访问冲突异常

OpenGL奇怪的渲染行为(闪烁的面孔)

QT和OpenGL如何正确集成并显示纹理