Example usage for com.badlogic.gdx.graphics.glutils ShaderProgram end

List of usage examples for com.badlogic.gdx.graphics.glutils ShaderProgram end

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics.glutils ShaderProgram end.

Prototype

public void end() 

Source Link

Document

Disables this shader.

Usage

From source file:airfoil.Main.java

License:Open Source License

protected final void renderMeshTriangles(Mesh mesh) {
    final ShaderProgram bodyShader = this.bodyShader;
    if (null != bodyShader) {

        if (null != mesh) {
            final Matrix4 camera = this.getCamera();

            bodyShader.begin();/*w  w w .j a v  a  2  s. co  m*/

            bodyShader.setUniformMatrix("u_camera", camera);
            bodyShader.setUniformf("u_color", Color.YELLOW);
            bodyShader.setUniformf("u_light", LightNormal);
            bodyShader.setUniformf("u_mat", Material);

            mesh.render(bodyShader, GL20.GL_TRIANGLES);

            bodyShader.end();
        }
    }
}

From source file:airfoil.Main.java

License:Open Source License

protected final void renderMeshLines(Mesh mesh) {
    final ShaderProgram axesShader = this.axesShader;
    if (null != axesShader) {

        if (null != mesh) {
            final Matrix4 camera = this.getCamera();

            axesShader.begin();//from   w ww . j  a va2s .co  m

            axesShader.setUniformMatrix("u_camera", camera);
            axesShader.setUniformf("u_color", Color.YELLOW);
            axesShader.setUniformf("u_light", LightNormal);
            axesShader.setUniformf("u_mat", Material);

            mesh.render(axesShader, GL20.GL_LINES);

            axesShader.end();
        }
    }
}

From source file:com.box2dLight.box2dLight.LightMap.java

License:Apache License

public void render(Matrix4 combined, float x1, float x2, float y1, float y2) {

    boolean needed = rayHandler.lightRenderedLastFrame > 0;
    // this way lot less binding
    if (needed && rayHandler.blur)
        gaussianBlur();//from   w ww. j  av a  2 s.c om

    if (lightMapDrawingDisabled) {
        return;
    }
    frameBuffer.getColorBufferTexture().bind(0);

    // at last lights are rendered over scene
    if (rayHandler.shadows) {

        final Color c = rayHandler.ambientLight;
        ShaderProgram shader = shadowShader;
        if (RayHandler.isDiffuse) {
            shader = diffuseShader;
            shader.begin();
            Gdx.gl20.glBlendFunc(GL20.GL_DST_COLOR, GL20.GL_SRC_COLOR);
            shader.setUniformf("ambient", c.r, c.g, c.b, c.a);
        } else {
            shader.begin();
            Gdx.gl20.glBlendFunc(GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA);
            shader.setUniformf("ambient", c.r * c.a, c.g * c.a, c.b * c.a, 1f - c.a);
        }
        lightMapMesh.render(shader, GL20.GL_TRIANGLE_FAN);
        shader.end();
    } else if (needed) {

        Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE);
        withoutShadowShader.begin();
        // withoutShadowShader.setUniformi("u_texture", 0);
        lightMapMesh.render(withoutShadowShader, GL20.GL_TRIANGLE_FAN);
        withoutShadowShader.end();
    }

    Gdx.gl20.glDisable(GL20.GL_BLEND);
}

From source file:mobi.shad.s3lib.main.S3Gfx.java

License:Apache License

public static void drawMeshQuad(Texture texture, Texture texture2, ShaderProgram shader) {
    Gdx.gl20.glActiveTexture(GL20.GL_TEXTURE0);
    texture.bind();//from   w w w  .j  a va  2 s.c om
    Gdx.gl20.glActiveTexture(GL20.GL_TEXTURE1);
    texture2.bind();
    shader.begin();
    shader.setUniformi("u_texture0", 0);
    shader.setUniformi("u_texture1", 1);
    mesh.render(shader, GL20.GL_TRIANGLES);
    shader.end();
}

From source file:mobi.shad.s3lib.main.S3Gfx.java

License:Apache License

public static void drawFlipMeshQuad(Texture texture, Texture texture2, ShaderProgram shader) {
    Gdx.gl20.glActiveTexture(GL20.GL_TEXTURE0);
    texture.bind();//www .  j a  v a  2 s.  c  o m
    Gdx.gl20.glActiveTexture(GL20.GL_TEXTURE1);
    texture2.bind();
    shader.begin();
    shader.setUniformi("u_texture0", 0);
    shader.setUniformi("u_texture1", 1);
    meshFlip.render(shader, GL20.GL_TRIANGLES);
    shader.end();
}

From source file:seventh.client.gfx.effects.ExplosionEffect.java

License:Open Source License

