LIBGDX 3D:在着色器上关闭纹理:OpenGL

时间:2017-11-06 12:30:28

标签: opengl libgdx kotlin

很抱歉,如果问题有点小众。几年前我写了一些代码,它渲染了许多网格作为性能的1大网格。

我现在要做的只是渲染网格没有纹理,所以只有一种颜色

boxModel = modelBuilder.createBox(10f, 10f, 10f, Material(ColorAttribute.createDiffuse(Color.WHITE), ColorAttribute.createSpecular(Color.RED), FloatAttribute.createShininess(15f)), (VertexAttributes.Usage.Position or VertexAttributes.Usage.Normal or VertexAttributes.Usage.TextureCoordinates).toLong()) // or VertexAttributes.Usage.TextureCoordinates
            for (x in 1..10) {
                for (y in 1..10) {
                    modelInstance = ModelInstance(boxModel, x * 15f, 0.0f, y * 15f)
                    chunks2[0].addMesh(modelInstance.model.meshes, modelInstance.transform, btBoxShape(Vector3(10f, 10f, 10f)))
                }
            }

chunks2[0].mergeBaby() 

所以我构建巨型网格,然后渲染它

shaderProgram.begin()
texture.bind()
shaderProgram.setUniformMatrix("u_projTrans", camera.combined)
shaderProgram.setAttributef("a_color", 1f, 1f, 1f, 1f)
shaderProgram.setUniformi("u_texture", 0)

renderChunks()
shaderProgram.end()

这适用于纹理的东西很好,正确的纹理显示等但基色(我猜这是“a_color”设置为白色),我实际上希望它使用我在Material属性中提供的。

0 个答案:

没有答案