-1

我只是不知道如何将纹理应用于球体网格(使用 Mesh.CreateSphere 创建)。我想问题是那些用 Mesh.Create 创建的网格没有纹理坐标(或者他们有一些?),我只是不知道如何添加它们。我已经找到了一些 MDX 的示例代码,但它们使用了一个在 slimDX 中不可用的 CustomVertex 结构。将纹理添加到标准网格有那么困难吗?我想知道为什么 slimDX 中没有一些预定义的函数可以做到这一点……谢谢你的建议。

(ps 我使用的是 Direct3D9)

4

1 回答 1

0

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

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

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

这将使您能够创建顶点缓冲区。

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

于 2012-03-19T15:11:11.843 回答