我相信你们中的大多数人都知道 WP7 不支持自定义着色器文件,除非我遗漏了一些东西,这意味着我不能像在 Windows 上那样从顶点和索引数据中绘制任何东西,我需要使用从其他数据类型中加载或解析的模型。
我正在寻找的是一种获取模型变量和高度图位图(可能作为 Texture2D 加载)并根据灰度值为每个像素创建一个顶点的方法,从一个函数构造函数变量。
以下是我在游戏中绘制模型的函数供参考:
protected void DrawMesh(Model myMesh, Vector3 meshPos, float meshRot)
{
// Copy any parent transforms
Matrix[] transforms = new Matrix[myMesh.Bones.Count];
myMesh.CopyAbsoluteBoneTransformsTo(transforms);
// Draw the model. A model can have multiple meshes, so loop.
foreach (ModelMesh mesh in myMesh.Meshes)
{
// This is where the mesh orientation is set, as well
// as our camera and projection.
foreach (BasicEffect effect in mesh.Effects)
{
effect.EnableDefaultLighting();
effect.View = camera.View;
effect.World = transforms[mesh.ParentBone.Index] * Matrix.CreateRotationY(MathHelper.ToRadians(meshRot)) * Matrix.CreateTranslation(meshPos);
effect.Projection = camera.Projection;
}
// Draw the mesh, using the effects set above.
mesh.Draw();
}
}
有谁知道我怎么能相当简单地做到这一点?在我理解这个过程之前,我不想让多个文件过于复杂。
谢谢!
-瑞安