假设我必须在画布中绘制两个3D形状的面。在OpenGL中,我们使用顶点的顺时针和非顺时针排序来检测正面是什么面,背面是什么,但我可以不使用OpenGL ,我会使用canvas.It似乎如果我们画在脸后然后画前脸,它隐藏在脸后面,但我的3D形状旋转,每个脸有时必须在前面,有时必须落后。
我的问题是:当形状旋转时,我如何能够检测到女巫面部是前方?还是以任何其他方式隐藏正面背面的电流?
答案 0 :(得分:2)
您描述的过程称为背面剔除(这将极大地提高您对该主题的谷歌能力)。
实施的直接方法是拍摄normal vector
的{{1}},并检查它是朝向还是远离相机。
您可以使用相机face
和dot product
的{{1}}来执行此操作。根据点积的normal
,多边形朝向或远离相机。
如果此时实际上没有相机,请将矢量替换为屏幕(例如view vector
或sign
,具体取决于您的轴系统)。
答案 1 :(得分:1)