【问题标题】:Adding a Texture to a Sphere in SlimDX在 SlimDX 中为球体添加纹理
【发布时间】:2012-03-15 11:49:18
【问题描述】:
我只是不知道如何将纹理应用到球体网格(使用 Mesh.CreateSphere 创建)。我想问题是那些用 Mesh.Create 创建的网格没有纹理坐标(或者它们有一些?),我只是不知道如何添加它们。我已经找到了一些 MDX 的示例代码,但它们使用了一个在 slimDX 中不可用的 CustomVertex 结构。将纹理添加到标准网格有那么困难吗?我想知道为什么 slimDX 中没有一些预定义的函数可以做到这一点......
谢谢你的建议。
(p.s. 我使用的是 Direct3D9)
【问题讨论】:
标签:
geometry
directx
textures
slimdx
【解决方案1】:
是的,你是对的。网格中没有纹理坐标。而不是插入坐标,使用自定义顶点格式创建整个球体会更容易。
要创建顶点格式,您需要一个结构来存储顶点数据。例如这个:
public struct MyVertex
{
public Vector3 Position;
public static readonly VertexFormat = VertexFormat.Position;
}
这将使您能够创建顶点缓冲区。
顺便说一句,p = r * new Vector3(sin(u) * cos(v), sin(u)* sin(v), cos(u)); 使用两个参数 u 和 v 来描述球体,其中 u 从 0 到 Pi,v 从 0 到 2*Pi