Silverlight 3D 开发指南
1. 理解 BasicEffect 对象
在深入 Silverlight 3D 开发之前,需要了解 BasicEffect 对象。Silverlight 3D 的渲染工作依赖于着色器,这是直接在显卡 GPU 上运行的小段代码。着色器主要分为两种:
- 顶点着色器 :检查顶点缓冲区中的每个顶点,将其在虚拟 3D 空间中的坐标转换为 2D 绘图表面上的物理显示位置。
- 像素着色器 :检查即将绘制的每个像素(作为线或三角形的一部分),并为其分配适当的颜色。
虽然可以使用 DirectX SDK 中的 fxc.exe 实用工具编写和编译自己的着色器,其语法为 HLSL(高级着色器语言),类似于 C#,但编写底层像素处理算法既繁琐又复杂。幸运的是,Silverlight 继承了 Microsoft 的 XNA 高级效果模型,应用程序可以使用具有内置顶点和像素着色器的效果对象。
所有效果类都派生自 Microsoft.Xna.Framework.Graphics
命名空间中的 Effect
基类。Silverlight 包含一个几乎不可或缺的效果类 BasicEffect
,尽管名字简单,但它功能强大,具备基本着色、纹理映射和复杂光照等功能。
要准备 BasicEffect
对象,需要设置视图和投影,使用之前创建的矩阵:
effect = New