存储网格数据值
Storing mesh data values
我正在根据 "x,y,z,dataValue" 格式的 CSV 文件创建网格。根据数据值,我正在为顶点着色。例如,对于数据值 10-20,它将是深绿色,对于 20-30 是浅绿色,等等......我有这个工作,但我希望能够为网格创建一个分析工具.基本上我想显示鼠标悬停的点的数据值。所以,如果他们悬停在一个顶点上,它会显示 "data value = x"。但是,一旦创建了网格,我只能访问颜色,该数据值基本上转换为 material。我需要一种方法来存储相对于每个顶点的数据值。
我有大约 450,000 行数据,因此我需要一种有效的方法来查找数据值。我想到了两个选项:存储映射到数据值的顶点,并在地图中搜索以找到正确的数据值(我认为这可能太慢了)。或者将每个顶点的数据值存储在着色器中,然后然后当悬停在顶点上时,访问着色器以获取数据值。我不确定如何执行第二种方法,或者它是否是更好的方法。我只是在寻找一种有效的方法来解决这个问题。
我认为您需要在 Octree.
中组织您的顶点数据
首先通过Physics.Raycast得到鼠标射线和MeshCollider
的命中点,然后
然后在八叉树中搜索命中点附近的顶点。
我正在根据 "x,y,z,dataValue" 格式的 CSV 文件创建网格。根据数据值,我正在为顶点着色。例如,对于数据值 10-20,它将是深绿色,对于 20-30 是浅绿色,等等......我有这个工作,但我希望能够为网格创建一个分析工具.基本上我想显示鼠标悬停的点的数据值。所以,如果他们悬停在一个顶点上,它会显示 "data value = x"。但是,一旦创建了网格,我只能访问颜色,该数据值基本上转换为 material。我需要一种方法来存储相对于每个顶点的数据值。
我有大约 450,000 行数据,因此我需要一种有效的方法来查找数据值。我想到了两个选项:存储映射到数据值的顶点,并在地图中搜索以找到正确的数据值(我认为这可能太慢了)。或者将每个顶点的数据值存储在着色器中,然后然后当悬停在顶点上时,访问着色器以获取数据值。我不确定如何执行第二种方法,或者它是否是更好的方法。我只是在寻找一种有效的方法来解决这个问题。
我认为您需要在 Octree.
中组织您的顶点数据首先通过Physics.Raycast得到鼠标射线和MeshCollider
的命中点,然后
然后在八叉树中搜索命中点附近的顶点。