【问题标题】:How to create Constructive Solid Geometry in OpenGL / C++如何在 OpenGL / C++ 中创建构造实体几何
【发布时间】:2017-08-18 01:44:32
【问题描述】:

我想用 openGL 模版出一些对象。

glClear(GL_STENCIL_BUFFER_BIT);
glColorMask(false, false, false, false);
glEnable(GL_STENCIL_TEST);
glStencilFunc(GL_EQUAL, 0, 1);
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
glDisable(GL_DEPTH_TEST);
glColor4f(0,0,1,1.0f);

gl::draw(mVBO); //a sphere

glEnable(GL_DEPTH_TEST);
glColorMask(true, true, true, true);
glStencilFunc(GL_ALWAYS,0, 1);
glStencilOp(GL_REPLACE,GL_KEEP, GL_ZERO);

mTexture.enableAndBind();
gl::drawCube(Vec3f(0,3,0),Vec3f(13,13,13) );

glDisable(GL_STENCIL_TEST)

我尝试了这么多小时来实现一个简单的布尔运算,但我不明白。

我想要这样的东西:

【问题讨论】:

    标签: c++ opengl boolean csg


    【解决方案1】:

    OpenGL 的模板缓冲区在帧缓冲区的二维像素网格上运行。 OpenGL 本身没有对象或场景的概念。它只是绘制点、线和三角形。因此,仅使用 OpenGL 是不可能实现真正的 CSG 的。然而,有一些技术可以通过模板缓冲区操作来模拟 CSG,但它们非常复杂。谷歌“模板缓冲区中的 OpenGL CSG”以找到 1990 年代中期关于该主题的一些论文。

    【讨论】:

      猜你喜欢
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 2020-09-14
      • 2017-12-22
      相关资源
      最近更新 更多