我要发帖 回复

正式会员

2

主题

32

积分

0

专家分

:

私信
发表时间 : 2008-6-9 21:32:31 | 浏览 : 1817    评论 : 2
绘制一个圆柱体,然后再其上挖去一个块,不知如何实现,听说可以用三维布尔操作,实现多个几何体的或、补操作,但不知如何实现,本人使用模板缓存,虽然可以将几何体中挖去人一块形状,但建模比较麻烦,且效果不佳,将我的实现代码贴出如下,请高手告知如何实现几何体的布尔操作:
        glClearStencil(0);
        glClear(GL_STENCIL_BUFFER_BIT);

        glEnable(GL_STENCIL_TEST);
        //glDisable(GL_DEPTH_TEST);

        glColorMask(GL_FALSE | GL_FALSE,GL_FALSE,GL_FALSE,GL_TRUE);

        glStencilFunc(GL_ALWAYS, 1, -1);
        glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);

        pStencilRender(); //挖洞的几何体绘制


        //glutSolidCylinder(5,22,12,1);
        glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE);



        glEnable(GL_STENCIL_TEST);

        //1glDisable(GL_DEPTH_TEST);

        glStencilFunc(GL_EQUAL, 1, -1);
        glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);

        //glLineWidth(3);
        //glutWireSphere(15,12,12);
       
        pBackRender(); //原有几何体的绘制

        glDisable(GL_STENCIL_TEST);

        glEnable(GL_DEPTH_TEST);
cao.JPG

最近VR访客

tan_dunming 评论于2008-6-10 08:48:32
这里有SGI的《Advanced Rending》中CSG绘制的源代码,你可以看看。基本思想也是利用Stencil Buffer实现的。
csg.rar (2.45 KB, 下载次数: 49)
追求卓越
lzs4073 评论于2008-6-10 12:52:35
多谢啊,研究下先

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-6-16 07:22 PM

返回顶部