3 votes

coordonnées de la texture xna

J'ai essayé de combiner un couple de riemers tutoriels pour réaliser un terrain texturé et éclairé. J'y suis presque, mais je n'arrive pas à appliquer correctement la texture. Je pense que le problème se situe dans SetUpVertices() avec le réglage des coordonnées de la texture. Je sais qu'actuellement le code indique qu'elles sont toutes réglées sur (0, 0) et je dois faire en sorte qu'elles soient réglées sur les coins de la texture, mais je n'arrive pas à trouver le bon code. Quelqu'un peut-il m'aider ?

private void SetUpVertices()
{
    vertices = new VertexPositionNormalTexture[terrainWidth * terrainHeight];
    for (int x = 0; x < terrainWidth; x++)
    {
        for (int y = 0; y < terrainHeight; y++)
        {
            vertices[x + y * terrainWidth].Position = new Vector3(x, -y, heightData[x, y]);
            vertices[x + y * terrainWidth].TextureCoordinate.X = 0;
            vertices[x + y * terrainWidth].TextureCoordinate.Y = 0;
        }
    }
}

J'ai ajouté le code complet de Game1.cs à cette pastie http://pastebin.com/REd8QDZA

3voto

Reed Copsey Points 315315

Vous pouvez étirer la texture sur la surface en interpolant de 0 à 1 :

vertices[x + y * terrainWidth].TextureCoordinate.X = x / (terrainWidth - 1.0);
vertices[x + y * terrainWidth].TextureCoordinate.Y = y / (terrainHeight - 1.0);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X