📄 可编程数据流模型 (programmable stream model).htm
字号:
style="mso-tab-count: 1"> </SPAN><SPAN class=GramE>{ 0</SPAN>, 12,
D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR,<SPAN
style="mso-spacerun: yes"> </SPAN>0 },<o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><SPAN
style="mso-tab-count: 1"> </SPAN><SPAN class=GramE>{ 0</SPAN>, 28,
D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR,<SPAN
style="mso-spacerun: yes"> </SPAN>1 },<o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN style="mso-tab-count: 1"> </SPAN><SPAN class=GramE><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">{
1</SPAN></SPAN><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">,
0, D3DDECLTYPE_FLOAT2,<SPAN style="mso-spacerun: yes">
</SPAN>D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },<o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN style="mso-tab-count: 1"> </SPAN><SPAN class=GramE><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">{
2</SPAN></SPAN><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">,
0, D3DDECLTYPE_FLOAT2,<SPAN style="mso-spacerun: yes">
</SPAN>D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },<o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN style="mso-tab-count: 1"> </SPAN><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">D3DDECL_<SPAN
class=GramE>END()</SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">};<o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">m_pd3dDevice-><SPAN
class=SpellE><SPAN class=GramE>SetStreamSource</SPAN></SPAN><SPAN
class=GramE>(</SPAN> 0, <SPAN class=SpellE>m_pVBPosColor</SPAN>, 0, <SPAN
class=SpellE>sizeof</SPAN>(POSCOLORVERTEX) );<o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">m_pd3dDevice-><SPAN
class=SpellE><SPAN class=GramE>SetStreamSource</SPAN></SPAN><SPAN
class=GramE>(</SPAN> 1, m_pVBTexC0, 0, <SPAN
class=SpellE>sizeof</SPAN>(TEXC0VERTEX) );<o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-ALIGN: left; mso-pagination: widow-orphan"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">m_pd3dDevice-><SPAN
class=SpellE><SPAN class=GramE>SetStreamSource</SPAN></SPAN><SPAN
class=GramE>(</SPAN> 2, m_pVBTexC1, 0, <SPAN
class=SpellE>sizeof</SPAN>(TEXC1VERTEX) );<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"
align=left><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">以上所有三种情况,都可以调用以下<U><SPAN
lang=EN-US>IDirect3DDevice9::DrawPrimitive</SPAN></U>。<SPAN
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">m_pd3dDevice-><SPAN
class=SpellE><SPAN class=GramE>DrawPrimitive</SPAN></SPAN><SPAN
class=GramE>(</SPAN> D3DPT_TRIANGLEFAN, 0, NUM_TRIS );<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"
align=left><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">这个例子显示了数据流在解决重复的数据<SPAN
lang=EN-US>/冗余数据在总线上的传输(也就是说,带宽的浪费)问题上的灵活性。<o:p></o:p></SPAN></SPAN></P>
<DIV class=MsoNormal style="TEXT-ALIGN: center; mso-pagination: widow-orphan"
align=center><SPAN lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-outline-level: 1"
align=left><A name=顶点颜色着色器><B><SPAN
style="FONT-SIZE: 24pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 18.0pt">顶点颜色着色器</SPAN></B></A><B><SPAN
lang=EN-US
style="FONT-SIZE: 24pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 18.0pt"><o:p></o:p></SPAN></B></P>
<DIV class=MsoNormal style="TEXT-ALIGN: center; mso-pagination: widow-orphan"
align=center><SPAN lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"
align=left><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">本主题显示了初始化和使用一个用到了位置和漫反射色的简单顶点着色器的必须步骤。<SPAN
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"
align=left><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">第一步是声明用来保存位置和颜色的结构,如以下示例代码所示。<SPAN
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN class=SpellE><SPAN class=GramE><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">struct</SPAN></SPAN></SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
<SPAN class=SpellE>XYZBuffer</SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">{<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><SPAN
style="mso-spacerun: yes"> </SPAN>FLOAT x, y,
z;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">};<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p> </o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN class=SpellE><SPAN class=GramE><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">struct</SPAN></SPAN></SPAN><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
<SPAN class=SpellE>ColBuffer</SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">{<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><SPAN
style="mso-spacerun: yes"> </SPAN>D3DCOLOR
color;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">};<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"
align=left><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">下一步是创建顶点着色器声明,如以下示例代码所示。<SPAN
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">D3DVERTEXELEMENT9
<SPAN class=SpellE><SPAN class=GramE>decl</SPAN></SPAN><SPAN
class=GramE>[</SPAN>] = <o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">{<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><SPAN
style="mso-spacerun: yes"> </SPAN><SPAN class=GramE>{
0</SPAN>, 0, D3DDECLTYPE_FLOAT3,<SPAN style="mso-spacerun: yes">
</SPAN>D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><SPAN
style="mso-spacerun: yes"> </SPAN><SPAN class=GramE>{
1</SPAN>, 0, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT,
D3DDECLUSAGE_COLOR,<SPAN style="mso-spacerun: yes"> </SPAN>0
},<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><SPAN
style="mso-spacerun: yes"> </SPAN>D3DDECL_<SPAN
class=GramE>END()</SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-pagination: widow-orphan; 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"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">};<o:p></o:p></SPAN></P>
<P>现在创建顶点声明对象:</P><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">LPDIRECT3DVERTEXDECLARATION9 <SPAN class=SpellE>m_pVertexDeclaration</SPAN>;<o:p></o:p></SPAN></PRE><PRE><SPAN lang=EN-US style="FONT-SIZE: 10pt">g_d3dDevice-><SPAN class=SpellE><SPAN class=GramE>CreateVertexDeclaration</SPAN></SPAN><SPAN class=GramE>(</SPAN> <SPAN class=SpellE>decl</SPAN>, &<SPAN class=SpellE>m_pVertexDeclaration</SPAN> );<o:p></o:p></SPAN></PRE>
<P class=MsoNormal
style="TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"
align=left><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">下一步是调用<U><SPAN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -