我是个opengl初学者,现在想用VC+Opengl做一个切削仿真软件。最核心的功能就是如何显示切削过程和切削后毛坯的结果。
自己找到了一些Opengl布尔运算的程序,试了下其只能显示当前布尔差的结果,但是不能保留中间布尔差的过程。
对此问题,我已经钻研了很久,还是不得其解。在此希望有大牛能帮帮我,小弟感激不尽!
我的QQ:545475993,我可以把我的源程序发给你。

解决方案 »

  1.   

    晕倒!!!!!!!!
    放弃算了
    你可以baidu parasolid acis ,实体几何运算 
    或者 下载我的论文
    http://download.csdn.net/source/1762614
     找点感觉
      

  2.   

    即时最最简单的情况 在一个立方体上面 一个小的立方体 走一条直线 不用库的从底层做的话 也是非常非常非常困难的
    首先 立方体怎么表示 ?正确的做法是 边界与空间分割混合表示
    其次 实体几何运算的 减 怎么做? 这个你搜论文看看 不是一句话能说清楚的 
    复杂实体的显示 马虎作要容易得多,表面三角片化,做到好点 veryvery diffcult.因为面可能非常多 要快速显示
      

  3.   

    首先很感激楼上各位大哥们的指点!
    我是看到一篇韩国人写的论文“An implementation of CSG modeling technique on Machining Simulation
    using C++ and Open GL”,讲了用Opengl CSG模型实现切削仿真的思想和方法,还有一段程序:glEnable(GL_DEPTH_TEST);
    glColorMask(GL_FALSE, GL_FALSE, GL_FALSE,
    GL_FALSE);
    glCullFace(GL_FRONT);
    RenderSweptSurface();
    glDepthMask(GL_FALSE);
    glEnable(GL_STENCIL_TEST);
    glStencilFunc(GL_ALWAYS, 0, 0);
    glStencilOp(GL_KEEP, GL_KEEP, GL_INCR);
    glCullFace(GL_BACK);
    RenderStock();
    glStencilOp(GL_KEEP, GL_KEEP, GL_DECR);
    glCullFace(GL_FRONT);
    RenderStock();
    glDepthMask(GL_TRUE);
    glColorMask(GL_TRUE, GL_TRUE, GL_TRUE,
    GL_TRUE);
    glStencilFunc(GL_NOTEQUAL, 0, 1);
    glDisable(GL_DEPTH_TEST);
    glCullFace(GL_FRONT);
    RenderSweptSurface();
    glColorMask(GL_FALSE, GL_FALSE, GL_FALSE,
    GL_FALSE);
    glEnable(GL_DEPTH_TEST);
    glDisable(GL_STENCIL_TEST);
    glDepthFunc(GL_ALWAYS);
    RenderStock();
    glDepthFunc(GL_LESS);
    glCullFace(GL_BACK);
    RenderStock();
    glDepthMask(GL_FALSE);
    glEnable(GL_STENCIL_TEST);
    glStencilFunc(GL_ALWAYS, 0, 0);
    glStencilOp(GL_KEEP, GL_KEEP, GL_INCR);
    glCullFace(GL_BACK);
    RenderSweptSurface();
    glStencilOp(GL_KEEP, GL_KEEP, GL_DECR);
    glCullFace(GL_FRONT);
    RenderSweptSurface();
    glDepthMask(GL_TRUE);
    glColorMask(GL_TRUE, GL_TRUE, GL_TRUE,
    GL_TRUE);
    glStencilFunc(GL_EQUAL, 0, 1);
    glDisable(GL_DEPTH_TEST);
    glCullFace(GL_BACK);
    RenderStock();
    glDisable(GL_STENCIL_TEST);
    glEnable(GL_DEPTH_TEST);程序段的意思我也大概明白,就是通过深度缓存和模板缓存实现布尔差的运算,但是我用这段程序所做的结果和论文中的结果不一样啊。就是两个物体相对运动后,只能显示出当前位置的布尔差,而不能保留中间布尔差的痕迹,也就是说没有留下刀具走过的痕迹。还希望各位大哥们再多多指点,我现在时间紧任务重,被导师逼着了
      

  4.   

    加工仿真 模型方法是核心之一
    若玩玩而已 什么建模型方法都行 csg 也行
      

  5.   


    好吧,按常理我也确实很难完成这样的任务。只能再想想别的办法了bhybhbhy2 这位大哥有没有相关的资料或者程序,可以让我参考下
      

  6.   

    若时间紧张 汉化软件
    不太紧张 用库做,找个acis 或者parasolid. 显示 用hoops要是刚开题 换课题 这个课题本身应该说太大。 可以做细节 如加工仿真的曲面曲线的路径规划,软件的系统架构等
    客观的讲 这个东西老外都基本研究透了 应该说这个方面早都不应该做为课题了 有问题看看 外国的博士论文库 或者 工程论文库
      

  7.   

    看到一篇的论文,若要考虑刀具与工件之间的opengl布尔运算,建模时候准备要充分。它使用“压缩体素模型间的布尔差运算,而压缩体素模型是用三个方向上的Dexel模型表示的”。
    我不是搞图形学的,不知编程时怎么建模?