⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 设备.htm

📁 此文件是微软MSDN中d3d部分资料的翻译文件
💻 HTM
📖 第 1 页 / 共 5 页
字号:
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
  href="http://www.gesoftfactory.com/developer/Device.htm#设备类型">设备类型</A></SPAN></U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><o:p></o:p></SPAN> 

  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l15 level1 lfo1"><U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
  href="http://www.gesoftfactory.com/developer/Device.htm#创建设备">创建设备</A></SPAN></U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><o:p></o:p></SPAN> 

  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l15 level1 lfo1"><U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
  href="http://www.gesoftfactory.com/developer/Device.htm#选择设备">选择设备</A></SPAN></U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><o:p></o:p></SPAN> 

  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l15 level1 lfo1"><U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
  href="http://www.gesoftfactory.com/developer/Device.htm#丢失的设备">丢失的设备</A></SPAN></U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><o:p></o:p></SPAN> 

  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l15 level1 lfo1"><U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
  href="http://www.gesoftfactory.com/developer/Device.htm#检测硬件支持">检测硬件支持</A></SPAN></U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><o:p></o:p></SPAN> 

  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l15 level1 lfo1"><U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
  href="http://www.gesoftfactory.com/developer/Device.htm#处理顶点数据">处理顶点数据</A><o:p></o:p></SPAN></U> 

  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l15 level1 lfo1"><U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
  href="http://www.gesoftfactory.com/developer/Device.htm#设备支持的图元类型">设备支持的图元类型</A></SPAN></U><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><o:p></o:p></SPAN> 
  </LI></UL>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">从结构上讲,<SPAN 
