网站大量收购闲置独家精品文档,联系QQ:2885784924

NETFramework中新托管Direct3D图形API的简介.doc

NETFramework中新托管Direct3D图形API的简介.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NETFramework中新托管Direct3D图形API的简介

.NET Framework 中新托管 Direct3D 图形 API 的简介 ? 发布日期: 12/6/2004?|?更新日期: 12/6/2004 Yahya H. Mirza 和 Henry da Costa 本文假设您熟悉 C++ 和 DirectX 摘要 DirectX 9.0 是必威体育精装版发展的面向 Windows 的 Microsoft 3D 图形技术。Direct3D 是 DirectX Graphics 子系统的一个主要组件,它在过去几年中的发展是如此迅速,以至于基础编程范例与最初相比已发生了很大的变化。本文介绍了非托管 Direct3D 体系结构的基础概念,并说明了托管 Direct3D 层如何提取非托管层。本文作者还介绍了 Geometry、Texture、Device 和其他类,并使用了 Samples SDK 中的代码。 本页内容 Direct3D 体系结构 Direct3D 管线 非托管的 Direct3D Direct3D 扩展 托管的 Direct3D 设备类 图形状态类 与几何形状相关的类 纹理类 托管的 D3DX 库 托管 DirectX 9.0 示例框架 GraphicsSample 类 初始化和清除 帧更新和呈现 小结 硬件加速的图形 API 所面临的基本挑战就是,让应用程序开发人员利用 3D 硬件领域中发生的快速技术革新的同时,允许图形硬件解决方案之间存在一定程度的兼容性和一致性。达到此目的的一种方法就是,由委员会定义一种标准,然后让每个供应商支持该标准。图形硬件供应商可以通过商定的扩展机制来革新和创建专用扩展。随着时间的推移,硬件供应商可以游说标准制定机构接受它们的专用扩展并将其作为标准的一部分。OpenGL 1.1 版就是该方法实现硬件互操作性的一个示例。它的一个局限是,需要很长的时间才能将供应商特定的革新合并到多供应商标准中,因此会面临标准作废的风险。 在 DirectX?9.0 中,DirectDraw? 和 Direct3D? 的功能组合到名为 DirectX Graphics 的单个 API 中。该组件的 Direct3D 部分将是本文的主要重点。在 Microsoft?Direct3D 中,程序员有两种选择:依赖固定功能管线或可编程管线。固定功能管线本身依赖于由 Direct3D 标准化的现有算法。这些固定功能是通过一组类似于 OpenGL 的固定的枚举值来公开的,这意味着 Direct3D 和 OpenGL 的固定功能管线均使用内部 switch 语句。在 switch 语句中与枚举值相对应的某些 case 可能是硬件加速的,这基于运行库所依赖的图形卡的功能。在 Direct3D 中,在使用固定功能管线时,程序员首先检查运行库,查看图形卡是否支持特定功能。 因为一些图形卡并不支持通过 Direct3D 公开的所有功能,所以在 Direct3D 中提供了一个用来探测图形硬件的机制。如果硬件不支持特定的图形功能,该检查将失败,并允许程序员查找其他的硬件加速算法。请记住以下要点:Direct3D 固定功能管线公开硬件加速的功能。尽管 Direct3D 有一个名为参考设备的仅限软件的仿真模式,但是,它设计用于调试和功能测试目的 — 而不是用来提供应用程序。 对于硬件和软件共同发展所面临的问题,另一个更有趣的方法是可编程管线。在可编程管线中,程序员可以定义自己的算法,而不是选取预定义的枚举值并让 Direct3D 执行算法。运行库将动态地编译基础图形硬件的算法。在这种情况下,Direct3D 运行库有一个实时 (JIT) 编译器,该编译器是硬件设备驱动程序的显式部分。硬件供应商负责为其特定的图形硬件提供 JIT 编译器。因此,Direct3D 充当图形虚拟机,它使用自定义的图形指令集高效地虚拟化图形处理器 (GPU)。 Direct3D 体系结构 尽管托管和非托管 Direct3D 编程层都是通过一系列对象公开的,但是您不应当将它们视为应用程序级别编程框架。Direct3D 体系结构的主要角色就是为更高级别的解决方案(如游戏引擎或布景图形 API)提供基本功能。为了帮助实现这些解决方案,Direct3D 扩展库显式提供其他功能。为了充分理解 Direct3D 体系结构,您不但必须了解所提取的功能,而且还要了解该功能的组织和公开方式。在以下几节中,我们将概述 Direct3D 体系结构的基本元素,并讨论如何通过非托管的 COM API 和托管 .NET 抽象层来公开它们。 Direct3D 管线 正如计算机硬件体系结构所常见的那样,3D 图形体系结构中使用的两个性能优化技术是管线化和并行化。通过 Direct3D 公开的算法在逻

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档