我想用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)
.

我试过这么多小时来实现一个简单的布尔操作,但我不明白。

我想要这样的东西:

有帮助吗?

解决方案

我会建议in fill incventing 车轮

其他提示

OpenGL的模板缓冲区在帧缓冲器的2维像素网格上运行。OpenGL本身没有对象或场景的概念。它只是绘制点,线条和三角形。因此,只有OpenGL无法实现真正的CSG。然而,存在具有模板缓冲操作的CSG的技术,但它们非常复杂。谷歌为“模板缓冲区中的OpenGL CSG”为查找来自1990年中期的一些论文。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top