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

📄 渲染.htm

📁 此文件是微软MSDN中d3d部分资料的翻译文件
💻 HTM
📖 第 1 页 / 共 5 页
字号:
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"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">本节介绍呈现(<SPAN 
lang=EN-US>presentation)应用程序编程接口(API),并讨论了将一个场景呈现在显示设备上的相关问题。<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; 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><U><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
href="http://www.gesoftfactory.com/developer/Rendering.htm#呈现场景入门">呈现场景入门</A><o:p></o:p></SPAN></U></P>
<P class=MsoNormal><U><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
href="http://www.gesoftfactory.com/developer/Rendering.htm#窗口模式下的多个视区">窗口模式下的多个视区</A><o:p></o:p></SPAN></U></P>
<P class=MsoNormal><U><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
href="http://www.gesoftfactory.com/developer/Rendering.htm#多显示器操作">多显示器操作</A><o:p></o:p></SPAN></U></P>
<P class=MsoNormal><U><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
href="http://www.gesoftfactory.com/developer/Rendering.htm#操作深度缓存">操作深度缓存</A><o:p></o:p></SPAN></U></P>
<P class=MsoNormal><U><SPAN lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN"><A 
href="http://www.gesoftfactory.com/developer/Rendering.htm#存取前颜色缓存">存取前颜色缓存</A><o:p></o:p></SPAN></U></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"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">呈现<SPAN 
lang=EN-US>API是控制设备状态的一组方法,这些状态会影响用户在显示器上所看到的。这些方法包括设置显示模式和在每一帧用来把图像呈现给用户的方法等。<o:p></o:p></SPAN></SPAN></P>
<UL type=disc>
  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l21 level1 lfo11"><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">IDirect3DDevice9::Present 
  <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: l21 level1 lfo11"><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">IDirect3DDevice9::Reset 
  <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: l21 level1 lfo11"><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">IDirect3DDevice9::GetGammaRamp 
  <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: l21 level1 lfo11"><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">IDirect3DDevice9::SetGammaRamp 
  <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: l21 level1 lfo11"><SPAN 
  lang=EN-US 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">IDirect3DDevice9::GetRasterStatus<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>API,熟悉以下术语是必需的。<o:p></o:p></SPAN></SPAN></P>
<UL type=disc>
  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l10 level1 lfo14"><SPAN 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">前缓存。是一块矩形内存,由图形适配器解释并显示在显示器或其它输出设备上。<SPAN 
  lang=EN-US><o:p></o:p></SPAN></SPAN> 
  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l10 level1 lfo14"><SPAN 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">后缓存。是一个包含可被切换为前缓存的内容的表面。<SPAN 
  lang=EN-US><o:p></o:p></SPAN></SPAN> 
  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l10 level1 lfo14"><SPAN 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">交换链。是一些可连续被呈现到前缓存的后缓存组成的集合。一般来说,一个全屏交换链用<SPAN 
  lang=EN-US>flipping设备驱动程序接口(DDI)呈现后续图像,一个窗口交换链用blitting设备驱动程序接口呈现图像。<o:p></o:p></SPAN></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>Microsoft&reg; DirectX&reg; 9.0的Microsoft&reg; 
Direct3D&reg;有一个交换链作为设备的属性,所以每个设备总是至少有一个交换链。<U>IDirect3DDevice9</U>接口有一组方法操作隐式交换链,这些方法是交换链自身接口的复制品。应用程序可以创建附加的交换链,但是,对一般的单窗口或全屏应用程序而言这并不是必需的。<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">DirectX 
9.0的Direct3D 
API不直接暴露前缓存。因此,应用程序不能锁定或渲染到前缓存。细节请参阅<U>存取前颜色缓存</U>。<o:p></o:p></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></B><SPAN 
lang=EN-US 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">DirectX 
7.0提供了许多需要一起调用的呈现API。IDirectDraw7::SetCooperativeLevel,IDirectDraw7::SetDisplayMode和IDirectDraw7:CreateSurface序列就是很好的例子。另外,IDirectDrawSurface7::Flip和IDirectDrawSurface7::Blt方法通知将渲染完的帧数据传送到显示器。DirectX 
9.0将这些不同组的API合并为两个主要的方法:Reset和Present。Reset归入了SetcooperativeLevel,SetDisplayMode,CreateSurface和Flip的一些参数。Present归入了Flip和作为呈现API使用的Blt。<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">对<U><SPAN 
lang=EN-US>IDirect3D9::CreateDevice</SPAN></U>的调用表示隐式地重置设备。<SPAN 
lang=EN-US>DirectX 9.0 
API没有主表面的概念,应用程序无法创建一个代表主表面的对象。主表面被视为设备的内部属性。<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>gamma)值通过<B 
style="mso-bidi-font-weight: normal">IDirect3DDevice9::GetGammaRamp</B>和<B 
style="mso-bidi-font-weight: normal">IDirect3DDevice9::SetGammaRamp</B>方法进行操作。<B 
style="mso-bidi-font-weight: normal"><o:p></o:p></B></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>
<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"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">除了<SPAN 
lang=EN-US>Direct3DDevice对象拥有并操纵的交换链外,应用程序可以调用<U>IDirect3DDevice9::CreateAdditionalSwapChain</U>方法创建附加的交换链,这样就可以从同一设备呈现到不同的视区。<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">一般情况下,应用程序为每个视区创建一个交换链,并将每个交换链与特定的视区相关联。应用程序将图像渲染到每个交换链的后缓存中,然后调用<U><SPAN 
lang=EN-US>IDirect3DDevice9::Present</SPAN></U>方法单独呈现它们。注意同一时刻每个适配器只能有一个交换链是全屏的。<SPAN 
lang=EN-US><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>
<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"><SPAN 
style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">当设备成功地重置(<U><SPAN 
lang=EN-US>IDirect3DDevice9::Reset</SPAN></U>)或在全屏模式下创建(<U><SPAN 
lang=EN-US>IDirect3D9::CreateDevice</SPAN></U>)时,创建该设备的<SPAN 
lang=EN-US>Microsoft&reg; 
Direct3D&reg;对象将被标记为拥有系统中所有的适配器。这种状态被称为独占模式,且Direct3D对象拥有独占模式。独占模式意味着由其它Direct3D对象创建的设备既不能进行全屏操作也不能分配显存。另外,当一个Direct3D对象进入独占模式时,除了当前进入全屏模式以外的所有设备都被置为丢失状态。细节请参阅<U>丢失的设备</U>。<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>Direct3D对象拥有独占模式时,可以把设备分为两类。第一类设备具有以下特点:<o:p></o:p></SPAN></SPAN></P>
<UL type=disc>
  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l18 level1 lfo17"><SPAN 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">它们由创建全屏设备的<SPAN 
  lang=EN-US>Direct3D对象创建。<o:p></o:p></SPAN></SPAN> 
  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l18 level1 lfo17"><SPAN 
  style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-fareast-language: ZH-CN">它们具有和全屏设备相同的焦点窗口。<SPAN 
  lang=EN-US><o:p></o:p></SPAN></SPAN> 
  <LI class=MsoNormal 

⌨️ 快捷键说明

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