C++ OpenGL中半平面的裁剪

C++ OpenGL中半平面的裁剪,c++,opengl,C++,Opengl,我想制作一个剪切的半平面,但我对OpenGL相当不熟悉 现在,我使用OpenGL的glClipPlane的包装器 void gle::setClipPlane(GLenum glp, Vector3 const& dir, Vector3 const& pos) { GLdouble eq[4] = { dir.XX, dir.YY, dir.ZZ, -dir*pos }; glClipPlane(glp, eq); } 但我实际上想做一个剪切半平面,例

我想制作一个剪切的半平面,但我对OpenGL相当不熟悉

现在,我使用OpenGL的glClipPlane的包装器

    void gle::setClipPlane(GLenum glp, Vector3 const& dir, Vector3 const& pos)
{
    GLdouble eq[4] = { dir.XX, dir.YY, dir.ZZ, -dir*pos };
    glClipPlane(glp, eq);
}
但我实际上想做一个剪切半平面,例如法线为0 1 0的平面,但仅适用于x>0和y>0。
有没有可能用一种简单的方法来做呢?

x>0
y>0
是表示两个半空间的条件。您可以通过
glClipPlane(planeE,eq)
为每个半空间设置不同的
planeE


glClipPlane
是用于旧OpenGL的命令,或具有兼容上下文概要文件的新命令。对于现代OGL核心上下文概要文件,必须在着色器中实现此剪裁。

我认为应该指出,剪裁已从核心概要文件中删除,因为核心概要文件意味着几何体着色器的可用性。要实现类似OpenGL所做的固定功能的剪裁(即沿剪裁平面引入新顶点),必须使用几何体着色器。但是,也可以通过在片段着色器中丢弃片段来实现剪裁。根据两种方法中使用的剪辑平面的数量,我提供了更好的性能。感谢Ripi2,但这不是我想要做的。我想要单切口,但只能在半平面上!