- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 专升本语文资料.docx VIP
- 西南15G701-2-混凝土结构轻质填充墙构造图集.pdf
- 《在祖国怀抱里课件》小学音乐冀少2011课标版三年级上课件.ppt
- 烹饪专业调研报告.pdf
- 城市轨道交通安全管理项目2城市轨道交通危险源辨识与安全标志.pptx VIP
- 铁工电〔2023〕54号 国铁集团关于印发《普速铁路工务安全规则》的通知.docx VIP
- 新人教版(部编)一年级语文上册《文语文园地六和大人一起读》优质课教案_20.pdf
- 燃气管道第三方施工管理安全技术规范.pdf
- 生活中的位置(课件)2024-2025-学年度苏教版(2024)数学一年级上册.pptx VIP
- 说课评价量表.doc VIP
文档评论(0)