direct3D入门.pdf

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

仅供个人学习之用,请勿用于任何商业用途 翻译:clayman Clayman_joe@ 第一章 Direct3D 入门 创建设备 Device 类是 DirectX 里的所有绘图操作所必须的。可以把这个类假想为真实的图形卡。场景里所有图形对象都依赖于 device 。 一台计算机里可以有一个到几个 device,在Mnaged DirctX3D 里,你可以控制任意多个 device 。 Device 共有三个构造函数,我们现在只讨论其中的一个,但会在后边的内容里讨论其他的。先来看看具有如下函数签名的构造 函数: public Device(int adapter,DeviceType deviceType,Control renderWindow,CreateFlags behaviorFlags, PresentParameters[] presentationParameters); (构造函数的第二种重载类似于上边这个,但它接受来自非托管(或者非windows form )的窗口句柄作为 renderWindow 。而 只接受一个 IntPtr 参数的重载是非托管 com 组建指向 Idirect3Ddevice9 的接口。当你的代码需要和非托管的程序协作时则应用它) 好了,这些参数是什么意思,以及我们怎样来使用呢?呵呵,参数 adapter 表示我们将要使用哪个物理图形卡。计算机里的所 有图形卡都有一个唯一的适配器标识符(通常是 0 到你的图形卡数量-1),默认的显卡总是标识为0 的图形卡。 下一个参数,DeviceType ,告诉了DirectX3D 你要创建哪种类型的 device 。这里最常用的值是DeviceType.Hardware ,表示你将 创建一个硬件设备。另一个选项 DeviceType.Reference ,这种设备允许你使用“参考光栅器”(reference rasterizer ),所有的效果由 DirectX3D 运行时来实现,以很慢、很慢、很慢的速度运行^_^ 。应该仅在调试或测试你的显卡不支持的特性时使用这个选项。 (注意参考光栅器只包含在DirectX SDK 里,so DirectX 运行时是不能使用这个特性的。最后一个为 DeviceType.Software 的值 允许使用用户自定义的软件光栅器(custom software rasterizer )在不确定是否有这样一个光栅器存在时,忽略这个选项吧^_^ 。) rendrWindow 表示把设备绑定到的窗口。因为 windows form 控件类都包含了一个窗口句柄(windows handle ),所以很容易把一 个确定的类作为渲染窗口。可以使用 form、panel 或其他任意的控件作为这个参数的值。但现在,我们只用 form 。 下一个参数用来描述设备创建之后的行为。大部分 CreateFlags 枚举的成员都能组合起来使用,使设备具有多种行为。但有一 些 flag 是相互排斥的,稍后讨论它们。我们现在只使用 SoftwareVertexProcessing 标志。这个标志适合于所有顶点处理都用 CPU 计 算的情况。因此,这自然比所有点都用 GPU 处理要慢,因为我们不确定你的显卡是否支持所有特性。So,安全第一,假设你的 CPU 能完成现在的任务。 最后一个参数,它表示你的设备把数据呈现到显示器的方式。Presentation Parameter 类的外观都可以由这个类来控制。我们过 后再来深入讨论它的构造函数,现在,我们只关心“Windowed ”成员和“SwapEffect”成员。 Windowed 成员是一个布尔类型的值,决定设备是全屏还是窗口模式。 SwapEffect 成员用于控制缓存交换的行为。如果选择了 SwapEffect.Flip,运行时会创建额外的后备缓冲(back buffer ),并且在 显示时拷贝 front buffer 。SwapEffect.Copy 与 Flip 相似,但要求你把后备缓冲设为 1。我们将要选择的 SwaoEffect.Discard,如果缓冲 没有准备好被显示,则会丢弃缓冲中的内容(which simply discards the contents of the buffer if it isn’t ready to be prese

文档评论(0)

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

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档