如何获得 AABB 顶点的三角形?

我正在尝试渲染立方体来代表 AABB。为了做到这一点,我需要立方体的顶点和“单元格”或三角形。我的 AABB 结构看起来像[vec3Min, vec3Max]. 我能够使用以下方法获得立方体的 8 个顶点


export function vertsFromAABB(aabb){

  const min = aabb[0];

  const max = aabb[1];


  return [

    // min Y axis verts

    min,

    [max[0],min[1],min[2]],

    [max[0],min[1],max[2]],

    [min[1],min[1],max[2]],


    // max Y axis verts

    max,

    [min[0],max[1],max[2]],

    [min[0],max[1],min[0]],

    [max[0],max[1],min[0]]

  ];

}

我现在需要从这组顶点中获取三角形索引。单元格应该是一组顶点索引,例如[[0,1,2],[1,2,3], ...]


编辑更新


我已经对评论中建议的最后 2 个 verts 进行了修复。我有一个看起来像的单元格的功能进行中


export function cellsFromAABBVerts(aabbVerts){

  return [

    // Top quad triangles

    [0,1,2],

    [1,2,3],


    // Side?

    [2,3,4],

    [3,4,5],


    // Bottom quad triangles

    [4,5,6],

    [5,6,7],

  ];

}


婷婷同学_
浏览 144回答 1
1回答

莫回无

如果你想象你的长方体,像这样:那么导出三角形索引非常简单:[    [ 0, 1, 2 ],    [ 0, 2, 3 ],    [ 6, 5, 4 ],    [ 6, 4, 7 ],    [ 1, 7, 4 ],    [ 1, 4, 2 ],    [ 0, 3, 5 ],    [ 0, 5, 6 ],    [ 0, 6, 7 ],    [ 0, 7, 1 ],    [ 2, 4, 5 ],    [ 2, 5, 3 ]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript