我正试着在3个平面XY,YZ和ZX中裁剪一个3D模型。当我使用GL11.GL_CLIP_PLANE0时,它可以工作,但GL11.GL_CLIP_PLANE1和GL11.GL_CLIP_PLANE2不能工作。下面粘贴了我正在使用的java代码。它在Android版本2.2上工作得很好,但在2.2以上的版本上就不能工作了。如果有人知道原因,请发帖。
enableSectionPlane(GL10 gl)
{
GL11 gl11 = (GL11) gl;
if( is_XY_plane)
{
float eqn1[] = { 0.0f, 0.0f, 1.0f,0.0f };
gl.glEnable( GL11.GL_CLIP_PLANE0);
gl11.glClipPlanef( GL11.GL_CLIP_PLANE0, eqn1,0 );
}
else
{
gl.glDisable( GL11.GL_CLIP_PLANE0 );
}
if( is_YZ_plane)
{
float eqn2[] = { 1.0f, 0.0f, 0.0f,0.0f };
gl.glEnable( GL11.GL_CLIP_PLANE1);
gl11.glClipPlanef( GL11.GL_CLIP_PLANE1, eqn2,0);
}
else
{
gl.glDisable( GL11.GL_CLIP_PLANE1 );
}
if(is_ZX_plane)
{
float eqn3[] = { 0.0f, 1.0f, 0.0f,0.0f };
gl.glEnable( GL11.GL_CLIP_PLANE2 );
gl11.glClipPlanef( GL11.GL_CLIP_PLANE2, eqn3,0 );
}
else
{
gl.glDisable( GL11.GL_CLIP_PLANE2 );
}
}发布于 2011-12-07 14:49:00
使用glGet()和GL_MAX_CLIP_PLANES复查GL实现是否支持多个剪裁平面。glGet() docs表示,它应该至少支持6个。
https://stackoverflow.com/questions/8410409
复制相似问题