C# 是否有一种内置的方法可以有效地发现向量是否在向量数组中,如果是,它是什么变量

C# 是否有一种内置的方法可以有效地发现向量是否在向量数组中,如果是,它是什么变量,c#,unity3d,C#,Unity3d,您好,我正在创建一个按程序生成的洞穴生成脚本,我已经清除了所有柏林噪声垃圾,并尝试将顶点转换为网格。我知道我需要为它声明面,并且需要某种形式的marching cubes算法。为了知道在哪个方向渲染面,我需要脚本通过搜索顶点来了解它周围的所有顶点。我的脚本是否有任何方法可以有效地搜索vector3数组,以确定vector3是否在数组中,如果在数组中,vector3在哪个位置?如果使用基于三角剖分查找表的行进立方体实现,可以在同一个表项中沿面存储法向量。塞巴斯蒂安·拉格(Sebastian Lag

您好,我正在创建一个按程序生成的洞穴生成脚本,我已经清除了所有柏林噪声垃圾,并尝试将顶点转换为网格。我知道我需要为它声明面,并且需要某种形式的marching cubes算法。为了知道在哪个方向渲染面,我需要脚本通过搜索顶点来了解它周围的所有顶点。我的脚本是否有任何方法可以有效地搜索vector3数组,以确定vector3是否在数组中,如果在数组中,vector3在哪个位置?

如果使用基于三角剖分查找表的行进立方体实现,可以在同一个表项中沿面存储法向量。塞巴斯蒂安·拉格(Sebastian Lague)的一段视频提到使用这样一张桌子。我不确定他是从哪里下载的,但他把它包括在他的回购协议中,这是麻省理工学院授权的,(编辑:仅三角形顶点的顺序就足以定义其方向,并且可能不需要显式法向量)

另外,请注意:老柏林噪音往往是明显的网格对齐。我看到它被使用的大多数时候,似乎是因为库提供了它,或者是因为教程中提到了它,而不是因为它实际上是应用程序的最佳选择。单纯形噪声通常产生较少的网格对齐结果。将外部噪音导入Unity很简单。如果您的实现依赖于3D噪波,那么看起来您可能需要这样做。还有很多其他的选择,虽然他们可能没有这些方面的特别。请注意,范围是[-1,1]而不是[0,1],因此,如果当前噪波是[0,1],则可能需要执行噪波(…)*0.5+0.5来更正该值。如果您有很多倍频程,请选择2F版本;如果您有一个倍频程或正在使用脊波噪声,请选择2S版本。

array.IndexOf(vector)