Opengl 如何显示布尔运算的过程

hustcyz 2010-09-15 05:03:12
我是个opengl初学者,现在想用VC+Opengl做一个切削仿真软件。最核心的功能就是如何显示切削过程和切削后毛坯的结果。
自己找到了一些Opengl布尔运算的程序,试了下其只能显示当前布尔差的结果,但是不能保留中间布尔差的过程。
对此问题,我已经钻研了很久,还是不得其解。在此希望有大牛能帮帮我,小弟感激不尽!
我的QQ:545475993,我可以把我的源程序发给你。
...全文
637 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenenbo 2011-08-09
  • 打赏
  • 举报
回复
能不能教教我怎么做切削的啊?
qyf_999 2011-04-26
  • 打赏
  • 举报
回复
看到一篇的论文,若要考虑刀具与工件之间的opengl布尔运算,建模时候准备要充分。它使用“压缩体素模型间的布尔差运算,。。。而压缩体素模型是用三个方向上的Dexel模型表示的”。
我不是搞图形学的,不知编程时怎么建模?
VR_Lab 2010-09-16
  • 打赏
  • 举报
回复
这个难度大哦。
  • 打赏
  • 举报
回复
找个软件 汉化一下 现在都这么做的哦
hustcyz 2010-09-16
  • 打赏
  • 举报
回复

我是硕士研究生,现在的课题是切削仿真软件。你推荐的那篇文章我已经下下来在看了。
感觉有点无助,希望能得到大家的点拨和指导
  • 打赏
  • 举报
回复
首先 本科能做到这已经很难了
另外不知道你说什么
hustcyz 2010-09-16
  • 打赏
  • 举报
回复
首先很感激楼上各位大哥们的指点!
我是看到一篇韩国人写的论文“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);

程序段的意思我也大概明白,就是通过深度缓存和模板缓存实现布尔差的运算,但是我用这段程序所做的结果和论文中的结果不一样啊。就是两个物体相对运动后,只能显示出当前位置的布尔差,而不能保留中间布尔差的痕迹,也就是说没有留下刀具走过的痕迹。

还希望各位大哥们再多多指点,我现在时间紧任务重,被导师逼着了
hustcyz 2010-09-16
  • 打赏
  • 举报
回复
好的,听你一说也明白了很多。多谢了!

换课题不可能的,还是尽量找点捷径。有机会再和大哥多多交流下
  • 打赏
  • 举报
回复
若时间紧张 汉化软件
不太紧张 用库做,找个acis 或者parasolid. 显示 用hoops

要是刚开题 换课题 这个课题本身应该说太大。 可以做细节 如加工仿真的曲面曲线的路径规划,软件的系统架构等
客观的讲 这个东西老外都基本研究透了 应该说这个方面早都不应该做为课题了 有问题看看 外国的博士论文库 或者 工程论文库
hustcyz 2010-09-16
  • 打赏
  • 举报
回复

好吧,按常理我也确实很难完成这样的任务。只能再想想别的办法了

bhybhbhy2 这位大哥有没有相关的资料或者程序,可以让我参考下
  • 打赏
  • 举报
回复
加工仿真 模型方法是核心之一
若玩玩而已 什么建模型方法都行 csg 也行
  • 打赏
  • 举报
回复
即时最最简单的情况 在一个立方体上面 一个小的立方体 走一条直线 不用库的从底层做的话 也是非常非常非常困难的
首先 立方体怎么表示 ?正确的做法是 边界与空间分割混合表示
其次 实体几何运算的 减 怎么做? 这个你搜论文看看 不是一句话能说清楚的
复杂实体的显示 马虎作要容易得多,表面三角片化,做到好点 veryvery diffcult.因为面可能非常多 要快速显示
  • 打赏
  • 举报
回复
晕倒!!!!!!!!
放弃算了
你可以baidu parasolid acis ,实体几何运算
或者 下载我的论文
http://download.csdn.net/source/1762614
找点感觉
雪影 2010-09-15
  • 打赏
  • 举报
回复
同问~~
dukelee 2010-09-15
  • 打赏
  • 举报
回复
你这里的布尔运算和你想要的切削效果之间是什么关系?
你这里的布尔运算指的是什么效果?

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