Добавление текстуры в сферу в SlimDX - PullRequest
0 голосов
/ 15 марта 2012

Я просто не могу понять, как наложить текстуру на сферу (созданную с помощью Mesh.CreateSphere).Я предполагаю, что проблема в том, что эти сетки, созданные с помощью Mesh.Create, не имеют текстурных координат (или у них есть некоторые?), И я просто не могу узнать, как их добавить.Я уже нашел пример кода для MDX, но они используют структуру CustomVertex, которая недоступна в slimDX.Сложно ли добавлять текстуры в стандартную сетку?Интересно, почему в slimDX нет предопределенных функций для этого ... Спасибо за ваш совет.

(ps Я использую Direct3D9)

1 Ответ

0 голосов
/ 19 марта 2012

Да, вы правы.В сетке нет текстурных координат.Вместо того, чтобы вставлять координаты, было бы легче создать всю сферу с вашим собственным форматом вершины.

Чтобы создать формат вершин, вам нужна структура для хранения ваших данных вершин. Например:

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

...