0

最近、各面にテクスチャを使用して立方体を描画するコードを修正しましたが、各面にテクスチャをマッピングするのに問題があります。 http://imgur.com/a/0sHKq 一番上の画像は、私がゲームをどのように見せたいかです。下の画像が現在の様子です。

ブロックを設定する私のコードは次のとおりです。

newVertices[0].Position = new Vector3(position.X, position.Y, position.Z);
        newVertices[0].TextureCoordinate = new Vector2(1, 1);
        newVertices[1].Position = new Vector3(position.X, position.Y + size.Y, position.Z);
        newVertices[1].TextureCoordinate = new Vector2(1, 0);
        newVertices[2].Position = new Vector3(position.X + size.X, position.Y + size.Y, position.Z);
        newVertices[2].TextureCoordinate = new Vector2(0, 0);
        newVertices[3].Position = new Vector3(position.X + size.X, position.Y, position.Z);
        newVertices[3].TextureCoordinate = new Vector2(0, 1);
        newVertices[4].Position = new Vector3(position.X, position.Y, position.Z + size.Z);
        newVertices[4].TextureCoordinate = new Vector2(0, 1);
        newVertices[5].Position = new Vector3(position.X, position.Y + size.Y, position.Z + size.Z);
        newVertices[5].TextureCoordinate = new Vector2(0, 0);
        newVertices[6].Position = new Vector3(position.X + size.X, position.Y + size.Y, position.Z + size.Z);
        newVertices[6].TextureCoordinate = new Vector2(1, 0);
        newVertices[7].Position = new Vector3(position.X + size.X, position.Y, position.Z + size.Z);
        newVertices[7].TextureCoordinate = new Vector2(1, 1);

これは私が思いついた最高のものですが、上面と下面にテクスチャが適用されていないか、テクスチャの隅が適用されている可能性があります。

私の描画コード、それが役に立ったら

public void Draw(Camera camera)
    {
        effect.View = camera.View;
        effect.Projection = camera.Projection;
        effect.World = rotationMatrix;

        foreach (EffectPass pass in effect.CurrentTechnique.Passes)
        {
            pass.Apply();
            graphicsDevice.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(PrimitiveType.TriangleList, newVertices, 0, 8, indices, 0, 12);
        }
    }
4

0 に答える 0