OPENGL是SGI开发的一套三维图形软件包,出现很早,功能超强,且接口简洁,运算效率绘图效果极高,早期大都用在科研部门,运行在高性能计算机上。学术性较强,科研部门用的才多。曲高和寡,被DX抢了市场
DX,MS开发的三维绘图软件包,(里面也包括了,语音鼠标键盘加速包,还有视频、图象)。早期性能比DX差远了,但是通过操作系统的捆绑销售以及MS的大力市场推广,稳稳的占据了市场,并且经过不断的升级,现在性能上基本已经超过了OPENGL。基本绘图方法和OPENGL差不多,只不过接口采用COM方式,对于COM不了解的程序员来说上手有点难度。
学开发GDI是最基本的,学三维、学多媒体,就学DX吧。现在显卡基本都支持DX,支持OPENGL的已经很少了 ,不过OpenGL的3D图形处理确实很不赖,对OpenGL感兴趣的可以看一下Nehe的OpenGL教程中文版电子书,chm格式的,里面有48个课程讲解和相应的代码,对OpenGL初学者很不错,大家可以从我的资源网址http://download.csdn.net/detail/ccf19881030/2159345下载。另外对于DirectX学习的话推荐的是<<DirectX 9.0游戏开发编程基础>>和<<DirectX 3D图形与动画程序设计>>,后者已经差不多不发行了,其实后者代码很丰富的,可以上网搜一下电子版的。
桌面系统进行显示有几种方法:
总体说来是一种字节面向显卡,比如OpenGl,Dx,一种使用操作系统提供的组件GDI,GDI+等
一般对于速度和效果要求不大的地方使用GDI系统就可以,GDI对硬件设备进行了封装,用户可以使用GDI结构来模拟硬件,具体的实现由操作系统完成,因为隔了一层虚拟机(操作系统),所以速度慢,但是画个窗体,字体,菜单,图片之内的是没有问题的
GL和DX主要面向多媒体开发,比如视频播放和游戏,这些东西要求很好的显示效果,同时要能保证速度,比如视频至少的25fps,这要是GDI来画,你的电脑什么都不干都未必能完成,此时就要直接把数据送给显卡进行处理,并且充分利用显卡的处理和特效功能,这就是GL和Dx,DX叫Direct X其意义就是直接X.
GL是第三方开源的图象库,而DX是微软的.据说Vista的桌面系统已经开始使用DX来显示窗口菜单等常见元素,因为他很漂亮,GDI来做会慢.
总结
1、OpenCV 算法合集,多用于图像识别,和matlab,CxImage这个两库功能相同;
2、OpenGL 3D绘制,和direct3D做的是同一件事,3D游戏了;
3、DirectX 微软做的一个超大的多媒体处理合集,包括音频,视频,direct3D只是其中之一;
Dx做的音视频的采集和显示部分,算法涉及不多;
Dx做的事都是和硬件有关系的,都要依赖硬件的,由于ms的强大,现在硬件大都支持dx;
Dx显示视频的时候没有通过gdi,是直接通过显卡实现的,非常的快