合并顶点缓冲区

时间:2019-07-16 09:17:27

标签: javascript webgl

我有一个问题,问题是顶点数组分别存储在目标文件中,因此它们看起来像这样(不是真实数据):

positions: [
  1, 0.5, 0.3,
  3.0, 0.5, 0.3,
  0.3, 0.5, 0.3,
  -0.4, 0.5, 0.2
],
normals: [
  0.5, 0.1, 0.3,
  0.2, 0.5, 0.2,
  0.3, 0.1, 0.3,
  0.6, 0.3, 0.7
],
uv: [
  0.3, 0.2,
  0.1, 0.1,
  0.7, 0.6,
  0.4, 0.3
]

问题是我无法将其存储在单个顶点缓冲区中,因此我应该具有以下内容:

vertices: [
  1, 0.5, 0.3, 0.5, 0.1, 0.3, 0.3, 0.2,
  3.0, 0.5, 0.3, 0.2, 0.5, 0.2, 0.1, 0.1,
  0.3, 0.5, 0.3, 0.3, 0.1, 0.3, 0.7, 0.6,
  -0.4, 0.5, 0.2, 0.6, 0.3, 0.7, 0.4, 0.3
]
layout: [["float", 3], ["float", 3], ["float", 2]]

例如合并每个数组的每一行,以便在顶点数组中使用它

是否有任何算法或至少,该过程如何调用才能知道在哪里挖掘

1 个答案:

答案 0 :(得分:1)

以下方法应该起作用:

if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ANSWER_PHONE_CALLS) != PackageManager.PERMISSION_GRANTED) {
    Toast.makeText(context, "MISSING PERMISSION!!", Toast.LENGTH_SHORT).show();
}
tm.showInCallScreen(false);
info = intent.getDataString();
//read the SIP message before accept ringing call//
tm.acceptRingingCall();

呼叫为

function interleaveVertices(spec, sources) {
  const vertices = [];
  while (sources[0].length > 0) {
    for (let i = 0; i < spec.length; i++) {
      Array.prototype.push.apply(vertices, sources[i].splice(0, spec[i]));
    }
  }
  return { vertices: vertices, layout: spec.map(s => ["float", s]) };
}