Example usage for com.badlogic.gdx.graphics.g3d ModelBatch ModelBatch

List of usage examples for com.badlogic.gdx.graphics.g3d ModelBatch ModelBatch

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics.g3d ModelBatch ModelBatch.

Prototype

public ModelBatch(final RenderContext context, final ShaderProvider shaderProvider,
        final RenderableSorter sorter) 

Source Link

Document

Construct a ModelBatch, using this constructor makes you responsible for calling context.begin() and context.end() yourself.

Usage

From source file:com.github.fauu.helix.system.RenderingSystem.java

License:Open Source License

@Override
protected void initialize() {
    displayableCollections = new Array<Array<? extends Displayable>>();

    modelDisplayables = new Array<ModelDisplayable>();
    displayableCollections.add(modelDisplayables);

    decalDisplayables = new Array<DecalDisplayable>();
    displayableCollections.add(decalDisplayables);

    renderContext = new RenderContext(new DefaultTextureBinder(DefaultTextureBinder.WEIGHTED));
    renderContext.setCullFace(GL20.GL_BACK);

    modelBatch = new ModelBatch(renderContext, new DefaultShaderProvider(), new HelixRenderableSorter());

    decalBatch = new DecalBatch(new CameraGroupStrategy(camera));

    spriteBatch = new SpriteBatch();
}

From source file:org.ah.gcode.preview.player.Renderer.java

License:Open Source License

public Renderer() {
    bottomShaderProvider = new DefaultShaderProvider() {

        DefaultShader currentLayerShader = null;

        @Override/*from ww  w  . ja v  a 2s .c o  m*/
        protected Shader createShader(final Renderable renderable) {
            if (currentLayerHasMesh(renderable.mesh)) { // Current layer shader
                if (currentLayerShader == null) {
                    DefaultShader.Config config = new DefaultShader.Config(
                            Gdx.files.internal("shaders/lighting.current.vertex.glsl").readString(),
                            Gdx.files.internal("shaders/lighting.fragment.glsl").readString());
                    currentLayerShader = new DefaultShader(renderable, config);

                    currentLayerShader.register(new BaseShader.Uniform("u_number"),
                            new BaseShader.GlobalSetter() {
                                @Override
                                public void set(BaseShader shader, int inputID, Renderable renderable,
                                        Attributes combinedAttributes) {
                                    shader.set(inputID, getCurrentInstructionNo());
                                }
                            });
                }
                return currentLayerShader;
            } else { // Solid - below current layer shader
                DefaultShader.Config config = new DefaultShader.Config(
                        Gdx.files.internal("shaders/lighting.solid.vertex.glsl").readString(),
                        Gdx.files.internal("shaders/lighting.fragment.glsl").readString());
                DefaultShader defaultShader = new DefaultShader(renderable, config) {
                    @Override
                    public boolean canRender(final Renderable renderable) {
                        if (currentLayerHasMesh(renderable.mesh)) {
                            return false;
                        }
                        return true;
                    }
                };
                return defaultShader;
            }
        }
    };
    solidModelBatch = new ModelBatch(null, bottomShaderProvider, null);

    topShaderProvider = new DefaultShaderProvider(Gdx.files.internal("shaders/lighting.top.vertex.glsl"),
            Gdx.files.internal("shaders/lighting.fragment.glsl"));
    topModelBatch = new ModelBatch(null, topShaderProvider, null);
}