2

3DモデルをXY、YZ、ZXの3つの平面でクリップしようとしています。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 );
    }


}
4

1 に答える 1

2

glGet()およびを使用GL_MAX_CLIP_PLANESして、GL実装が複数のクリップ平面をサポートしていることを再確認します。glGet()ドキュメントには、少なくとも6つをサポートする必要があると書かれています。

于 2011-12-07T06:49:00.180 に答える