我需要使用 C# 中的托管 DirectX在运行时制作 DirectX 3D 网格。我无法找到有关如何执行此操作的任何信息。
- 不,我不能使用 3D 建模程序来制作我的对象。它们必须具有精确的尺寸和形状,直到运行时我才知道任何尺寸或形状信息。
- 不,我无法从现有的 DirectX 网格功能构建模型。(一个简单的例子:DirectX 可以让你通过使用圆锥网格和圆柱网格轻松地为铅笔建模。当然,你必须为你的铅笔携带两个网格,而不仅仅是一个,并且每个都正确定位和定向。但是你由于没有提供半圆柱体或半圆锥体网格,因此甚至无法制作纵向分成两半的铅笔模型。)
- 在运行时,我已经计算了所有顶点,并且知道要连接哪些顶点来制作必要的三角形。
- 我需要的只是纯色。我不需要纹理贴图。
可以使用此 DirectX 调用获得球体的网格:
Mesh sphere = Mesh.Sphere(device, sphereRadius, sphereSlices, sphereStacks);
此网格是在运行时构建的。
我需要知道的是如何制作类似的功能:
Mesh shape = MakeCustomMesh(device, vertexlist, trianglelist);
两个列表可以是任何合适的容器/格式。
如果有人能指出我托管的 DirectX (C#) 示例代码,即使它只是从 3 个硬编码三角形构建网格,那将是一个很大的好处。