在SlimDX中向Sphere添加纹理

时间:2012-03-15 11:49:19

标签: geometry directx textures slimdx

我无法弄清楚如何将纹理应用于球体网格(使用Mesh.CreateSphere创建)。我想问题是那些用Mesh.Create创建的网格物体没有纹理坐标(或者它们有一些?)而我无法找到如何添加它们。我已经找到了一些MDX的示例代码,但它们使用的是CustomVertex结构,这在slimDX中是不可用的。将Textures添加到标准网格中是否困难?我想知道为什么在slimDX中没有一些预定义的功能来做到这一点...... 谢谢你的建议。

(p.s。我正在使用Direct3D9)

1 个答案:

答案 0 :(得分:0)

是的,你是对的。网格中没有纹理坐标。不是插入坐标,而是使用自定义顶点格式创建整个球体会更容易。

要创建顶点格式,您需要一个结构来存储顶点数据。这样:

public struct MyVertex
{
    public Vector3 Position;
    public static readonly VertexFormat = VertexFormat.Position;
}

这将使您能够创建Vertexbuffers。

顺便说一句,使用两个参数u和v p = r * new Vector3(sin(u) * cos(v), sin(u)* sin(v), cos(u));描述一个球体,u从0到Pi,v从0到2 * Pi