[android]重复上模型/网格纹理

标签: Android
发布时间: 2013/11/23 20:14:03
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我只是在 SpriteBatch 上绘制纹理并设置 TextureWrap.Repeat 时一切都是确定。但现在我有 3D 场景,我想要有地面和纹理必须重复模型/网格和这只是唐 ' t 工作。

public static StillModel createPlainMesh(float xs, float zs, Texture texture) {
        final Mesh mesh = new Mesh(true, 4, 6, new VertexAttribute(
                Usage.Position, 3, "a_position"), new VertexAttribute(
                Usage.TextureCoordinates, 2, "a_texCoords")); 
        mesh.setVertices(new float[]
                { xs, 0f, zs, 0, 0,
                xs, 0f, -zs, 0, 1,
                -xs, 0f, zs, 1, 0,
                -xs, 0f, -zs , 1,1
                });
        mesh.setIndices(new short[] { 0, 1, 2, 1, 2, 3 });
        final StillModel model = new StillModel(new StillSubMesh(
                "ground", mesh, GL10.GL_TRIANGLES, new Material()));    

        texture.setWrap(TextureWrap.Repeat, TextureWrap.Repeat);
        model.setMaterial(new Material("material", new TextureAttribute(texture, 0, "s_tex")));

        return model;
    }

我有此代码。我使用 setWrap TextureWrap.Repeat TextureWrap.Repeat),但纹理仍然是沿。我不知道为什么,但它看起来很糟糕。

解决方法 1:

解决了它。如果你想重复纹理模型,你必须对此进行修改:

mesh.setVertices(new float[]
                { xs, 0f, zs, 0, 0,
                xs, 0f, -zs, 0, 1,
                -xs, 0f, zs, 1, 0,
                -xs, 0f, -zs , 1,1
                });

修改纹理 Coords -例如 20 如果你想要更改重复它 20times

示例:

mesh.setVertices(new float[]
                { xs, 0f, zs, 0, 0,
                xs, 0f, -zs, 0, 20,
                -xs, 0f, zs, 20, 0,
                -xs, 0f, -zs , 20,20
                });
赞助商