是否可以正常启动程序
您好,我下载了您的文件进行了尝试,搭建好了环境,但是运行出现了比较多的语法错误。请问这个程序本身是可以正常运行的吗?还是需要做一些其他的修改? 希望您能给予一些帮助
请问你使用的是什么环境呢?
这个代码在Linux和Windows上能成功编译,我刚才也测试过,在Linux上使用Qt5.14.1, 能成功编译并且运行,代码直接从github clone下来,不需要做任何修改。需要下载glm这个库。
我使用的是win10系统,安装了vs2012和QT5.0.2,glm库也已经加进来了。请问您的windows上是如何配置的呢?能否告知一下,我作为参考再试试
可能需要把shadow build的勾取消掉,我记得没有额外的配置了。
你编译的时候,遇到的编译错误信息是怎样的呢?可以粘贴到这里吗?
第一次运行的时候出现了这个报错。我查看了我的QT安装目录下没有找到这个文件。不知道是不是版本问题呢 error C1083: 无法打开包括文件:“QOpenGLWidget”: No such file or directory
我现在没有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
非常感谢您的帮助已经解决了这一问题。但在运行时出现了这样的报错
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 "void __cdecl read_mtl(class std::basic_string<char,struct std::char_traits
@BL961118 已经修复这个Bug了,是因为readlmtl.cpp没有加进*.pro文件里。 谢谢您~
十分感谢您的及时回复和帮助,工程已经顺利运行(windows的配置可参考VS2015+QT5.9.0)
我导入了一个包含材质的obj模型,点线面的信息可以显示出来,但是材质没有加载进来。 不知道这是因为什么导致的。再次请教您一下。
如果直接使用图片*.png等格式贴图,需要选择“纹理模式”; 如果使用*.mtl进行贴图,需要选择“材质模式”。
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 build it from the source project.
不好意思,请问可以教一下如何构建这个DDS吗?对于QT还不是很熟悉,自己没有研究出来。谢谢
最简单的方法是使用5.8版本以下的Qt. 或者将贴图转换为Qt支持的格式。 如果要用5.8以上(含5.8)版本的Qt, 需要下载Qt的源码编译Qt, 这个比较麻烦。
我可以写一个dds转tiff的脚本
在官网上QT版本直接从5.1跳至5.9,中间的版本找不到下载资源,所以用了高版本。不知道为什么会出现这种现象。
5.8版本以上的都不支持dds文件。Qt的发行版本方面我不清楚。
我测试了一下,把贴图转换成*.png格式,是可以正常显示的。但是*.tiff, *.tga, *.webp等格式是无法读取的。原因是新版Qt的QImage无法读取这些格式的图片。
我的模型一共是包含三个文件obj、mtl、jpg(在mtl里用到的纹理图片),点击添加模型加载进来以后就丢失了纹理,在纹理模式和材质模式下都没有显示。这是不是说明读取纹理失败了呢