摘自:http://mtoou.info/directx-opengl-shenme/

提起图形和显卡,尤其是玩电脑游戏的时候(通常是安装时)很多人是不是立刻就想起了一个名词叫做Direct X,通常什么Direct 9.0c之类的东西都是打游戏必备的。那么大家知道Direct X是什么吗?另外你知道一个类似名词OpenGL是什么吗?本文将对他们进行简要的介绍和对比

提起图形处理和显卡相关的内容,尤其是玩电脑游戏的时候(通常是安装时)很多人是不是很容易就想起了一个熟悉的名词叫做Direct X,通常什么Direct 9.0c之类的东西都是打游戏必备的。那么大家知道Direct X是什么吗?另外你知道一个类似名词OpenGL是什么吗?

本文将对他们进行简要的介绍和对比,希望对大家了解和显卡密切相关的Direct X和OpenGL。

Direct X是什么?

Direct X是Direct eXtension的简写,可以进一步简写成DX。为微软公司开发的多媒体编程接口,目前只支持Windows平台,虽然Linux等平台依靠wine等程序也能实现DirectX但是性能相当可怜。

Direct X发展到现在已经有11代产品了,目前最常用的有两个Direct X 11.1和Direct 9.0c。前者是Windows7/8的标准配置,后者是WindowsXP的标准。对于很多新游戏而言都以Direct X 11为接口。Direct X有很多API接口, 可以分为以下几个部分:

Direct Draw和Driect 3D为主的显示部分。其中Direct Draw是负责平面显示的,而Direct 3D是负责3D运算的。通常而言大型3D游戏运用的就是Direct 3D部分(当然,如果采用Direct X作渲染的话)。

以DirectSound为主的声音部分

以DirectInput为主的输入设备,键盘鼠标遥感等游戏控制设备的输入就在这里完成

以DirectPlay为主的网络波分,方便网络游戏等操作……

Direct X借助Windows的顺风车已经占领了相当大的 市场,但是仅仅支持Windows系统这个弊端就促使其他操作系统进行自己的多媒体编程计划,目前最强大的就是OpenGL。

OpenGL是什么?

OpenGL是由开源社区提供的免费开源的多媒体编程接口,全称是Open Graphics Library。OpenGL功能非常强大,但是使用起来也是相当的复杂, 开源社区为任何操作系统提供OpenGL支持,所以适用范围也是相当的广。很多游戏开发采用OpenGL作为渲染方式,这样可以方便的向Linux和OS X等平台移植。

而且另一个超级编程语言java也已经完成了和OpenGL的整合,意味着使用java 3D编写的3D程序等可以实现OpenGL整合。当然是用java 3D也可以调用Direct X来进行加速。

在非Windows平台下,目前仅能使用OpenGL进行加速,而在Windows平台下视频功能可以由DirectX或者OpenGL完成。由于开发商的选择不同,通常的硬件都是支持者两种加速方式的。客观的来说在超高端硬件上对OpenGL的支持更好。

在Windows平台下,常规硬件(非服务器级别的)下,Direct X对3D的渲染性能要比OpenGL略微好点,尤其是在Windows7/8上。但是在Linux平台下OpenGL的渲染要比在Windows下对OpenGL的渲染强。

总的来说,Windows下Direct X性能比较好,不过Open GL也不差。但是同样是OpenGL在Linux,OS X下比Windows下渲染效果要好。