@Override
public void update(TimeStep timeStep) {

    /* Always clear out the data, this will get
     * overridden by the next loop if the explosion 
     * is active/*ww  w  . j  a  v a  2 s  .  c o m*/
     */
    for (int i = 0; i < this.instances.length; i++) {
        this.shaderData[i] = -0.1f;
        this.shaderData[i + 1] = -0.1f;
        this.shaderData[i + 2] = 0;
    }

    int activeCount = 0;
    for (int i = 0; i < this.instances.length; i++) {
        this.instances[i].update(timeStep);

        if (this.instances[i].isActive()) {
            this.instances[i].set(shaderData, activeCount++);
        }
    }

    ShaderProgram shader = ExplosionEffectShader.getInstance().getShader();
    shader.begin();
    shader.setUniform3fv("shockData", this.shaderData, 0, this.shaderData.length);
    shader.setUniformf("shockParams", 10.0f, 0.08f, 0.1f);
    shader.end();

}

From source file:seventh.client.gfx.ImageBasedLightSystem.java

License:Open Source License

@Override
public void update(TimeStep timeStep) {
    ShaderProgram shader = this.shader.getShader();
    shader.begin();/*w  w  w. ja  v a2  s. c  o  m*/
    {
        //            this.ambientColor.set(0.3f, 0.3f, 0.4f);
        //            this.ambientColor.set(0.9f, 0.9f, 0.9f);
        //            this.ambientIntensity = 0.4f;

        shader.setUniformi("u_lightmap", 1);
        shader.setUniformf("ambientColor", ambientColor.x, ambientColor.y, ambientColor.z, ambientIntensity);
        shader.setUniformf("resolution", Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    }
    shader.end();

    for (int i = 0; i < this.lights.size(); i++) {
        Light light = this.lights.get(i);
        light.update(timeStep);
    }

}

From source file:seventh.client.gfx.Shader.java

License:Open Source License

public Shader end() {
    ShaderProgram shader = getShader();
    shader.end();
    return this;
}

From source file:ve.ucv.ciens.ccg.nxtar.graphics.shaders.DirectionalLightPerPixelShader.java

License:Apache License

@Override
public void render(Renderable renderable) {
    ShaderProgram program;
    int index;/* w  ww.  j a  v a  2s .co  m*/
    boolean bonesEnabled;
    Vector3 lightPosition;
    Color diffuseLightColor;
    Color diffuseColor;
    Color specularColor;
    Color ambientColor;
    float shininess;

    // Get material colors.
    if (renderable.environment != null && renderable.environment.directionalLights != null
            && renderable.environment.directionalLights.size >= 1) {
        lightPosition = renderable.environment.directionalLights.get(0).direction;
        diffuseLightColor = renderable.environment.directionalLights.get(0).color;
    } else {
        lightPosition = DEFAULT_LIGHT;
        diffuseLightColor = Color.WHITE;
    }

    if (renderable.material.has(ColorAttribute.Diffuse))
        diffuseColor = ((ColorAttribute) renderable.material.get(ColorAttribute.Diffuse)).color;
    else
        diffuseColor = Color.WHITE;

    if (renderable.material.has(ColorAttribute.Specular))
        specularColor = ((ColorAttribute) renderable.material.get(ColorAttribute.Specular)).color;
    else
        specularColor = Color.BLACK;

    if (renderable.environment != null && renderable.environment.has(ColorAttribute.AmbientLight))
        ambientColor = ((ColorAttribute) renderable.environment.get(ColorAttribute.AmbientLight)).color;
    else
        ambientColor = Color.BLACK;

    if (renderable.material.has(FloatAttribute.Shininess))
        shininess = ((FloatAttribute) renderable.material.get(FloatAttribute.Shininess)).value;
    else
        shininess = DEFAULT_SHININESS;

    if (renderable.mesh.getVertexAttribute(VertexAttributes.Usage.BoneWeight) != null) {
        program = skinningProgram;
        index = 0;
        bonesEnabled = true;
    } else {
        program = baseProgram;
        index = 1;
        bonesEnabled = false;
    }

    program.begin();

    // Set camera dependant uniforms.
    program.setUniformMatrix(u_projTrans[index], this.camera.combined);
    program.setUniformf(u_cameraPos[index], this.camera.position);

    // Set model dependant uniforms.
    program.setUniformMatrix(u_geomTrans[index], renderable.worldTransform);
    program.setUniformMatrix(u_normalMatrix[index],
            normalMatrix.set(renderable.worldTransform).toNormalMatrix());
    program.setUniformf(u_lightPos[index], lightPosition);
    program.setUniformf(u_lightDiffuse[index], diffuseLightColor);
    program.setUniformf(u_materialDiffuse[index], diffuseColor);
    program.setUniformf(u_specular[index], specularColor);
    program.setUniformf(u_ambient[index], ambientColor);
    program.setUniformf(u_shiny[index], shininess);

    // Set the bones uniforms.
    if (bonesEnabled) {
        for (int i = 0; i < MAX_NUM_BONES; i++) {
            if (renderable.bones != null && i < renderable.bones.length && renderable.bones[i] != null)
                skinningProgram.setUniformMatrix(u_bones[i], renderable.bones[i]);
            else
                skinningProgram.setUniformMatrix(u_bones[i], IDENTITY);
        }
    }

    renderable.mesh.render(program, renderable.primitiveType, renderable.meshPartOffset,
            renderable.meshPartSize);

    program.end();
}