开放式图形库®(OpenGL®)和Direct3D计算机图形库之间存在一些差异,尽管并非所有这些都对程序员和最终用户显而易见。最大的区别在于每个图形库的开发和维护方式,OpenGL®主要由不同的利益相关方联合开发,Direct3D由Micros...
开放式图形库®(OpenGL®)和Direct3D计算机图形库之间存在一些差异,尽管并非所有这些都对程序员和最终用户显而易见。最大的区别在于每个图形库的开发和维护方式,OpenGL®主要由不同的利益相关方联合开发,Direct3D由Microsoft®开发和维护。Direct3D在其实现中也完全是专有的,而OpenGL®则遵循一个基本上开放的标准,除了一些获得专利的硬件例程外,OpenGL®和Direct3D库之间的最后一个主要区别在于它们支持的平台,因为OpenGL®可以在多种平台和语言上工作,虽然Direct3D只能在基于Microsoft®Windows®的系统上工作。OpenGL是一种开放源代码标准和抽象编程接口(API),用于在计算机程序中编程三维(3D)图形。在20世纪90年代早期到中期,当OpenGL®和Direct3D都可用于计算机程序员时,底层框架有很大的不同。随着时间的推移,图形硬件变得越来越普遍,成本也越来越低,许多高级功能被引入,这两个库都需要支持才能保持相关性。最终,OpenGL®和Direct3D之间的竞争导致这两个库具有几乎相同的功能,尽管仍存在一些细微的差异。大多数最终用户不知道OpenGL®或Direct3D是否用于设备或应用程序中,并且大量3D程序实际上包含对这两个库的支持。其中之一是OpenGL®和Direct3D之间最大和最不可避免的区别是它们将在哪些平台上运行Direct3D是Microsoft®Windows®软件开发工具包(SDK)的一部分,因此它特别依赖于只能在Windows®操作系统及其衍生产品中找到的组件。另一方面,OpenGL®,通常是跨平台开发的,并且尽可能少地依赖于操作特定的功能。一些程序的开发允许Direct3D在Windows®以外的操作系统上工作,尽管其功能通常会大大减少。从编程的角度来看,在总体设计上这些库。OpenGL®倾向于抽象图形硬件的使用,允许程序员使用一组核心函数进行绘图,然后依赖驱动程序直接访问硬件。Direct3D要求程序员在正在编写的程序中管理硬件的某些方面,这可以使Direct3D程序更加强大虽然很复杂,但也提供了更灵活的资源管理。最终,OpenGL®更容易编写程序,但硬件制造商更难为其编写驱动程序。或者,Direct3D有大量Microsoft®提供的工具和支持,但需要更多的硬件和编程知识才能使用。OpenGL®和Direct3D之间的最后一个区别是在主要标准版本之间添加新硬件和语言功能的方式。通过OpenGL®,硬件制造商能够实现称为扩展的特殊功能,这些功能可以立即访问新硬件的独特功能。使用Direct3D,这些功能需要通过Microsoft®处理,然后Microsoft®会通过官方分销渠道发布新功能。OpenGL®方法允许新功能可以快速使用,但会降低使用扩展的程序的总体兼容性,而Direct3D方法速度较慢,但可以保证不同系统之间的兼容性
-
发表于 2020-08-07 01:01
- 阅读 ( 1324 )
- 分类:电脑网络