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

📄 像素着色器 (pixel shaders).htm

📁 此文件是微软MSDN中d3d部分资料的翻译文件
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">个纹理取样器</SPAN><SPAN 
      lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P></TD></TR></TBODY></TABLE>
<P><B><SPAN lang=EN-US 
style="mso-fareast-language: ZH-CN">PixelShaderVersion</SPAN></B><SPAN 
style="mso-fareast-language: ZH-CN">的第一个字节包含次版本号,第二个字节包含主版本号。经过汇编的着色器的第一个标记就是像素着色器的版本。每种硬件实现都会设置该版本号,表示它能完全支持的像素着色器的最高版本。<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US>
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<H1><SPAN style="mso-fareast-language: ZH-CN">纹理操作的转换<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></H1>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US>
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<P><SPAN style="mso-fareast-language: ZH-CN">像素着色器在以下几个方面扩展并一般化了<SPAN 
lang=EN-US>Microsoft DirectX</SPAN></SPAN><SPAN lang=EN-US 
style="FONT-FAMILY: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-ascii-font-family: 宋体">&reg;</SPAN><SPAN 
lang=EN-US style="mso-fareast-language: ZH-CN"> 
6.0和7.0的多重纹理能力。<o:p></o:p></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: l4 level1 lfo9"><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">加入了一组通用读</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN">/</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">写寄存器,这样就允许更为灵活的表达式。用</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN">D3DTA_CURRENT</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">的连续级联需要为每层指定一个单独的结果寄存器参数。</SPAN><SPAN 
  lang=EN-US style="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: l4 level1 lfo9"><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN"><SPAN 
  style="mso-spacerun: yes">&nbsp;</SPAN>D3DTOP_MODULATE2X</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">和</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN">D3DTOP_MODULATE4X</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">纹理操作被分成了单独的修饰符,可用于任何指令。这样就无需单独的</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN">D3DTOP_MODULATE</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">和</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN">D3DTOP_MODULATE2X</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">操作了。</SPAN> 

  <LI class=MsoNormal 
  style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l4 level1 lfo9"><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">乘加操作加入了可选的第三个参数,因此程序化的像素着色器可以执行</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN">arg1 ×arg2 + arg0</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">的操作。这样就不再需要</SPAN><SPAN 
  lang=EN-US 
  style="mso-fareast-language: ZH-CN">D3DTOP_MODULATEALPHA_ADDCOLOR</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">和</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN">D3DTOP_MODULATECOLOR_ADDALPHA 
  </SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">纹理操作了。</SPAN><SPAN 
  lang=EN-US style="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: l4 level1 lfo9"><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">混合操作加入了可选的第三个参数,因此程序化的像素着色器可以用</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN">arg0</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">作为</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN">arg1</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">和</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN">arg2</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">之间的混合比。这样就不再需要</SPAN><SPAN 
  lang=EN-US>D3DTOP_BLENDDIFFUSEALPHA, D3DTOP_BLENDTEXTUREALPHA, 
  D3DTOP_BLENDFACTORALPHA, D3DTOP_BLENDTEXTUREALPHAPM, </SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">和</SPAN><SPAN 
  lang=EN-US>D3DTOP_BLENDCURRENTALPHA</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">纹理操作了。</SPAN><SPAN 
  lang=EN-US style="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: l4 level1 lfo9"><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">对纹理寻址的修改操作,如</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN">D3DTOP_BUMPENVMAP</SPAN><SPAN 
  style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">,被从颜色和阿尔法操作中分离出来并作为第三种操作类型,专门用于纹理寻址操作。</SPAN><SPAN 
  lang=EN-US style="mso-fareast-language: ZH-CN"><o:p></o:p></SPAN> </LI></UL>
