Direct X和OpenGL是什么及有何区别
摘自: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是什么及有何区别的更多相关文章
- Windows下Qt开发环境:OpenGL导入3DMax模型(.3DS)
参考:http://blog.csdn.net/cq361106306/article/details/41876541 效果: 源代码: 解释: CLoad3DS.h为加载3DMax模型的头文件,C ...
- 20个不可思议的 WebGL 示例和演示
WebGL 是一项在网页浏览器呈现3D画面的技术,有别于过去需要安装浏览器插件,通过 WebGL 的技术,只需要编写网页代码即可实现3D图像的展示.WebGL 可以为 Canvas 提供硬件3D加速渲 ...
- OpenGL FrameBufferCopy相关Api比较(glCopyPixels,glReadPixels,glCopyTexImage2D,glFramebufferTexture2D)
OpenGL FrameBufferCopy相关Api比较 glCopyPixels,glReadPixels,glCopyTexImage2D,glFramebufferTexture2D 标题所述 ...
- OpenGL笔试题
简述FrameBuffer,RenderBuffer,Depth Buffer,Framebuffer attachment,Stencil buffer的关系 简述利用OpenGL执行图像叠加(大P ...
- C#使用原生的Directx和OpenGL绘图
原文 混合语言编程-C#使用原生的Directx和OpenGL绘图的方法 由于项目需要做一些图形展示,所以就想到了使用Directx和OpenGL来绘图,但项目准备使用C#来开发(大家比较熟悉C#), ...
- OpenGL立方体在世界坐标系中_缩放_旋转_平移_顶点片源着色器_光照作用_棋盘纹理贴图
读取bmp等图片格式中的像素还有难度,就先用这个棋盘图象素来弄了 代码打错一个就一直First-chance exception ,貌似还有一个要用q或者Q才能成功退出,不知道缺少哪句,我用窗口红叉退 ...
- 通过 Autostereograms 案例学习 OpenGL 和 OpenCL 的互操作性
引言 在过去的十年里, GPU (图形处理单元)已经从特殊硬件(特供)转变成能够在数值计算领域开辟新篇章的高性能计算机设备. 很多算法能够使用拥有巨大的处理能力的GPU来快速运行和处理大数据量.即使在 ...
- 从零开始学习OpenGL ES之一 – 基本概念
我曾写过一些文章介绍iPhone OpenGL ES编程,但大部分针对的是已经至少懂得一些3D编程知识的人.作为起点,请下载我的OpenGL Xcode项目模板,而不要使用Apple提供的模板.你可以 ...
- OpenGL book list
From: https://www.codeproject.com/Articles/771225/Learning-Modern-OpenGL A little guide about mo ...
随机推荐
- ExifInterface针对照片的使用
ExifInterface是保存照片信息的,那么我们在有需要的时候就可以通过这类,来获取照片的一些数码参数来做适当来逻辑处理,比较典型的案例就是android有的机型拍照或者选择照片后,照片可能会被旋 ...
- python中获取当前位置所在的行号和函数名(转)
http://www.vimer.cn/2010/12/%E5%9C%A8python%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E4%BD%8D%E7 ...
- Papilio Pro Boards
http://papilio.cc/index.php?n=Papilio.PapilioOne The Papilio is an Open Source FPGA development boar ...
- vue项目条形码和二维码生成工具试用
项目开发需要,优惠券分不同类型,简单的使用id生成条形码供店铺使用,麻烦点的需要多个字段的就需要使用二维码来展示了,对应的效果如下 条形码(一维码)使用工具code128 需引入code128.js ...
- matlab colormap
This table lists the built-in colormaps functions. Colormap Name Color Scale parula
- SpringSecurity3整合CAS实现单点登录
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- ORACLE FORMS PL/SQL PACKAGE SHOW TIPS WINDOW
--在开发ORACLE FORM的程序中,要编写PL/SQL程序包产出异常情况时,直接在FORM弹出一个异常提示窗口 DECLARE BEGIN app_exception.raise_excepti ...
- 固定的价格就意味着背叛——《practices of an agile developper》
“对这个项目,我们必须要有固定的报价.虽然我们还不清楚项目的具体情况,但仍要有一个报价.到星期一,我需要整个团队的评估,并且我们必须要在年末交付整个项目.” Venkat & Andy 提出了 ...
- sqlserver锁机制详解(sqlserver查看锁)
简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但对于 大多数数据库来说是需要同时处理多个查询 ...
- [Android Pro] Android 手机root 并 安装 BusyBox pro 和 Android Terminal Emulator
Android root 工具:http://www.z4root.cn/yijianrootshouji/ 推荐的是:root精灵手机版 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说 ...