3DモデルをXY、YZ、ZXの3つのプレーンでクリップしようとしています。私がGL11.GL_CLIP_PLANE0を使用すると動作しますが、GL11.GL_CLIP_PLANE1とGL11.GL_CLIP_PLANE2は機能しません。私が使用しているJavaコードは、以下に貼り付けられています。 Android 2.2バージョンでうまくいきましたが、2.2より上のバージョンでは動作しません。誰かが理由を知っている場合は投稿してください。androidのglClipPlanefに関するOpenGL-問題
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);
}
}
どのように機能しませんか?クリッピングはまったく行われますか? – bernie
GL11.GL_CLIP_PLANE0を使用した場合、つまり最初の条件(is_XY_Plane)でのみクリッピングが実行されます。条件の残りの部分はまったくクリップされません。 GL11.GL_CLIP_PLANE0をGL11.GL_CLIP_PLANE1の代わりに他の2つの条件で使用し、GL11.GL_CLIP_PLANE2をクリッピングすると、私の必要条件は3つの平面で同時にクリップすることです –