为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

婷婷同学_ 2021-12-12 15:28:12
我正在尝试渲染立方体来代表 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],  ];}
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

如果你想象你的长方体,像这样:

//img1.sycdn.imooc.com//61b5a4b20001715707470609.jpg

那么导出三角形索引非常简单:


[

    [ 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 ]

]


查看完整回答
反对 回复 2021-12-12
  • 1 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信