行'1'上未实现的OBJ格式语句's错误

问题描述

嗨,我要使用Pywavefront库导入OBJ 3d文件,并最终在另一个3d场景上显示此3d模型。我对这个库和3d模型进行了很多研究。

import pywavefront
import pywavefront.visualization
from pywavefront import visualization

from pywavefront import material
from pywavefront import mesh
from pywavefront import parser
import pywavefront.texture as texture 

我的obj文件名为“ low-poly-fox-by-pixelmannen”,我从Clara.io网站上沿着其MTL文件下载了这两个文件,并将它们添加到了pycharm Working Dir中。 我将这个obj文件导入为的代码

fox = pywavefront.Wavefront('low-poly-fox-by-pixelmannen.obj',collect_faces=True)

我想将此obj文件显示为pycharm,但运行后,程序仅显示一个空白色屏幕并显示错误

在行“ 1”上未实现的OBJ格式语句“ s”

重要的一点是:当pycharm运行并且出现白屏时pycharm 仍在思考和pycharm崩溃。

我从昨天开始被混淆,并搜索了类似的错误,但没有找到关于我的问题的任何解决方案或评论。请告诉我这个错误是什么意思?并指导我解决问题,并最终显示3d OBJ文件

解决方法

这意味着您对包含平滑着色语句的文件有问题(阅读此处了解更多https://en.wikipedia.org/wiki/Wavefront_.obj_file)。 Pywavefront 不知道它是什么(正如我所见,它没有在他们的解析器中实现)。 所以你可以注释这一行(#s 1),这样它就不会被解析。

关于可视化,我认为你的问题不在于这个错误。根据他们的主要解析器类,只有当您添加到 loader strict=True 参数(默认为 False)时,它才会引发错误。所以我认为你的模型是在没有平滑着色的情况下加载的,但是可视化的问题与该错误并不对应(它只是警告你 - 已记录)。 我可以假设您没有安装或导入一些提供可视化的模块。

你大约 2 个月前问过这个问题,如果你找到了解决方案,很高兴分享它:)