我有一个解析 .3ds 文件并上传网格的代码。我有几个 .3ds 文件,但我的代码中有一个错误。所以现在我正在尝试生成一个简单的 .3ds 文件(又名单个三角形或立方体),但我不确定如何创建一个 .3ds 文件。
我目前拥有的文件是加密的。我在其他网站上找到了几个,他们没有更简单的模型。
你如何为一个简单的三角形和一个立方体制作 .3ds 文件?有没有可以制作的现有软件?或者我可以为它写一个脚本吗?
创建 3ds 文件比解析它更难
因为您需要按顺序使用 3D 工作室所需的所有块,没有任何错误。在解析中,您只需要几何、矩阵和纹理,可以忽略其余部分。3ds文件格式未打开,仅部分解码/记录,因此这可能是一个很难正确处理的问题。
我将专注于调试解析器本身:
下载尽可能多的 3ds 文件
例如,TurboSquid有很多免费的 3ds 文件,只需选择以下过滤器:
按类型排序
开始解码最简单的(仅几何)
你会看到有些模型会很好,有些则不会。因此,对那些可以的和哪些不正常的进行排序,看看他们使用了哪些块,这将帮助您确定问题出在哪里。最好在某处输出每个文件已使用块的列表,以便您可以更轻松地确定要编码哪些块以及忽略哪些块。
可悲的是,我的 C++ 3ds 解析器大约是 54 KB
这几乎是这里答案正文限制的两倍,所以我不能直接在这里发布。这也意味着你不能在这里发布你的整个代码(只是块枚举几乎是 30KB)所以尽量只关注重要的事情。当您遇到特定问题的3ds文件地址 + 输出图像 + 您正在使用和忽略的块列表时,我们实际上可以提供帮助。
几年前我编写了这个代码,它是我的一个更大的库的一部分,所以代码并不完整。它仅包含 3ds 解析部分 + 导出到基于 OpenGL VBO 的几何图形类,但它应该足以与您的代码进行比较以了解问题出在哪里。这个解析器也不是 100% 工作,仍然有一些文件不能正确支持(因此是目录名称)。查看load
和save
成员函数...