Opengl 我怎样才能剪一个圆?

Opengl 我怎样才能剪一个圆?,opengl,libgdx,Opengl,Libgdx,如何使用libGDX剪裁圆?剪切矩形非常容易Gdx.gl.glScissor(int x,int y,int width,int height)。是否有任何方法来剪辑一个圆或我需要一些算法 可以使用深度缓冲区剪裁圆: //clear screen Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); //clear depth buffer with 1.0 : Gdx.gl.glClear(GL10.GL_DEPTH_BUF

如何使用libGDX剪裁圆?剪切矩形非常容易
Gdx.gl.glScissor(int x,int y,int width,int height)
。是否有任何方法来剪辑一个圆或我需要一些算法

可以使用深度缓冲区剪裁圆:

    //clear screen

    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    //clear depth buffer with 1.0 : 

    Gdx.gl.glClear(GL10.GL_DEPTH_BUFFER_BIT);

    //set the function to LESS

    Gdx.gl.glDepthFunc(GL20.GL_LESS);

    //enable depth writing

    Gdx.gl.glEnable(GL20.GL_DEPTH_TEST);

    //Enable depth mask and disable RGBA color writing

    Gdx.gl.glDepthMask(true);

   Gdx.gl.glColorMask(false, false, false, false);

    //rendering(Circle ect..) primitive shapes

    shapeRenderer.begin();
    shapeRenderer.circle(x, y, radius);
    shapeRenderer.end();

    batch.begin();

     //Enable RGBA color writing

    Gdx.gl.glColorMask(true, true, true, true);

    //Enable testing

    Gdx.gl.glEnable(GL10.GL_DEPTH_TEST);

    //Discards pixels outside masked shapes

    Gdx.gl.glDepthFunc(GL10.GL_EQUAL);

    batch.draw(...);

    batch.end();

虽然搜索“libgdx clip circle”并没有带来太多帮助,但搜索通用的opengl解决方案可能会帮助您找到可以使用的东西。例如,试着用谷歌搜索“opengl剪辑圈”。这个命令适用于你画的任何东西???给我举个例子,用圆圈??该命令将位置、宽度和高度作为参数,那么圆半径呢?你是说你想切一块饼,就像切圆一样?你的问题听起来像是在问如何切圆,而不是如何用圆切任意形状。clip命令总是从后面绘制的任何矩形中剪裁出一个矩形。对于矩形以外的任何对象,都不能简单地剪裁。您需要将多重纹理与自定义着色器程序一起使用。但具体的方法取决于你在做什么。你是从许多精灵身上切下同一个圆圈,还是只切一个?