关于CAD开发的问题,涉及性能优化

Angus_pei 2013-05-04 09:15:17
有这样的情况:
使用AutoCAD加载上百兆的文件,虽然加载速度较慢,但是加载完了以后,对图形设计操作不会出现卡的现象(内存占用随着文件的大小增长)
问题:
【AutoCAD主要采用了什么技术】,使设计操作不会出现卡或者延迟的现象
补充:
因为我们自己设计的一套CAD软件出现了性能问题,对大文件操作的时候,比如拖拽、移动等都会很慢,很卡!!
是否与OpenGL图形引擎有相关问题?
或者数据处理方面?
各位大虾、大牛们请结合你们的经验谈谈哦,当然如果有CAD开发方面经验的前辈就更加和谐了!!!
你们提出来的相关建议我都会自己写代码测试验证的!!

谢谢了哈!!
...全文
373 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangyb999 2014-01-04
  • 打赏
  • 举报
回复
lz如何解决的,能透露点思路吗?
Angus_pei 2013-11-08
  • 打赏
  • 举报
回复
恩,我已经解决该问题了,各位接分吧!
Angus_pei 2013-09-06
  • 打赏
  • 举报
回复
唉@@灭人回答啊?
Angus_pei 2013-05-10
  • 打赏
  • 举报
回复
引用 14 楼 fyzqzpd 的回复:
你说的那个博客很老的技术了,绘制单个图元可以用脏矩形技术,要是用户要平移或者缩放呢? 所有的数据当然要先读取的内存中,你没见一个植物大战僵尸的小游戏就用了100多兆内存。 directx有窗口区域自动裁剪功能,opengl应该也有吧。
是的,有图形剪切的功能 我现在的问题是,对很多图元绘制的时候 必然会影响效率 难道Auto他们就不对剪切区域进行绘制吗?
Angus_pei 2013-05-08
  • 打赏
  • 举报
回复
密啊!!一切都是密! 我一直在想办法测试该问题,但是我也刚接触OpenGL,对OpenGL不太了解 慢慢的研究吧!!也许方法很简单,只是我没有发现而已!!
zhao1zhong6 2013-05-08
  • 打赏
  • 举报
回复
你说的那个博客很老的技术了,绘制单个图元可以用脏矩形技术,要是用户要平移或者缩放呢? 所有的数据当然要先读取的内存中,你没见一个植物大战僵尸的小游戏就用了100多兆内存。 directx有窗口区域自动裁剪功能,opengl应该也有吧。
Angus_pei 2013-05-08
  • 打赏
  • 举报
回复
http://blog.gkong.com/more.asp?name=jefferson&id=113730 这篇博客很不错!!
Angus_pei 2013-05-08
  • 打赏
  • 举报
回复
引用 8 楼 fyzqzpd 的回复:
先说说移动吧,我的建议是在移动的时候只显示虚拟的图像,要是每一帧都要改变3D图形的内部数据那当然会卡了,每个图形都应该有他自己固定的数据,表现位置的时候应该单独有一个变量,旋转跟复制同样道理,没法静态,静态的话图形弄脏了怎么处理啊?还不是要重新显示一次?,不知道你们是不是使用MFC,用sdk的话性能会有少许提升的,而且像cad这类的软件应该没必要使用MFC吧。
兄弟我想问一个很傻的问题,如果我将所有数据读取到内存中,然后对视口进行相应的操作,操作完成以后直接将后台缓存的数据提交到前台来!其中是否依然要重绘一次啊?
victor_woo 2013-05-07
  • 打赏
  • 举报
回复
引用 4 楼 Angus_pei 的回复:
[quote=引用 3 楼 zhouzhipen 的回复:] 难道你没有发现AutoCAD是把当前视口中的图形缓存成静态图片了吗?并非每次重绘所有元素,关于具体算法,有很多开源的CAD软件可以看看。 另外,如果是写一些简单的工具,或是玩玩,自己写还行,如果是需要写出一个实用的CAD系统,建议还是用开源的系统改造吧。CAD系统中所涉及的算法实在太多了。
兄弟,我想请问一下你是做CAD开发的吗? 对OpenGl是否有了解啊?将图形载入到内存的时候如何以静态图片保存啊?能否提供一个简单的例子啊?[/quote] AutoCAD 2D和OpenGL有关系?
Angus_pei 2013-05-06
  • 打赏
  • 举报
回复
哪位大牛提供一下将当前视口中的图形缓存成静态图片的例子啊?
zhao1zhong6 2013-05-06
  • 打赏
  • 举报
回复
cad确实使用了一些优化技术比如画圆的时候其实你仔细看画一个小圆的话使用线段画一个8边型就很像了。 本人对opengl不太了解,最近纠结在写一个dxf输入输出,确实很蛋疼啊。
zhao1zhong6 2013-05-06
  • 打赏
  • 举报
回复
先说说移动吧,我的建议是在移动的时候只显示虚拟的图像,要是每一帧都要改变3D图形的内部数据那当然会卡了,每个图形都应该有他自己固定的数据,表现位置的时候应该单独有一个变量,旋转跟复制同样道理,没法静态,静态的话图形弄脏了怎么处理啊?还不是要重新显示一次?,不知道你们是不是使用MFC,用sdk的话性能会有少许提升的,而且像cad这类的软件应该没必要使用MFC吧。
zhao1zhong6 2013-05-06
  • 打赏
  • 举报
回复
hello,我对这个感兴趣,我最近在写一个橱柜设计的软件,大家研究一下,我使用的是direct3d,没有出现你说的延迟现象,要是cad都有延迟,那人家做游戏,游戏机岂不跑死了。QQ653811224
Angus_pei 2013-05-05
  • 打赏
  • 举报
回复
关于OpenGL如何使用缓存技术将图片保存为静态图片的啊?!!
Angus_pei 2013-05-05
  • 打赏
  • 举报
回复
引用 3 楼 zhouzhipen 的回复:
难道你没有发现AutoCAD是把当前视口中的图形缓存成静态图片了吗?并非每次重绘所有元素,关于具体算法,有很多开源的CAD软件可以看看。 另外,如果是写一些简单的工具,或是玩玩,自己写还行,如果是需要写出一个实用的CAD系统,建议还是用开源的系统改造吧。CAD系统中所涉及的算法实在太多了。
兄弟,我想请问一下你是做CAD开发的吗? 对OpenGl是否有了解啊?将图形载入到内存的时候如何以静态图片保存啊?能否提供一个简单的例子啊?
Angus_pei 2013-05-04
  • 打赏
  • 举报
回复
各位大牛们,赶紧的来吧!急需你们的经验
zhouzhipen 2013-05-04
  • 打赏
  • 举报
回复
难道你没有发现AutoCAD是把当前视口中的图形缓存成静态图片了吗?并非每次重绘所有元素,关于具体算法,有很多开源的CAD软件可以看看。 另外,如果是写一些简单的工具,或是玩玩,自己写还行,如果是需要写出一个实用的CAD系统,建议还是用开源的系统改造吧。CAD系统中所涉及的算法实在太多了。
Angus_pei 2013-05-04
  • 打赏
  • 举报
回复
高分求解,依然没有答案吗?

19,469

社区成员

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

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