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