给定一个点光源,一个眼睛位置,我们可以找到给定模型的轮廓(轮廓)。我们首先可以找到轮廓边缘,将模型投影到一个二维平面,然后遍历所有的轮廓边缘。但在凹面模型中,轮廓边缘的某些部分不应包含在模型轮廓中。怎么找到那些零件?另外,我们能做到这一点而不将模型投影到二维平面上吗?
发布于 2016-10-20 13:57:30
我将解释解决问题的“几何方法”,因为这是你想要的解决方案,而不是使用Dan在评论中建议的栅格化。
你可以在没有2D投影的情况下得到潜在的剪影边缘列表,方法是首先遍历所有的边缘,并在眼睛->边缘向量上取附加的两个三角形的法线的点积(边上的任何一点都可以,例如,其中一个端点)。如果两个三角形在边缘上的点积有不同的标志,那么它就是一个潜在的轮廓边缘。如果物体是凸的,那么你就完成了,得到了轮廓边的列表。
对于凹形物体,它变得更加复杂。对于凹面对象,边缘可能只是部分轮廓边缘,并且可能被分割成N个片段,这些碎片都属于轮廓。因此,你需要处理的潜在边缘列表,并剪辑他们与几何。你能做剪裁的方法是把几何图形中的每一个三角形从眼睛外挤压出来,并使用这个体积来剪辑潜在的剪影边缘列表。剩下的边缘碎片,没有剪掉,是你的轮廓。
https://computergraphics.stackexchange.com/questions/4150
复制相似问题