Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
3d 为简单形状创建网格(或索引缓冲区),该形状由其底部的点定义_3d - Fatal编程技术网

3d 为简单形状创建网格(或索引缓冲区),该形状由其底部的点定义

3d 为简单形状创建网格(或索引缓冲区),该形状由其底部的点定义,3d,3d,我试图为建筑物创建一个网格,我有一个基准点(底部)的坐标。底座最简单的形状是矩形,但也可能更复杂。但底部的点始终是定向的,并且始终是连接的 下面是我想要的3d形状的图像: 我可以填充顶点缓冲区-对于长方体,我首先使用点0-4的基准坐标,然后向上变换它们(在Y轴上),并再次将它们用作点5-7 我读到我必须逆时针定义三角形,并且能够(手动)填充矩形框的索引缓冲区。但是我不喜欢手工为每个形状做这些,所以在代码中肯定有(可能很容易)的方法 你能给我指一下正确的方向吗 我认为最简单的方法是使用一种方法,

我试图为建筑物创建一个网格,我有一个基准点(底部)的坐标。底座最简单的形状是矩形,但也可能更复杂。但底部的点始终是定向的,并且始终是连接的

下面是我想要的3d形状的图像:

我可以填充顶点缓冲区-对于长方体,我首先使用点0-4的基准坐标,然后向上变换它们(在Y轴上),并再次将它们用作点5-7

我读到我必须逆时针定义三角形,并且能够(手动)填充矩形框的索引缓冲区。但是我不喜欢手工为每个形状做这些,所以在代码中肯定有(可能很容易)的方法


你能给我指一下正确的方向吗

我认为最简单的方法是使用一种方法,该方法取4个点,例如0、4、5、1,在本例中创建2个三角形,构成一个平面并返回6个索引的列表。然后,您只需要遍历四个一组中的所有点

因此,在你的情况下: 第一个输入是:0,4,5,1这将创建输出索引:0,4,1,1,4,5。 第二个输入是:1,5,6,2这将创建输出索引:1,5,2,2,5,6。 等等

循环通过点是很容易实现的,因为点是在一个系统中组织的。如果跟踪底部有多少个点,则可以轻松获得“高于”任何其他点的点

例如,如果要循环通过四个一组中的所有点:

    for(i = 0; i < numberOfPointsInBottom; i++)
    {
         listOfIndices = getIndicesFromFourPoints(i,(i+numberOfPointsInBottom),i+1,(i+numberOfPointsInBottom+1))
    }
for(i=0;i
在这个例子中,函数在第一次迭代中的输入是:0,4,1,5


当我需要连接由任意数量的边定义的圆柱体顶点时,我就是这样做的,希望你理解我的思路。

我认为最简单的方法是使用一种方法,该方法取4个点,例如0、4、5、1,在这种情况下,创建2个三角形,形成一个平面并返回一个包含6个索引的列表。然后,您只需要遍历四个一组中的所有点

因此,在你的情况下: 第一个输入是:0,4,5,1这将创建输出索引:0,4,1,1,4,5。 第二个输入是:1,5,6,2这将创建输出索引:1,5,2,2,5,6。 等等

循环通过点是很容易实现的,因为点是在一个系统中组织的。如果跟踪底部有多少个点,则可以轻松获得“高于”任何其他点的点

例如,如果要循环通过四个一组中的所有点:

    for(i = 0; i < numberOfPointsInBottom; i++)
    {
         listOfIndices = getIndicesFromFourPoints(i,(i+numberOfPointsInBottom),i+1,(i+numberOfPointsInBottom+1))
    }
for(i=0;i
在这个例子中,函数在第一次迭代中的输入是:0,4,1,5

当我需要连接由任意数量的边定义的圆柱体顶点时,我就是这样做的,我希望你理解我的思路