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

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

Introduction

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

Prototype

public void begin() 

Source Link

Document

Makes OpenGL ES 2.0 use this vertex and fragment shader pair.

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();

            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();/*  w  w  w  .  ja v  a  2  s . c  om*/
        }
    }
}

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();

            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 w w w.  j a va 2s . co  m*/
        }
    }
}

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();/*  w w  w  .ja  v a 2s  . co  m*/

    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();/*  ww w.jav a2s  . 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();//from   w w  w  . ja  v a 2s .co 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//w  w  w . java2s .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();
    {/*from   w  w  w.  ja v a  2 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 begin() {
    ShaderProgram shader = getShader();
    shader.begin();
    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;//from  www  . ja v a 2 s .c  om
    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();
}