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

问题描述 投票:0回答:2

假设我必须在画布上绘制3D形状的两个面。在OpenGL中,我们使用顶点的顺时针和非顺时针顺序来检测正面是正面,背面是正面,但是我不能使用OpenGL,并且我将使用画布。看来,如果我们先在面孔后面绘制,然后再在面孔前面绘制,它就会隐藏在面孔后面,但是我的3D形状会旋转,并且每个面孔有时必须在前面,有时必须在后面。

我的问题是:当形状旋转时,如何检测女巫的脸在前面?还是任何其他方法可以将当前物体隐藏在正面的后面?

android 3d rotation android-canvas
2个回答
2
投票

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

最简单的实现方法是取下normal vectorface,并检查它是否朝向或远离相机。

您使用相机的dot productnormal和相机的view vector执行此操作。取决于点积的sign,多边形朝向或远离相机。

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


1
投票

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

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.