2017-05-06 118 views
0

我試圖將Texture2D映射到quads球體上。它已成功纏繞,除了紋理兩端相交的接縫外。任何人都可以幫助如何擺脫這個縫?我知道我需要複製每一面的頂點,但是如何在Unity C#中完成這一點?下面是我用來分配UV的代碼:接縫紋理球面貼圖Unity3D C#

for (int i = 0; i < vertices.Length; i++) 
     { 
      Vector3 v = mesh.vertices[i]; 
      Vector2 textureCoordinates; 
      textureCoordinates.x = Mathf.Atan2(v.x, v.z)/(-2f * Mathf.PI); 
      if (textureCoordinates.x < 0f) 
      { 
       textureCoordinates.x += 1f; 
      } 

      textureCoordinates.y = Mathf.Asin(v.y)/Mathf.PI + 0.5f; 
      uv[i] = textureCoordinates; 
     } 

非常感謝。

回答

0

實際上,在網格頂點數據中,實際上需要兩個頂點頂點。如果你真的使用代碼生成網格,那麼你可以確保在代碼中生成這些頂點,但是如果網格來自Blender或其他東西,那麼這就是解決問題的方法。