lang=EN-US>Direct3D设备包含一个变换模块、一个光照模块和一个光栅化模块,如下图所示。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><!--[if gte vml 1]><v:shapetype 
id=_x0000_t75 coordsize = "21600,21600" o:preferrelative = "t" o:spt = "75" 
filled = "f" stroked = "f" path = " m@4@5 l@4@11@9@11@9@5 xe"><v:stroke 
joinstyle = "miter"></v:stroke><v:formulas><v:f eqn = 
"if lineDrawn pixelLineWidth 0 "></v:f><v:f eqn = "sum @0 1 0 "></v:f><v:f eqn = 
"sum 0 0 @1 "></v:f><v:f eqn = "prod @2 1 2 "></v:f><v:f eqn = 
"prod @3 21600 pixelWidth "></v:f><v:f eqn = 
"prod @3 21600 pixelHeight "></v:f><v:f eqn = "sum @0 0 1 "></v:f><v:f eqn = 
"prod @6 1 2 "></v:f><v:f eqn = "prod @7 21600 pixelWidth "></v:f><v:f eqn = 
"sum @8 21600 0 "></v:f><v:f eqn = "prod @7 21600 pixelHeight "></v:f><v:f eqn = 
"sum @10 21600 0 "></v:f></v:formulas><v:path o:extrusionok = "f" 
gradientshapeok = "t" o:connecttype = "rect"></v:path><o:lock aspectratio="t" 
v:ext="edit"></o:lock></v:shapetype><v:shape id=_x0000_i1061 
style="WIDTH: 237.35pt; HEIGHT: 93.35pt" type = "#_x0000_t75" coordsize = 
"21600,21600"><v:imagedata o:title="d3ddev" src = 
"Device_files/image001.gif"></v:imagedata></v:shape><![endif]--><![if !vml]><img border=0 width=316 height=124
src="Device_files/image001.gif" v:shapes="_x0000_i1061"><![endif]><o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">当前<SPAN 
lang=EN-US>Direct3D支持两种主要类型的Direct3D设备:一种是硬件抽象层(HAL)设备,HAL设备具有硬件光栅化加速,并可用软硬件顶点处理进行着色操作;另一种是参考设备。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">可以认为这些设备是两个单独的驱动程序。软件和参考设备由软件驱动程序表示,而<SPAN 
lang=EN-US>HAL设备由硬件驱动程序表示。这些设备最通常的用法是使用HAL设备发行应用程序,而用参考设备做特性测试。这些参考设备由第三方提供用于模拟特定的设备——例如,尚未发布的还在开发中的硬件。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">应用程序创建的设备必须与应用程序所运行的图形硬件的能力相对应。<SPAN 
lang=EN-US>Direct3D以两种方式提供对渲染的支持,一种是访问安装在计算机中的三维硬件,另一种是用软件模拟三维硬件的能力。因此,对于硬件访问和软件模拟,Direct3D都提供了相应的设备。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">硬件加速设备提供了比软件设备好得多的性能。<SPAN 
lang=EN-US>HAL设备类型在所有支持Direct3D的图形适配器上都可用。在大多数情况下,应用程序将具有硬件加速的计算机作为目标平台,并依赖软件模拟以适应低端计算机。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">除了参考设备,软件设备并不总是支持与硬件设备相同的特性。应用程序应该总是查询设备能力以确定该设备支持的特性。<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">因为<SPAN 
lang=EN-US>Microsoft DirectX&reg; 
9.0提供的软件设备和参考设备的行为与HAL设备完全相同,所以针对HAL设备开发的应用程序代码也可以用在软件设备或参考设备上而无需修改。注意,虽然Direct3D提供的软件设备或参考设备的行为与HAL设备完全相同,但是设备的能力肯定会不同,某特定的软件设备可能仅实现一个较小的能力集。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 2"><B><SPAN 
style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">行为<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">Direct3D允许应用程序指定设备的行为和设备的类型。<U>IDirect3D9::CreateDevice</U>方法允许用一个或多个行为标志的组合控制Direct3D设备的整体行为。这些标志指定让Direct3D运行库维护哪些以及不维护哪些行为,同时设备类型指定使用哪个驱动程序。虽然有些设备行为标志的组合是无效的,但是在各种不同类型的设备上还是有可能会用到所有的设备行为标志的。例如,在一个用D3DCREATE_PUREDEVICE标志创建的设备上指定D3DDEVTYPE_SW是有效的。<o:p></o:p></SPAN></P>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1"><A 
name=设备类型><B><SPAN 
style="FONT-SIZE: 24pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 18.0pt; mso-fareast-language: ZH-CN">设备类型<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></B></A></P><SPAN 
style="mso-bookmark: 设备类型"></SPAN>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 2"><B><SPAN 
lang=EN-US 
style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">HAL设备<o:p></o:p></SPAN></B></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">最主要的设备类型是硬件抽象层(<SPAN 
lang=EN-US>HAL)设备,它支持硬件光栅化加速和软硬件顶点处理。如果应用程序在一台安装了支持Microsoft&reg; 
Direct3D&reg;的显示适配器的计算机上运行,那么应用程序应该用它进行三维操作。Direct3D 
HAL设备用硬件实现变换、光照及光栅化模块的部分或全部。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">应用程序不直接访问三维加速卡,它们调用<SPAN 
lang=EN-US>Direct3D的函数和方法,而Direct3D通过HAL访问硬件。如果应用程序在支持HAL的计算机上运行,那么通过使用HAL设备它将获得最佳的性能。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">要在<SPAN 
lang=EN-US>C++程序中创建一个HAL设备,应该调用<U>IDirect3D9::CreateDevice</U>方法,并将D3DDEVTYPE_HAL常数作为设备类型传入。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">注意<SPAN 
lang=EN-US><SPAN style="mso-tab-count: 1">&nbsp;&nbsp; 
</SPAN></SPAN></SPAN></B><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">硬件设备不能渲染到<SPAN 
lang=EN-US>8位渲染目标表面。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 2"><B><SPAN 
style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">参考设备<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">Direct3D支持另一种称为参考设备或参考光栅化器的设备类型。与软件设备不同的是,参考光栅化器支持所有Direct3D特性。因为这些特性的实现是为了精确而不是为了速度,并且是用软件实现,所以结果不会很快。虽然参考光栅化器尽可能地使用了特殊的CPU指令,但它不是为正式零售的应用程序准备的。应该仅把参考光栅化器用于特性测试或演示用途。<o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">要在<SPAN 
lang=EN-US>C++程序中创建一个参考设备,应该调用<B 
style="mso-bidi-font-weight: normal">IDirect3D9::CreateDevice</B>方法,并将D3DDEVTYPE_REF常数作为设备类型传入。<o:p></o:p></SPAN></SPAN></P>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<P class=MsoNormal 
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 1"><A 
name=创建设备><B><SPAN 
style="FONT-SIZE: 24pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 18.0pt; mso-fareast-language: ZH-CN">创建设备<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></B></A></P><SPAN 
style="mso-bookmark: 创建设备"></SPAN>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -