2017-05-06 4 views
0

Je tente de mapper un Texture2D sur une quadsphere. Il s'est enroulé avec succès, à l'exception de la couture où se rencontrent les extrémités des textures. Quelqu'un peut-il aider à savoir comment se débarrasser de cette couture? Je comprends que j'ai besoin de dupliquer les sommets de chaque côté, mais comment pourrais-je accomplir cela dans Unity C#? Ci-dessous le code que j'utilise pour attribuer mes UV:Coutures lorsque la texture est mappée sphérique 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; 
     } 

Merci beaucoup.

Répondre

0

Vous avez réellement besoin de deux sommets l'un sur l'autre dans les données de sommet de maillage. Si vous générez réellement le maillage en utilisant du code, alors vous pouvez vous assurer de générer ces sommets dans le code, mais si le mesh provient de Blender ou de quelque chose, alors c'est où aller pour résoudre le problème.