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