JackieWu
JackieWu
请问你使用的是什么环境呢? 这个代码在Linux和Windows上能成功编译,我刚才也测试过,在Linux上使用Qt5.14.1, 能成功编译并且运行,代码直接从github clone下来,不需要做任何修改。需要下载glm这个库。
可能需要把shadow build的勾取消掉,我记得没有额外的配置了。 你编译的时候,遇到的编译错误信息是怎样的呢?可以粘贴到这里吗?
我现在没有Windows的开发环境可以测试。 Linux上是可以编译的,代码是没有问题的。 `“QOpenGLWidget”: No such file or directory` 看上去是Qt配置的问题,可以尝试这个解决方法: https://blog.csdn.net/weixin_30267697/article/details/95825706 这里有编译好的Windows下的二进制版本: https://github.com/wkcn/3dviewer/releases
@BL961118 已经修复这个Bug了,是因为readlmtl.cpp没有加进*.pro文件里。 谢谢您~
如果直接使用图片*.png等格式贴图,需要选择“纹理模式”; 如果使用*.mtl进行贴图,需要选择“材质模式”。 [Releases](https://github.com/wkcn/3dviewer/releases)下的二进制文件可以正常在Windows10下运行。 我最新编译的Linux版可以正常显示纹理,但无法显示材质。有可能是最新版的Qt无法加载dds等文件,正在检查中。
已经查到了原因,是因为5.8以上版本的Qt默认不能加载*.dds文件。 纹理在这一行加载: https://github.com/wkcn/3dviewer/blob/e42dfe2a9f7862d861977a730f9420928663d6f6/src/shape.cpp#L5-L10 Qt5的文档中:https://doc.qt.io/qt-5/qtimageformats-index.html > Note: For security reasons, the Direct Draw Surface (DDS) handler is not built by default since Qt 5.8. Users who still want this handler can...
最简单的方法是使用5.8版本以下的Qt. 或者将贴图转换为Qt支持的格式。 如果要用5.8以上(含5.8)版本的Qt, 需要下载Qt的源码编译Qt, 这个比较麻烦。
我可以写一个dds转tiff的脚本
5.8版本以上的都不支持dds文件。Qt的发行版本方面我不清楚。
我测试了一下,把贴图转换成*.png格式,是可以正常显示的。但是*.tiff, *.tga, *.webp等格式是无法读取的。原因是新版Qt的QImage无法读取这些格式的图片。