在另一个Android画布后面隐藏一个3D形状的脸?

时间:2012-12-16 08:38:39

标签: android 3d rotation android-canvas

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

我的问题是:当形状旋转时,我如何能够检测到女巫面部是前方?还是以任何其他方式隐藏正面背面的电流?

2 个答案:

答案 0 :(得分:2)

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

实施的直接方法是拍摄normal vector的{​​{1}},并检查它是朝向还是远离相机。

您可以使用相机facedot product的{​​{1}}来执行此操作。根据点积的normal,多边形朝向或远离相机。

如果此时实际上没有相机,请将矢量替换为屏幕(例如view vectorsign,具体取决于您的轴系统)。

答案 1 :(得分:1)

你在寻找3D翻转吗? 如果是,那么我建议您查看this linkthis one 在StackOverFlow和其他博客上还有一些其他相关问题。只需在Google上搜索“ Android上的3D Flip ”。

祝你好运!