我'm trying to load OBJ models in runtime using Unity and C#. I'使用Unity的Wiki解析器"FastOBJImporter" http://wiki.unity3d.com/index.php/FastObjImporter来解析OBJ文件 . 我可以't load a mesh with more than 65,534 vertices since it'是一个Unity限制(http://answers.unity3d.com/questions/471639/mesh-with-more-than-65000-vertices.html)
我的想法是将一个大的网格路径传递给FastOBJImporter,并生成多个顶点小于65k的GameObject,以便加载更大的模型 .
有谁知道如何安全地修改FastOBJimporter以返回子网格列表而不是大网格?欢迎任何其他解决方案/想法 .
1 回答
This script使用STL模型文件做你想要的 . 它通过在每次达到65k顶点时将网格划分为子网格来导入模型,无论多大 . STL文件可以转换为OBJ文件,因此,我想,使用一个简单的转换器,或改变脚本,可以做到这一点 .
下面的代码(我不承担代码的功劳) .
另一种解决方案可能是dynamically combine vertices that share the same space . 当您在运行时引入模型时,可以组合彼此在特定阈值内的顶点,以将总顶点数减少到65k以下 .
或者,使用Mesh Simplify等工具降低细节级别,允许您优化性能并减少65k以下的多边形数量,以导入网格而不超过65k限制 . 有不同的,更实惠的选择,但这似乎是更好的选择之一 .