Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DirectX 3D网格可以合并或连接在一起吗_C#_Directx - Fatal编程技术网

C# DirectX 3D网格可以合并或连接在一起吗

C# DirectX 3D网格可以合并或连接在一起吗,c#,directx,C#,Directx,C#程序员,初学者DirectX。 已使用Mesh.Cylinder创建了2个网格,但需要将它们组合成单个网格。可能吗 是的,那是可行的。假设两个网格都有变换矩阵 锁定两个网格,然后取第一个网格(我假设我们将其添加到第二个网格中),并通过从圆柱体1的局部空间到clyinder 2的局部空间的矩阵变换(即[圆柱体1世界变换]*[逆圆柱体2世界变换])逐个变换其顶点。定义正确的索引,现在已将网格1添加到网格2 如果希望两个网格正确相交,则会进行更多编译。如果你想做到这一点,我建议你研究构造立体几何(

C#程序员,初学者DirectX。
已使用Mesh.Cylinder创建了2个网格,但需要将它们组合成单个网格。可能吗

是的,那是可行的。假设两个网格都有变换矩阵

锁定两个网格,然后取第一个网格(我假设我们将其添加到第二个网格中),并通过从圆柱体1的局部空间到clyinder 2的局部空间的矩阵变换(即[圆柱体1世界变换]*[逆圆柱体2世界变换])逐个变换其顶点。定义正确的索引,现在已将网格1添加到网格2


如果希望两个网格正确相交,则会进行更多编译。如果你想做到这一点,我建议你研究构造立体几何(CSG)。谷歌上有很多关于这个主题的链接。

我发现DirectX Mesh有一个静态的
连接方法,这个方法是用来做什么的?@zionpi:它似乎不执行CSG,但应该将这两个网格结合起来,当然。奇怪的是,我尝试
连接两个用户定义的网格,只有一个出现了。此外,CSG似乎只在圆柱体、圆锥体、立方体等基本形状上运行,我不知道这是否正确。或者网格需要特殊格式吗?@zionpi:我想这取决于你如何设置矩阵。为什么不开始一个关于它的问题,并包含一些代码(比如如何调用concatenate以及通常如何渲染)?