IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Coordonnées de texture


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 56
    Par défaut Coordonnées de texture
    sur une Mesh.Sphere je plaque une texture.

    Pour cela j'utilise préalablement la méthode suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public static void CalculateTextureCoordinatesForThisSphereMesh(Mesh sphereMesh)
            {
                using (VertexBuffer vb = sphereMesh.VertexBuffer)
                {
                    CustomVertex.PositionNormalTextured[] verts = 
                        (CustomVertex.PositionNormalTextured[])vb.Lock(0,
                                typeof(CustomVertex.PositionNormalTextured), LockFlags.None, sphereMesh.NumberVertices);
                    try
                    {
                        for (int i = 0; i < verts.Length; i++)
                        {
                            verts[i].Tu = Convert.ToSingle(Math.Asin(verts[i].Nx) / Math.PI + 0.5);
                            verts[i].Tv = -1 * Convert.ToSingle(Math.Asin(verts[i].Ny) / Math.PI + 0.5);
     
                        }
                    }
                    finally
                    {
                        vb.Unlock();
                    }
                }
            }

    le probleme c'est que la texture est mal orientée.
    Si par exemple je plaque une texture de la Terre, les pôles sont situés à l'Equateur et donc la texture est mal placée par rapport à la rotation de la sphere.



    Quelqu'un a une solution ?


    j'ai bien essayé de bidouiller:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    verts[i].Tu = Convert.ToSingle(Math.Asin(verts[i].Nx) / Math.PI + 0.5);
    verts[i].Tv = -1 * Convert.ToSingle(Math.Asin(verts[i].Ny) / Math.PI + 0.5);
    mais je ne sais pas à quoi correspondent les composants u et v d'une texture

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 56

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Génération automatique des coordonnées de textures.
    Par F-fisher dans le forum OpenGL
    Réponses: 5
    Dernier message: 27/12/2009, 11h46
  2. Coordonnées de textures sur 3 flottants
    Par mister3957 dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 19/01/2008, 11h16
  3. Coordonnées de texture 'en live'
    Par KnightCoder dans le forum DirectX
    Réponses: 8
    Dernier message: 30/08/2007, 17h28
  4. Réponses: 6
    Dernier message: 28/11/2006, 19h12
  5. Index et coordonnées de texture
    Par atalmapi dans le forum DirectX
    Réponses: 3
    Dernier message: 15/03/2005, 01h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo