OpenGL / C ++で建設的なソリッドジオメトリを作成する方法
質問
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)
.
私は単純なブール操作を達成するために何時間も試みました、しかし私はそれを手に入れてはいけません。
私はこのようなものが欲しい:
href="https://upload.wikimedia.org/wikipedia.org/wikipedia/commons/thumb/8/86/boolean_difference.png/275px-boolean_difference.png" REL="nofollowNoreferrer">
解決
他のヒント
OpenGLのステンシルバッファは、フレームバッファの2次元ピクセルグリッド上で動作します。OpenGL自体には、オブジェクトやシーンの概念はありません。それは単に点、線と三角形を描くだけです。そのため、OpenGLだけで実際のCSGは不可能です。ただし、Stencilバッファ操作でCSGをエミュレートするテクニックがありますが、非常に複雑です。1990年代半ばの論文を主題に見つけるために、「ステンシルバッファーのOpenGL CSG」のためのGoogle。
SGCOREライブラリを試してみましょう - http://www.geometros.com/sgcore/Review.htm 非常に堅牢で強力なライブラリ
所属していません StackOverflow