【发布时间】:2018-03-24 22:58:45
【问题描述】:
我有自定义组,由一些演员组成,并且还在其draw() 中使用自定义着色器
看起来像:
override fun draw(batch: Batch, parentAlpha: Float) {
super.draw(batch, parentAlpha)
Gdx.gl.glDepthMask(false)
Gdx.gl.glEnable(GL20.GL_BLEND)
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)
val sh = stage.batch.shader // Save current shader
stage.batch.shader = shader // Set custom shader
shader.begin()
shader.setUniformMatrix("u_projTrans", stage.camera.combined)
shader.setUniformf("u_color", color)
shader.setUniformf("u_scale", scale)
shader.setUniformf("u_radius", radius)
shader.setUniformf("u_pos_center", v)
mesh.render(shader, GL20.GL_TRIANGLES, 0, 6)
shader.end()
stage.batch.shader = sh // Restore default shader
}
组中的所有演员都已绘制,但未绘制自定义着色器。
不确定我做得对。我哪里错了?
【问题讨论】: