?? 固定功能流水線.htm
字號:
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">struct
Vertex<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">{<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><SPAN
style="mso-spacerun: yes"> </SPAN>FLOAT x, y,
z;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><SPAN
style="mso-spacerun: yes"> </SPAN>FLOAT nx, ny,
nz;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><SPAN
style="mso-spacerun: yes"> </SPAN>FLOAT tu,
tv;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">};<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><o:p> </o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">const
DWORD VertexFVF = ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1
);<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>IDirect3DDevice9::CreateVertexBuffer</SPAN></U>方法創建一個有足夠空間包含四個頂點的頂點緩存,如以下示例代碼所示。<SPAN
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">g_d3dDevice->CreateVertexBuffer(<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><SPAN
style="mso-spacerun: yes">
</SPAN>4*sizeof(Vertex), VertexFVF, <o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><SPAN
style="mso-spacerun: yes">
</SPAN>D3DUSAGE_WRITEONLY,<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><SPAN
style="mso-spacerun: yes">
</SPAN>D3DPOOL_DEFAULT, &pBigSquareVB);<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><o:p></o:p></SPAN></SPAN></P><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">Vertex * v;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">pBigSquareVB->Lock( 0, 0, (BYTE**)&v, 0 );<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[0].x<SPAN style="mso-spacerun: yes"> </SPAN>= 0.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[0].y<SPAN style="mso-spacerun: yes"> </SPAN>= 10.0;<SPAN style="mso-spacerun: yes"> </SPAN>v[0].z<SPAN style="mso-spacerun: yes"> </SPAN>= 10.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[0].nx = 0.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[0].ny = 1.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[0].nz = 0.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[0].tu = 0.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[0].tv = 0.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[1].x<SPAN style="mso-spacerun: yes"> </SPAN>= 0.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[1].y <SPAN style="mso-spacerun: yes"> </SPAN>= 0.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[1].z<SPAN style="mso-spacerun: yes"> </SPAN>= 10.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[1].nx = 0.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[1].ny = 1.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[1].nz = 0.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[1].tu = 0.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[1].tv = 0.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[2].x<SPAN style="mso-spacerun: yes"> </SPAN>= 10.0f; v[2].y<SPAN style="mso-spacerun: yes"> </SPAN>= 10.0f; v[2].z<SPAN style="mso-spacerun: yes"> </SPAN>= 10.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[2].nx = 0.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[2].ny = 1.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[2].nz = 0.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[2].tu = 0.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[2].tv = 0.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[3].x<SPAN style="mso-spacerun: yes"> </SPAN>= 0.0f; v[3].y<SPAN style="mso-spacerun: yes"> </SPAN>= 10.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[3].z = 10.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[3].nx = 0.0f; v[3].ny = 1.0f;<SPAN style="mso-spacerun: yes"> </SPAN>v[3].nz = 0.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">v[3].tu = 0.0f; v[3].tv = 0.0f;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">pBigSquareVB->Unlock();<o:p></o:p></SPAN></PRE>
<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>FVF)繪制一個正方形。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">g_d3dDevice->SetFVF(
VertexFVF );<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">g_d3dDevice->SetStreamSource(
0, pBigSquareVB, 4*sizeof(Vertex) );<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">g_d3dDevice->DrawPrimitive(
D3DPT_TRIANGLESTRIP, 0 ,2);<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>FVF傳遞給<U>IDirect3DDevice9::SetFVF</U>會指定一個傳統的FVF,頂點數據在數據流0中。<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=LVertex傳統類型><B><SPAN lang=EN-US
style="FONT-SIZE: 24pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-font-kerning: 18.0pt; mso-fareast-language: ZH-CN">LVertex傳統類型</SPAN></B></A><B><SPAN
lang=EN-US
style="FONT-SIZE: 24pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-font-kerning: 18.0pt; mso-fareast-language: ZH-CN"><o:p></o:p></SPAN></B></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"><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>FVF),如以下示例代碼所示。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">struct
LVertex<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">{<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><SPAN
style="mso-spacerun: yes"> </SPAN>FLOAT<SPAN
style="mso-spacerun: yes"> </SPAN>x, y,
z;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><SPAN
style="mso-spacerun: yes"> </SPAN>D3DCOLOR specular,
diffuse;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><SPAN
style="mso-spacerun: yes"> </SPAN>FLOAT<SPAN
style="mso-spacerun: yes"> </SPAN>tu,
tv;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">};<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><o:p> </o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN">const
DWORD VertexFVF = (D3DFVF_XYZ | D3DFVF_DIFFUSE |<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋體; mso-bidi-font-family: 宋體; mso-fareast-language: ZH-CN"><SPAN
style="mso-spacerun: yes">
</SPAN>D3DFVF_SPECULAR | D3DFVF_TEX1 );<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -