2014-10-10 44 views
1

我有一个3D对象的表示形式为a)浊点和b)三角形网格 我的目标是旋转此对象,并获取在一个特定视图中可见的表面。 然后我会删除给定视图中不可见的点。有谁知道如何在MATLAB中做到这一点。什么方法最快? 带点云的文件包含每个点的坐标以及存储在三个RGB通道中的颜色信息。 第一行:在Matlab中隐藏的表面去除

`-35.4717 88.8637 -99.3782 97 78 46` 

我会感谢任何帮助。

回答

0

一种可能的方式是重新实现图形处理器的流水线。

转换您的对象并将所有三角形投影到图像平面中。在这个图像平面中,可以存储三角形各部分的距离。 有了这些信息,您就可以检查顶点是否比您在图像平面上绘制的顶点更远。

+0

我真的很喜欢这个问题,因为我自己正在努力。为了增加上面的评论,在可见曲面非常弯曲和重叠的情况下会发生什么。由于可见顶点彼此相邻的曲面的曲率将在不同距离上变化,所以上述方法在这种情况下会不足。请进一步阐述。 – Sade 2016-09-27 13:03:00