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