<P><SPAN style="mso-fareast-language: ZH-CN">为了有效地支持这种新增的灵活性,<SPAN 
lang=EN-US>API的语法从DWORD对改成了ASCII汇编代码语法。这样就暴露了程序化的像素着色器所提供的功能。<o:p></o:p></SPAN></SPAN></P>
<P><SPAN 
style="mso-fareast-language: ZH-CN">注意在使用像素着色器时,镜面反射加法不专门由一个渲染状态控制,如果需要,这可能由像素着色器实现。但是,雾混合仍然由固定功能流水线执行。<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US>
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<H1><A name=_对纹理的一些考虑></A><SPAN 
style="mso-fareast-language: ZH-CN">对纹理的一些考虑<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></H1>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US>
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
<P><SPAN style="mso-fareast-language: ZH-CN">像素着色器完全取代了由<SPAN 
lang=EN-US>Microsoft DirectX</SPAN></SPAN><SPAN lang=EN-US 
style="FONT-FAMILY: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-ascii-font-family: 宋体">&reg;</SPAN><SPAN 
lang=EN-US style="mso-fareast-language: ZH-CN"> 
6.0和7.0的多重纹理API提供的像素混合功能,尤其是那些由<U>D3DTSS_COLOROP</U>, <U>D3DTSS_COLORARG1</U>, 
<U>D3DTSS_COLORARG2</U>, <U>D3DTSS_ALPHAOP</U>, 
<U>D3DTSS_ALPHAARG1</U>和<U>D3DTSS_ALPHAARG2</U>纹理层状态、相关的参数和修饰符定义的操作。如果设置了程序化的像素着色器,那么这些状态会被忽略。<o:p></o:p></SPAN></P>
<H2><A name=texture_stage_and_sampler_states_graphic></A><SPAN 
style="mso-fareast-language: ZH-CN">纹理层和取样器状态<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></H2>
<P><SPAN 
style="mso-fareast-language: ZH-CN">如果像素着色器正在运行,那么以下纹理层状态仍然会被使用。对这些状态的使用取决于像素着色器的版本,如下表所示。<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<TABLE class=MsoNormalTable style="mso-cellspacing: 1.5pt" cellSpacing=3 
cellPadding=0 border=0>
  <TBODY>
  <TR style="mso-yfti-irow: 0">
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal style="TEXT-ALIGN: center" align=center><B><SPAN 
      style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">纹理层状态</SPAN></B><B><SPAN 
      lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></B></P></TD>
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal style="TEXT-ALIGN: center" align=center><B><SPAN 
      style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">版本</SPAN></B><B><SPAN 
      lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></B></P></TD></TR>
  <TR style="mso-yfti-irow: 1">
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal><SPAN lang=EN-US>D3DTSS_BUMPENVMAT00</SPAN><SPAN 
      lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P></TD>
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal><SPAN lang=EN-US>1_1 - 1_4</SPAN><SPAN lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P></TD></TR>
  <TR style="mso-yfti-irow: 2">
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal><SPAN lang=EN-US>D3DTSS_BUMPENVMAT01</SPAN><SPAN 
      lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P></TD>
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal><SPAN lang=EN-US>1_1 - 1_4</SPAN><SPAN lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P></TD></TR>
  <TR style="mso-yfti-irow: 3">
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal><SPAN lang=EN-US>D3DTSS_BUMPENVMAT10</SPAN><SPAN 
      lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P></TD>
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal><SPAN lang=EN-US>1_1 - 1_4</SPAN><SPAN lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P></TD></TR>
  <TR style="mso-yfti-irow: 4">
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal><SPAN lang=EN-US>D3DTSS_BUMPENVMAT11</SPAN><SPAN 
      lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P></TD>
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal><SPAN lang=EN-US>1_1 - 1_4</SPAN><SPAN lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P></TD></TR>
  <TR style="mso-yfti-irow: 5">
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal><SPAN lang=EN-US>D3DTSS_BUMPENVLSCALE</SPAN><SPAN 
      lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P></TD>
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal><SPAN lang=EN-US>1_1 - 1_3</SPAN><SPAN lang=EN-US 
      style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P></TD></TR>
  <TR style="mso-yfti-irow: 6">
    <TD 
    style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt">
      <P class=MsoNormal><SPAN lang=EN-US>D3DTSS_BUMPENVLOFF

⌨️ 快捷键说明

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