我要使用OpenGL绘制5万条以上的线条,和很多的圆弧,圆弧是由很多小直线段连接成了的。绘制完后,需要支持缩放,平移。我现在缩放使用的方法是改变glOrTh的投影空间大小,平移使用的glTranslate平移,然后重绘,但是绘制效率太低了。我的这个情况,opengl的显示列表是不能使用的,因为显示列表只能绘制一个坐标值不变的对象。
我想请问:在大数据的情况下,有什么方法可以快速的缩放和平移,旋转?OpenGL绘图效率
我想请问:在大数据的情况下,有什么方法可以快速的缩放和平移,旋转?OpenGL绘图效率
解决方案 »
- 控件关联一个变量,但是当我使用这个变量的时候为什么说我没有定义呢!
- c++窗口调用问题
- 用WriteProcessMemory写内存时,内存不可读
- vc6.0 linking时停止,我装了sp6,还是不行,怎么解决啊
- vc开发的程序崩溃该如何查找错误
- 关于CxImage图像放大缩小的问题,请大家帮帮忙!
- MFC4.0和MFC7.1的socket使用的都是winsock1.1. 那MFC8.0使用的是不是winsock2啦?
- _bstr_t怎么会自动截取 来者有分!
- 请问这样的SQL 语句如何写??
- 急急急!!!有谁知道哪里能找到AE和Premier的插件的SDK及文档!!
- 100分: 关于在MFC开发的软件中用OLE打开多页Word文档,显示具体的页面的问题
- 请教MFC的TabCtrl里如何响应右键菜单
然后作为矩阵的替代方法,可以使用四元数进行坐标变换操作。我也正在学习,这里有我写的两篇日志,可以参阅一下。
四元数学习之四元数和矩阵的转换
OpenGL中glRotatef()函数究竟对矩阵做了什么
最后可能需要使用OpenGL里面高级的知识了,比如不使用glVertex()函数,而使用VBO、VAO等等。
1:如果你的对象变化频率不是很高的话,还是可以使用displaylist,改变的时候调整
2:能采用displaylist的部分(不变的对象组)尽量做成list
3:如果你每次刷新都要用用glBegin绘制全部线条和圆弧, 不知道有什么办法可以解决
4:大数据的话自己做可视区域判断,只处理可见形体,过滤掉区域外形体
如果计算完成后显示,可用显示列表
如果计算完成后显示,可用显示列表
嗯,是的,我的位置点都是实时改变的,所以使用显示列表会很复杂,但是autoCAD的复杂3D绘制很快,不知道他怎么做的。