XNA Shader编程教程6-Shader演示
本教程不学新的东西,只是将不同shader技术整合到一个场景中,展示shader的威力。
请不要着重于源代码,而应把注意力放在shader上。也可以让性能更好,但这个示例把关键点都涉及到了。
使用手柄摇杆可以四处走动,按A/X切换shader的开启和关闭。要运行这个场景,你应该把X360手柄连接到USB接口上,或者取消代码中键盘控制代码的注释,这样你就可以使用键盘和鼠标控制相机的移动。
天空球(skysphere)
这个场景使用一个简单的球作为天空球,并使球缓慢地转动让天空更加生动。要使效果更好,可以添加更多天空纹理在球上并以不同的速度旋转天空球。
小岛
小岛是一个三维模型。小岛使用一个法线贴图和教程4中相同的shader技术,能使模型看起来有更多的细节。
海面
海洋是一个由许多顶点构成的平面,我们使用教程5中的变形shader创建波浪,并使用教程4中的法线贴图产生海面上的涟漪。我使用了两个沿不同方向移动的法线贴图产生波浪上的小细节:
Normal = (Normal 1+ Normal2)/2;
这里使用两个法线并将它们叠加在一起,在计算漫反射和镜面反射时取它们的平均值。还移动了颜色贴图的纹理坐标产生流水效果。
发布时间:2009/4/7 下午1:27:48 阅读次数:10266