我正在开发一个 3D 建筑应用程序。该建筑是在 3D 网格(如魔方)上完成的,网格的每个单元格都是实心立方体或 45 度坡度。为了说明,这是我从谷歌图片中提取的倒角立方体的图片:
忽略右边的图像,焦点是左边的那个。目前,在构建阶段,我分别绘制了每个单元格的每个面。但是,在导出它时,我想对其进行简化。所以在上面的立方体中,我希望上下左右后正面分别由一个四边形(两个三角形)组成,并且边缘将从两个四边形减少到单个四边形。
我最近一直在尝试做的事情如下:
从各个方向逐层迭代形状,并为每一层找出一个很好的简化(删除重叠边以创建单个多边形,然后分割多边形以避免孔,使用耳朵剪裁进行三角剖分)。
我显然把事情复杂化了(至少我希望是这样)。如果我有一个顶点、法线和索引列表(目前有很多重复的顶点),是否有一些简洁的方法来简化?限制是索引不能在面之间共享(因为我需要法线指向不同的方向),但否则我不介意它不是最快或最佳的解决方案,我宁愿它很容易实现和维护。
编辑:为了进一步澄清,我已经执行了隐藏面移除,这不是问题。其次,最重要的是没有质量下降,只是简化了面本身(我需要保留锋利的边缘)。