如何从 gwt-g3d 中的 JSON 字符串创建 WebGL 网格?

发布于 2024-11-01 11:30:44 字数 119 浏览 4 评论 0原文

如何从 gwt-g3d (http: //code.google.com/p/gwt-g3d/)?

How can I create a mesh (instance of StaticMesh) from a JSON string in gwt-g3d (http://code.google.com/p/gwt-g3d/)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一笑百媚生 2024-11-08 11:30:44

如果 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());

获取可传递给 StaticMesh 的 TypeArray 之类的操作。上面的 fieldName 取决于您的 json 字符串对象。例如,如果您的 json 类似于:

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

那么您的 fieldName 可以是“vertexPositions”、“vertexNormals”和“indices”。 (请注意,索引数组通常为 Uint16Array 类型,而不是 Float32Array)。请参阅 AbstractMeshResource的实现了解更多信息

If the JSON string is static, you can load it as an ExternalMeshResource (see http://code.google.com/p/gwt-g3d/source/browse/trunk/gwt-g3d-test/src/gwt/g3d/test/client/Lesson14Demo.java on how to use this resource).

If not, you can use JSONParser.parse(jsonString) to get a JSON value object, then do something like

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

to gets a TypeArray that you can pass to StaticMesh. The fieldName above depends on your json string object. For example, if you json looks something like:

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

then your fieldName can be "vertexPositions", "vertexNormals", and "indices". (Note that the indices array is usually of type Uint16Array instead of Float32Array). See the implementation of AbstractMeshResource for more information

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文