XML3D:导出场景

时间:2015-06-11 20:35:51

标签: javascript 3d xml3d

我需要将场景导出为单个STL文件。 虽然它很容易导出每个单<asset>/<mesh>/<model>导出整个场景与转换它的另一个故事。这需要在导出之前将世界矩阵变换应用于每个资产数据的每个顶点。 XML3D是否有一些可以帮助我的机制?

我应该从哪里开始?

1 个答案:

答案 0 :(得分:1)

实际上,XML3D是一种表示格式,从未设计用于提取除交互式渲染之外的有用的东西。但是,由于它是JavaScript,你可以以某种方式访问​​所有内容,显然你也可以获得应用所有转换所需的数据,并从场景中创建一个巨大的STL网格。

我能想象的最简单方法是使用内部场景:

var scene = document.querySelector("xml3d")._configured.adapters["webgl_1"].getScene();

// Iterate render objects
scene.ready.forEach(function(renderObject) {
  // Get word matrix
  var worldMatrix = new Float32Array(16);
  renderObject.getWorldMatrix(worldMatrix);

  // Get local position data
  var dataRequest = new Xflow.ComputeRequest(renderObject.drawable.dataNode, ["position"]);
  var positions = dataRequest.getResult().getOutputData("position").getValue();

  console.log(worldMatrix, positions.length);
  // apply worldmatrix to all positions
  ...
});