【问题标题】:OpenGL: Keep drawing inside a region on a plane in 3D spaceOpenGL:继续在 3D 空间中的平面上的区域内绘制
【发布时间】:2017-05-02 14:22:28
【问题描述】:

第 1 步:我使用 glVertex() 在 3D 空间中绘制一个形状,比如一个矩形。

第 2 步:然后我在这个矩形内绘制东西 - 例如使用 glutStrokeCharacter() 和 glVertex() 再次。

我需要将第 2 步中绘制的内容保留在第 1 步中绘制的矩形内,剪掉超出边界的任何内容。有人可以就如何做到这一点给出一些提示吗?

【问题讨论】:

    标签: opengl pyopengl


    【解决方案1】:
    1. 将边界几何体渲染到stencil buffer
    2. 启用模板测试
    3. 将常规几何图形渲染到颜色缓冲区中;模板测试将防止边界几何之外的片段写入颜色缓冲区。

    【讨论】:

    • @TomBennett:已编辑。
    • 我不确定如何在我的情况下设置模板缓冲区。我正在使用 glBegin(GL_LINES); 绘制的矩形线框上进行操作。有多个 glVertex() 调用。然后我想只在这个线框内写文本并剪掉外面的所有东西。模板缓冲区似乎在像素级别运行,我发现的所有示例都有一些填充。但就我而言,仅凭线条,我不确定是否可以正确设置模板缓冲区。如果您有任何提示,请告诉我。
    • @TomBennett:禁用颜色写入,启用模板写入,使用线框顶点绘制 填充 矩形以填充模板缓冲区。启用颜色写入、启用模板测试、绘制线框矩形和文本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多