0

假设我必须在画布中绘制 3D 形状的两个面。在 OpenGL 中,我们使用顶点的顺时针和非顺时针顺序来检测什么是正面,什么是背面,但是我不能使用 OpenGL,我会使用画布。似乎如果我们画在脸后面然后画前面,它会隐藏在脸后面,但是我的 3D 形状会旋转,每个脸有时必须在前面,有时必须在后面。

我的问题是:当形状旋转时,我如何检测女巫的脸在前面?或任何其他方式来隐藏前面的脸后面的电流?

4

2 回答 2

2

您描述的过程称为背面剔除(这将大大提高您在该主题上的谷歌能力)。

实现的直接方法是使用normal vector您的face,并检查它是否面向或远离相机。

您可以使用相机dot productnormal和来执行此操作。view vector根据sign点积的不同,多边形朝向或远离相机。

如果此时您实际上没有相机,请在屏幕中替换一个矢量(即[0, 0, 1][0, 0, -1]取决于您的轴系统)。

于 2012-12-16T09:28:49.867 回答
1

您是否正在寻找 3D 翻转?
如果是这样,那么我建议您查看此链接链接。
StackOverFlow 和其他博客上还有一些其他相关问题。只需在 Google 上搜索“ Android 上的 3D Flip ”即可。

祝你好运!

于 2012-12-22T13:55:04.780 回答