Direct X和OpenGL是什么及有何区别的更多相关文章

  1. Windows下Qt开发环境:OpenGL导入3DMax模型(.3DS)

    参考:http://blog.csdn.net/cq361106306/article/details/41876541 效果: 源代码: 解释: CLoad3DS.h为加载3DMax模型的头文件,C ...

  2. 20个不可思议的 WebGL 示例和演示

    WebGL 是一项在网页浏览器呈现3D画面的技术,有别于过去需要安装浏览器插件,通过 WebGL 的技术,只需要编写网页代码即可实现3D图像的展示.WebGL 可以为 Canvas 提供硬件3D加速渲 ...

  3. OpenGL FrameBufferCopy相关Api比较(glCopyPixels,glReadPixels,glCopyTexImage2D,glFramebufferTexture2D)

    OpenGL FrameBufferCopy相关Api比较 glCopyPixels,glReadPixels,glCopyTexImage2D,glFramebufferTexture2D 标题所述 ...

  4. OpenGL笔试题

    简述FrameBuffer,RenderBuffer,Depth Buffer,Framebuffer attachment,Stencil buffer的关系 简述利用OpenGL执行图像叠加(大P ...

  5. C#使用原生的Directx和OpenGL绘图

    原文 混合语言编程-C#使用原生的Directx和OpenGL绘图的方法 由于项目需要做一些图形展示,所以就想到了使用Directx和OpenGL来绘图,但项目准备使用C#来开发(大家比较熟悉C#), ...

  6. OpenGL立方体在世界坐标系中_缩放_旋转_平移_顶点片源着色器_光照作用_棋盘纹理贴图

    读取bmp等图片格式中的像素还有难度,就先用这个棋盘图象素来弄了 代码打错一个就一直First-chance exception ,貌似还有一个要用q或者Q才能成功退出,不知道缺少哪句,我用窗口红叉退 ...

  7. 通过 Autostereograms 案例学习 OpenGL 和 OpenCL 的互操作性

    引言 在过去的十年里, GPU (图形处理单元)已经从特殊硬件(特供)转变成能够在数值计算领域开辟新篇章的高性能计算机设备. 很多算法能够使用拥有巨大的处理能力的GPU来快速运行和处理大数据量.即使在 ...

  8. 从零开始学习OpenGL ES之一 – 基本概念

    我曾写过一些文章介绍iPhone OpenGL ES编程,但大部分针对的是已经至少懂得一些3D编程知识的人.作为起点,请下载我的OpenGL Xcode项目模板,而不要使用Apple提供的模板.你可以 ...

  9. OpenGL book list

      From: https://www.codeproject.com/Articles/771225/Learning-Modern-OpenGL   A little guide about mo ...

随机推荐

  1. bzoj 1626: [Usaco2007 Dec]Building Roads 修建道路 -- 最小生成树

    1626: [Usaco2007 Dec]Building Roads 修建道路 Time Limit: 5 Sec  Memory Limit: 64 MB Description Farmer J ...

  2. web前端 -- 页面设计小技巧

    1:进入网页时淡入淡出的效果. <meta http-equiv=”Page-Exit”; content=”blendTrans(Duration=1.0)”> 在头部head之间加入此 ...

  3. WPF中的导航框架(一)——概述

    有的时候,我们需要一个支持页面跳转的UI,例如文件浏览器,开始向导等.对于这样的界面,简单的可以使用ContentControl + ContentTemplateSelector的方式来实现,但是有 ...

  4. [置顶] think in java interview-高级开发人员面试宝典(三)

    收集自Oracle公司的10次(60道)电话面试全部问答(英语) Q: What environment variables do I need to set on my machine in ord ...

  5. 软件版本GA,RC,alpha,beta,Build 含义

    (1)RC:(Release Candidate) Candidate是候选人的意思,用在软件上就是候选版本.Release.Candidate.就是发行候选版本.和Beta版最大的差别在于Beta阶 ...

  6. Android 4.0 x86安装教程 附带联网参数详细设置

    Android 4.0 x86是一个可以支持在电脑上运行的Android 4.0系统.没有手机一样也可以体验Android 4.0.这对玩机爱好者们来说也算得上是一个不大不小的好消息.不过目前的And ...

  7. monkey源代码分析之事件注入方法变化

    在上一篇文章<Monkey源代码分析之事件注入>中.我们看到了monkey在注入事件的时候用到了<Monkey源代码分析番外篇之Android注入事件的三种方法比較>中的第一种 ...

  8. JQuery与JavaScript onload的区别

    1.window.onload 不能有多个,后面的功能会覆盖前面.而jQuery(document).ready()可以存在多个. 2.window.onload 在页面所有元素(包括图片,引用文件) ...

  9. HDU 3949 XOR 高斯消元

    题目大意:给定一个数组,求这些数组通过异或能得到的数中的第k小是多少 首先高斯消元求出线性基,然后将k依照二进制拆分就可以 注意当高斯消元结束后若末尾有0则第1小是0 特判一下然后k-- 然后HDU输 ...

  10. Logback的配置和使用(终极)

    1.logback介绍 logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback-classic和logback-acces ...