Мне нужно создать 3D-сетку DirectX во время выполнения, используя управляемый DirectX из C #. Мне не удалось найти никакой информации о том, как это сделать.
- Нет, я не могу использовать программу 3D-моделирования для создания своих объектов. Они должны быть точного размера и формы, и у меня нет НИКАКОЙ информации о размере или форме до выполнения.
- Нет, я не могу построить модель из существующих возможностей сетки DirectX. (Простой пример: DirectX позволит вам легко смоделировать карандаш, используя конусную сетку и цилиндрическую сетку. Конечно, вам нужно носить с собой две сетки для вашего карандаша, а не только одну, и правильно расположить и сориентировать каждую. Но вы невозможно даже сделать модель карандаша, разрезанного пополам по длине, поскольку здесь нет ни полуцилиндра, ни полуконуса.)
- Во время выполнения у меня уже вычислены все вершины, и я знаю, какие из них нужно соединить, чтобы получить необходимые треугольники.
- Все, что мне нужно, это сплошной цвет. Мне не нужна карта текстуры.
С помощью этого вызова DirectX можно получить сетку сферы: Mesh sphere = Mesh.Sphere(device, sphereRadius, sphereSlices, sphereStacks);
Эта сетка создается во время выполнения.
Что мне нужно знать, так это как сделать аналогичную функцию: Mesh shape = MakeCustomMesh(device, vertexlist, trianglelist);
где два списка могут быть любым подходящим контейнером / форматом.
Если кто-нибудь может указать мне на пример кода управляемого DirectX (C #), даже если он просто строит сетку из трех жестко запрограммированных треугольников, это будет большим преимуществом.