`
mmdev
  • 浏览: 12932164 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

【3D图像编程】DirectX Vs OpenGL

 
阅读更多

3D编程的第一个问题就是用何种API:OpenGL还是Direct3D?以下是它们的一些比较:

1 操作系统平台:
如果你的操作系统是Windows,你可以选择。如果是Unix、Linux等,那么就只能用OpenGL。

2 易学易用性:
OpenGL相对来说比DirectX易学,能够很快入门(这是公认的)。即使你将来可能要用到Direct3D,OpenGL仍然不失为一种好的3D编程的入门途径,OpenGL中原汁原味的3D函数简直和大多数计算机图形学教材中的伪代码一模一样。

3 文档支持:
在网上你可以找到很多很好的OpenGL的文档、教程、例程等,特别是“红宝书”(相关链接和文档可以在本站OpenGL栏目找到)。但是,DirectX SDK所提供的文档难嚼多了(公认),在网上你也难以找到好的教程(本站的DirectX栏目所提供的几乎是全部能找到的不重复的中文资料)。另外,书店里有不少OpenGL的中文书,而DirectX只有“希望”出的一种,并且不是讲Direct3D的。

4 关于COM:
DirectX是基于COM的,而OpenGL不是。如果你对COM不是那么感冒的话,最好先选择OpenGL。但是,如果你将一直在Windows平台上做3D编程的话,总应该熟悉Direct3D,因为Microsoft/SGI/HP共同开发中的一种新的3D接口是基于COM的,它将和Direct3D比较接近。

5 移植性:
DirectX与Windows紧密相连,难以移植。而OpenGL是一种非常“干净的”API,无论从VB语言到VC语言、还是从Windows平台到Linux平台(几乎一样的C代码)的移植都非常容易(并且在GLUT里提供了平台无关的窗口管理库)。

6 多媒体性能:
由于DirectX包括了DirectSound、DirectInput等,如果Direct3D和它们一起使用,将比较容易控制声音、操纵杆等,这是DirectX的整体优势。当然,没有人反对你同时使用OpenGL和DirectSound,Quake就是这样做的。

7 速度:
很难说哪个更快,QUAKE用的是OpenGL的引擎,而Unreal用的是Direct3D,它们都非常著名。其实,程序的速度并不在于你选择了OpenGL或DirectX,它还至少和两个因素有关:你写的代码的质量(依赖于你对你使用的接口的熟悉程度),硬件的支持(包括硬件的驱动程序的支持)。

8 强壮性:
这样说吧,OpenGL调用发生了错误,它什么都不做;而DirectX出了错,它什么都做得出……

分享到:
评论

相关推荐

    《Visual C+实践与提高-图形图像编程篇》源代码(全)

    《Visual+C实践与提高-图形图像编程篇》源代码(全),很值得学习和借鉴的编程...综合提高篇综合应用了图形图像的知识,包括图形图像文件格式之间的转换、打印和打印预览、使用opengl和directx进行图形图像处理等内容。

    OpenGL-专业的图形程序接口

    OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。

    OpenGL-自主高性能三维GIS平台架构与实现(第二季)

    OpenGL:跨平台编程语言,跨平台的编程图像程序接口,将计算机的资源抽象成一个OpenGL对象,这些资源的操作重新为一个个的OpenGL指令。 OpenGL ES:是OpenGL三维图像API的子集,针对手机,pad和游戏主机等嵌入式设备...

    VRAR开发入门教程知识点总结以及必备知识总结.docx

    OpenGL / WebGL:图形API,处理3D图像渲染。 DirectX:微软Windows平台上重要的图形接口。 Shader Programming:着色器编程,控制材质表现和光照效果。 游戏引擎: Unity3D:流行的跨平台游戏引擎,支持VR/AR开发。...

    opengl及其基于vc6.0的开发

    简述了计算机3D图形、 图像与vc6.0的关系, 给出opengl的明确定义以及它与directX的区别。并进一步描述了OpenGL跨各种平台的移植性。文章从OpenGL的工作顺序、 状态机制及构成出发, 介绍了OpenGL的编程原理。最后,...

    基于ADO的企业员工简要信息管理软件

    主要的专业领域有:数据库信息管理(ADO.net + 数据库)、3D图形应用编程(OpenGL + DirectX)、图像应用编程、通信应用编程(TCP/IP + Socket)、系统应用编程(系统工具的模拟,如:各类下载工具、聊天程序、系统...

    VC与Labview、Matlab编程论文资料[2].rar

    MATCOM与VC_混合编程方法在图像处理中的应用.pdf MATLAB与VC_混合编程在系统辨识中的应用.pdf Matlab与VC接口在医学图像处理中的应用.pdf Matlab与VC混合编程技术与实现.pdf MATLAB与VC混合编程技术在数控机床...

    VC与Labview、Matlab编程论文资料

    MATCOM与VC_混合编程方法在图像处理中的应用.pdf MATLAB与VC_混合编程在系统辨识中的应用.pdf Matlab与VC接口在医学图像处理中的应用.pdf Matlab与VC混合编程技术与实现.pdf MATLAB与VC混合编程技术在数控机床...

    VC与Labview、Matlab编程论文资料[4].rar

    MATCOM与VC_混合编程方法在图像处理中的应用.pdf MATLAB与VC_混合编程在系统辨识中的应用.pdf Matlab与VC接口在医学图像处理中的应用.pdf Matlab与VC混合编程技术与实现.pdf MATLAB与VC混合编程技术在数控机床...

    数字图像图形处理C源代码包1

    一个基于DirectX的截图示例,又是MMX的新作^o^,你看懂了话都能截图了(14KB) 22,opengl1.zip OpenGL三维图形程序设计(539kb) 23,wingrap.zip Windows图形编程(189kb) 24,Graphics.zip VC图形编程的一个简单工程...

    易语言入门 易筋经前三章

    第一章、基础知识 ...OpenGL 三维图形编程 DirectX 游戏编程 网络编程 服务器> <聊天程序> <远程控制> <邮箱登录器> 追捕> <天气查询> 数据库编程 界面编程 <使用《易容大师》进行界面编程>

    纯VC代码实现可控的3D旋转立体体

    VC/C++源码,图形处理,3D,立方体 VC++代码实现旋转立方体,没有使用DirectX、OpenGL,允许你拖动滑块改变旋转角度,也能让立方体围绕某一方向旋转,虽然功能不多,但是代码极具参考价值,像这类程序很能考验编程水平...

    《易精经》前三章 PDF

    第一章、基础知识 ...OpenGL 三维图形编程 DirectX 游戏编程 网络编程 服务器> <聊天程序> <远程控制> <邮箱登录器> 追捕> <天气查询> 数据库编程 界面编程 <使用《易容大师》进行界面编程>

    dragon board 410c 中文开发文档

    图像处理部分:Adreno 306 GPU,支持先进的应用编程接口包含OpenGL ES 3.0, OpenCL, DirectX, 与 content security;视频部分:支持1080P 30帧的高清播放与H.264与H.265 720P的播放与捕获;相机集成ISP能达到13MP;...

    Visual C++ 编程资源大全(源码 图形)

    Screen.zip 一个基于DirectX的截图示例,又是MMX的新作^o^,你看懂了话都能截图了(14KB)<END><br>22,opengl1.zip OpenGL三维图形程序设计(539kb)<END><br>23,wingrap.zip Windows图形编程(189kb)<END><br>24...

    VC++.NET案例开发集锦源代码.part1

    第二章 图形图像处理—GDI+编程 案例1 绘制风格迥异的直线 案例2 绘制贝济埃曲线 案例3 不规则窗体的实现 案例4 如何在上传的图片上加上版权文字 案例5 在图片中绘制水印效果图 案例6 动态多边形 案例7 ...

    计算机图形学实验及课程设计源码

    在实验过程中,你可能需要使用图形库(如OpenGL、DirectX等)或编程语言(如C++、Python等)来完成实验任务。 请注意,在进行实验时,遵循实验指导书和教师的要求,并保持代码的合法性、安全性和道德性。

    通过GC Nano技术提升用户界面体验

     GC Vega系列适用于需要、GPU硬件和功能的SoC,这些功能包括:OpenGL ES 3.1,完整安卓扩展包(AEP)支持,包括硬件镶嵌/几何着色器(TS/GS)、DirectX 12、CTM(closetothemetal)GPU编程、混合射线跟踪、零驱动...

    单片机与DSP中的通过GC Nano技术提升用户界面体验

     GC Vega系列适用于需要最新、最好GPU硬件和功能的SoC,这些功能包括:OpenGL ES 3.1,完整安卓扩展包(AEP)支持,包括硬件镶嵌/几何着色器(TS/GS)、DirectX 12、CTM(closetothemetal)GPU编程、混合射线跟踪、...

    Ultra.Sdk-开源

    与操作系统无关的C ++多媒体SDK,用于开发演示,工具或游戏。 基于用于图像和3d渲染器的插件架构。 支持DirectX 9和OpenGL。 它涉及编码规则,高级对象编程,设计模式和单元测试。

Global site tag (gtag.js) - Google Analytics