1

如何从 gwt-g3d ( http://code.google.com/p/gwt-g3d/ ) 中的 JSON 字符串创建网格 (StaticMesh 的实例)?

4

1 回答 1

1

如果 JSON 字符串是静态的,您可以将其作为 ExternalMeshResource 加载(参见http://code.google.com/p/gwt-g3d/source/browse/trunk/gwt-g3d-test/src/gwt/g3d/ test/client/Lesson14Demo.java关于如何使用这个资源)。

如果没有,您可以使用JSONParser.parse(jsonString)获取 JSON 值对象,然后执行类似的操作

Float32Array.create(jsonObj.get(fieldName).isArray().getJavaScriptObject().<JsArrayNumber>cast());

to 得到一个TypeArray你可以传递给StaticMesh. fieldName以上取决于您的 json 字符串对象。例如,如果您的 json 看起来像:

{
  "vertexPositions" : [0, 1, 2, ...]
  "vertexNormals" : [0, 1, 0, ...]
  "indices" : [0, 1, 2, ...]
}

那么你fieldName可以是“vertexPositions”、“vertexNormals”和“indices”。(请注意,索引数组通常是 typeUint16Array而不是Float32Array)。有关更多信息,请参见AbstractMeshResource 的实现

于 2011-04-16T17:23:55.937 回答