优化三个JS中的Obj加载

时间:2015-11-18 15:59:51

标签: 3d three.js

我正在尝试从THREE JS OBJMTLLoader优化OBJ的加载。我通过标准技术加载obj,我试图通过克隆OBJ中的现有材料来应用ShaderMaterial。

这是正确的技术吗?目标是通过GPU加载OBJ,而不是使用CPU周期。

我也尝试使用WebGL代码,但这需要时间。这是正确的方法吗?

以下是虚拟代码。我知道必须添加一些与制服和属性相关的ShaderMaterial代码。

public JSONArray getJSON(File inputFile) throws IOException, JSONException {
    String content = FileUtils.readFileToString(inputFile);

    content = content.substring(4, content.length() - 1);

    JSONObject jsonObject = new JSONObject(content);

    String[] names = JSONObject.getNames(jsonObject);

    JSONArray jsonArray = jsonObject.toJSONArray(new JSONArray(names));

    return jsonArray;
}

1 个答案:

答案 0 :(得分:0)

如果您的意思是“我想优化加载时间”,那么您应该做的第一件事就是将文本OBJ文件转换为二进制文件和json存根。您可以使用THREE.js提供的工具,您可以在../three.js/utils/converters/obj/convert_obj.py中找到它 - 在您的obj文件上运行它,它将生成.bin(缓冲区)和.js(材料) )相当于。然后,您可以使用THREE的JSONLoaderBinaryLoader对象来加载获取模型。它将更多更快。更详细的文档位于.py文件的标题中