3

私は、いくつかのriemersチュートリアルを組み合わせて、テクスチャと照明のある地形を作成しようとしています。私はもうすぐそこにいますが、テクスチャの適用を正しく行うことができません。問題は、テクスチャ座標の設定に関するSetUpVertices()にあると思います。現在、コードはそれらがすべて(0、0)に設定されていることを示しており、テクスチャの隅に設定されるようにする必要がありますが、コードを正しく取得できないようです。誰か助けてくれる人はいますか?

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;
        }
    }
}

Game1.csの完全なコードをこのパスティhttp://pastebin.com/REd8QDZAに追加しました

4

1 に答える 1

3

0から1に補間することで、サーフェス全体にテクスチャを伸ばすことができます。

vertices[x + y * terrainWidth].TextureCoordinate.X = x / (terrainWidth - 1.0);
vertices[x + y * terrainWidth].TextureCoordinate.Y = y / (terrainHeight - 1.0);
于 2013-02-13T17:05:08.057 に答える