📄 顶点着色器 (vertex shaders).htm
字号:
SPAN.GramE {
mso-style-name: ""; mso-gram-e: yes
}
DIV.Section1 {
page: Section1
}
OL {
MARGIN-BOTTOM: 0cm
}
UL {
MARGIN-BOTTOM: 0cm
}
</STYLE>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]--></HEAD>
<BODY lang=ZH-CN style="tab-interval: 36.0pt" vLink=purple link=blue>
<DIV class=Section1>
<H1>顶点着色器<SPAN lang=EN-US><o:p></o:p></SPAN></H1>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">
<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-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">在<SPAN
lang=EN-US>Microsoft® DirectX® 8.x之前,Microsoft®
Direct3D®以固定功能流水线的方式运作,把三维几何体渲染到屏幕上的像素。用户设置流水线的属性,以控制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: l8 level1 lfo8"><U><SPAN
lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><A
href="http://www.gesoftfactory.com/developer/VertexShaders.htm#_创建顶点着色器">创建顶点着色器</A></SPAN></U><SPAN
lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">
– 本节包含的代码实例,用一个顶点着色器将一固定颜色应用于物体的顶点。本示例包含了对所使用的方法的详细描述。<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: l8 level1 lfo8"><U><SPAN
lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><A
href="http://www.gesoftfactory.com/developer/VertexShaders.htm#_顶点颜色">顶点颜色</A></SPAN></U><SPAN
lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">
– 又一示例,显示了更多的代码实例,用来加入纹理,并把顶点颜色和纹理混合。<U><o:p></o:p></U></SPAN>
<LI class=MsoNormal
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l8 level1 lfo8"><U><SPAN
lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><A
href="http://www.gesoftfactory.com/developer/VertexShaders.htm#_纹理">纹理</A></SPAN></U><SPAN
lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">
– 又一示例,显示了更多的代码实例,用来加入纹理,并把顶点颜色和纹理混合。<U><o:p></o:p></U></SPAN>
<LI class=MsoNormal
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l8 level1 lfo8"><U><SPAN
lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><A
href="http://www.gesoftfactory.com/developer/VertexShaders.htm#_带光照的纹理贴图">带光照的纹理贴图</A></SPAN></U><SPAN
lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">
- 又一示例,显示了更多的代码实例,用来加入纹理,并把顶点颜色和纹理混合。<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: l8 level1 lfo8"><U><SPAN
lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体"><A
href="http://www.gesoftfactory.com/developer/VertexShaders.htm#_将顶点着色器与顶点声明分离">将顶点着色器与顶点声明分离</A></SPAN></U><SPAN
lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">
– 现在顶点着色器声明与顶点声明已经分开。本节包含了固定功能流水线和顶点着色器流水线的声明之间的映射关系的详细资料。<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-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">通过允许在运行的时候进行变换、光照和渲染的功能,可编程着色器将图形流水线带入了一个新的高度。着色器是在运行时定义的,但是当完成以后,用户可以改变要激活哪个着色器,并使用数据流动态地控制着色器。这在渲染像素的方法上,给了用户更高的灵活性。<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-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">顶点着色器文件包含顶点着色器指令。顶点着色器可以控制顶点颜色和把纹理应用于顶点的方式。也可以通过使用顶点着色器指令加入光照。着色器指令文件包含的是<SPAN
lang=EN-US>ASCII文本,因此它是可读的,并且看起来有点象汇编语言。顶点着色器在任何<SPAN
class=SpellE>DrawPrimitive</SPAN>或<SPAN
class=SpellE>DrawIndexedPrimitive</SPAN>之后被调用。用<SPAN class=SpellE><B
style="mso-bidi-font-weight: normal">SetVertexShader</B></SPAN>指定新的着色器文件可以动态地切换着色器,也可以用数据流输入改变ASCII文本的着色器文件中的指令。<U>Vertex_Shader_1_1</U>中包含了着色器指令的完全列表。<B
style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></SPAN></P>
<P class=MsoNormal
style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">指令集的变化非常快。为避免在使用指令时出现问题,请查阅硬件开发商的网站。或者,也可以使用<U>高级着色器语言</U>,这样就可以得到由<SPAN
lang=EN-US>Direct3D扩展(D3DX)编译得到的着色器指令。<o:p></o:p></SPAN></SPAN></P>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US
style="FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-bidi-font-family: 宋体">
<HR align=center width="100%" SIZE=1>
</SPAN></DIV>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -