Example usage for org.lwjgl.opengl GL13 glActiveTexture

List of usage examples for org.lwjgl.opengl GL13 glActiveTexture

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL13 glActiveTexture.

Prototype

public static void glActiveTexture(@NativeType("GLenum") int texture) 

Source Link

Document

Selects which texture unit subsequent texture state calls will affect.

Usage

From source file:org.terasology.rendering.renderingProcesses.DefaultRenderingProcess.java

License:Apache License

private void applyLightBufferPass(String target) {
    GLSLShaderProgramInstance program = ShaderManager.getInstance().getShaderProgramInstance("lightBufferPass");
    program.enable();//ww  w .java 2 s  .c  om

    DefaultRenderingProcess.FBO targetFbo = getFBO(target);

    int texId = 0;
    if (targetFbo != null) {
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        targetFbo.bindTexture();
        program.setInt("texSceneOpaque", texId++);

        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        targetFbo.bindDepthTexture();
        program.setInt("texSceneOpaqueDepth", texId++);

        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        targetFbo.bindNormalsTexture();
        program.setInt("texSceneOpaqueNormals", texId++);

        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        targetFbo.bindLightBufferTexture();
        program.setInt("texSceneOpaqueLightBuffer", texId++);
    }

    bindFbo(target + "PingPong");
    setRenderBufferMask(true, true, true);

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    renderFullscreenQuad();

    unbindFbo(target + "PingPong");

    flipPingPongFbo(target);

    if (target.equals("sceneOpaque")) {
        attachDepthBufferToFbo("sceneOpaque", "sceneTransparent");
    }
}

From source file:org.terasology.rendering.renderingProcesses.DefaultRenderingProcess.java

License:Apache License

private void generateHighPass() {
    GLSLShaderProgramInstance program = ShaderManager.getInstance().getShaderProgramInstance("highp");
    program.setFloat("highPassThreshold", (Float) bloomHighPassThreshold.getValue());
    program.enable();//from   w  w w  .  j  av a2 s. c om

    FBO highPass = getFBO("sceneHighPass");

    if (highPass == null) {
        return;
    }

    highPass.bind();

    FBO sceneOpaque = getFBO("sceneOpaque");

    int texId = 0;
    GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
    sceneOpaque.bindTexture();
    program.setInt("tex", texId++);

    GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
    sceneOpaque.bindDepthTexture();
    program.setInt("texDepth", texId++);

    glViewport(0, 0, highPass.width, highPass.height);

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    renderFullscreenQuad();

    highPass.unbind();

    glViewport(0, 0, rtFullWidth, rtFullHeight);
}

From source file:org.terasology.rendering.shader.ShaderParametersBlock.java

License:Apache License

@Override
public void applyParameters(Material program) {
    super.applyParameters(program);

    Texture terrainTex = Assets.getTexture("engine:terrain");

    if (terrainTex == null) {
        return;//  ww w  .java  2  s  .  c o m
    }

    GL13.glActiveTexture(GL13.GL_TEXTURE0);
    glBindTexture(GL11.GL_TEXTURE_2D, terrainTex.getId());

    program.setFloat3("colorOffset", 1.0f, 1.0f, 1.0f, true);
    program.setBoolean("textured", true, true);
    program.setFloat("alpha", 1.0f, true);
}

From source file:org.terasology.rendering.shader.ShaderParametersChunk.java

License:Apache License

public void applyParameters(Material program) {
    super.applyParameters(program);

    Texture terrain = Assets.getTexture("engine:terrain");
    Texture terrainNormal = Assets.getTexture("engine:terrainNormal");
    Texture terrainHeight = Assets.getTexture("engine:terrainHeight");

    Texture water = Assets.getTexture("engine:waterStill");
    Texture lava = Assets.getTexture("engine:lavaStill");
    Texture waterNormal = Assets.getTexture("engine:waterNormal");
    Texture waterNormalAlt = Assets.getTexture("engine:waterNormalAlt");
    Texture effects = Assets.getTexture("engine:effects");

    if (terrain == null || water == null || lava == null || waterNormal == null || effects == null) {
        return;/*from ww w.j ava2s. c  o  m*/
    }

    int texId = 0;
    GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
    glBindTexture(GL11.GL_TEXTURE_2D, terrain.getId());
    program.setInt("textureAtlas", texId++, true);
    GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
    glBindTexture(GL11.GL_TEXTURE_2D, water.getId());
    program.setInt("textureWater", texId++, true);
    GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
    glBindTexture(GL11.GL_TEXTURE_2D, lava.getId());
    program.setInt("textureLava", texId++, true);
    GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
    glBindTexture(GL11.GL_TEXTURE_2D, waterNormal.getId());
    program.setInt("textureWaterNormal", texId++, true);
    GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
    glBindTexture(GL11.GL_TEXTURE_2D, waterNormalAlt.getId());
    program.setInt("textureWaterNormalAlt", texId++, true);
    GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
    glBindTexture(GL11.GL_TEXTURE_2D, effects.getId());
    program.setInt("textureEffects", texId++, true);
    GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
    DefaultRenderingProcess.getInstance().bindFboTexture("sceneReflected");
    program.setInt("textureWaterReflection", texId++, true);
    GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
    DefaultRenderingProcess.getInstance().bindFboTexture("sceneOpaque");
    program.setInt("texSceneOpaque", texId++, true);

    if (CoreRegistry.get(Config.class).getRendering().isNormalMapping()) {
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        glBindTexture(GL11.GL_TEXTURE_2D, terrainNormal.getId());
        program.setInt("textureAtlasNormal", texId++, true);

        if (CoreRegistry.get(Config.class).getRendering().isParallaxMapping()) {
            GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
            glBindTexture(GL11.GL_TEXTURE_2D, terrainHeight.getId());
            program.setInt("textureAtlasHeight", texId++, true);
        }
    }

    Vector4f lightingSettingsFrag = new Vector4f();
    lightingSettingsFrag.z = waterSpecExp;
    program.setFloat4("lightingSettingsFrag", lightingSettingsFrag, true);

    Vector4f waterSettingsFrag = new Vector4f();
    waterSettingsFrag.x = waterNormalBias;
    waterSettingsFrag.y = waterRefraction;
    waterSettingsFrag.z = waterFresnelBias;
    waterSettingsFrag.w = waterFresnelPow;
    program.setFloat4("waterSettingsFrag", waterSettingsFrag, true);

    Vector4f alternativeWaterSettingsFrag = new Vector4f();
    alternativeWaterSettingsFrag.x = waterTint;
    program.setFloat4("alternativeWaterSettingsFrag", alternativeWaterSettingsFrag, true);

    if (CoreRegistry.get(Config.class).getRendering().isAnimateWater()) {
        program.setFloat("waveIntensFalloff", waveIntensFalloff, true);
        program.setFloat("waveSizeFalloff", waveSizeFalloff, true);
        program.setFloat("waveSize", waveSize, true);
        program.setFloat("waveSpeedFalloff", waveSpeedFalloff, true);
        program.setFloat("waveSpeed", waveSpeed, true);
        program.setFloat("waveIntens", waveIntens, true);
        program.setFloat("waterOffsetY", waterOffsetY, true);
        program.setFloat("waveOverallScale", waveOverallScale, true);
    }

    if (CoreRegistry.get(Config.class).getRendering().isParallaxMapping()
            && CoreRegistry.get(Config.class).getRendering().isNormalMapping()) {
        program.setFloat4("parallaxProperties", parallaxBias, parallaxScale, 0.0f, 0.0f, true);
    }
}

From source file:org.terasology.rendering.shader.ShaderParametersCombine.java

License:Apache License

@Override
public void applyParameters(Material program) {
    super.applyParameters(program);

    int texId = 0;

    DefaultRenderingProcess.FBO sceneOpaque = DefaultRenderingProcess.getInstance().getFBO("sceneOpaque");

    if (sceneOpaque != null) {
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        sceneOpaque.bindTexture();/*from   w w w .  j  ava  2 s. c o  m*/
        program.setInt("texSceneOpaque", texId++, true);

        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        sceneOpaque.bindDepthTexture();
        program.setInt("texSceneOpaqueDepth", texId++, true);

        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        sceneOpaque.bindNormalsTexture();
        program.setInt("texSceneOpaqueNormals", texId++, true);

        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        sceneOpaque.bindLightBufferTexture();
        program.setInt("texSceneOpaqueLightBuffer", texId++, true);
    }

    DefaultRenderingProcess.FBO sceneReflectiveRefractive = DefaultRenderingProcess.getInstance()
            .getFBO("sceneReflectiveRefractive");

    if (sceneReflectiveRefractive != null) {
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        sceneReflectiveRefractive.bindTexture();
        program.setInt("texSceneReflectiveRefractive", texId++, true);
    }

    if (CoreRegistry.get(Config.class).getRendering().isLocalReflections()) {
        if (sceneReflectiveRefractive != null) {
            GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
            sceneReflectiveRefractive.bindNormalsTexture();
            program.setInt("texSceneReflectiveRefractiveNormals", texId++, true);
        }

        Camera activeCamera = CoreRegistry.get(WorldRenderer.class).getActiveCamera();
        if (activeCamera != null) {
            program.setMatrix4("invProjMatrix", activeCamera.getInverseProjectionMatrix(), true);
            program.setMatrix4("projMatrix", activeCamera.getProjectionMatrix(), true);
        }
    }

    if (CoreRegistry.get(Config.class).getRendering().isSsao()) {
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("ssaoBlurred");
        program.setInt("texSsao", texId++, true);
    }

    if (CoreRegistry.get(Config.class).getRendering().isOutline()) {
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("sobel");
        program.setInt("texEdges", texId++, true);

        program.setFloat("outlineDepthThreshold", outlineDepthThreshold, true);
        program.setFloat("outlineThickness", outlineThickness, true);
    }

    if (CoreRegistry.get(Config.class).getRendering().isInscattering()) {
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("sceneSkyBand1");
        program.setInt("texSceneSkyBand", texId++, true);

        Vector4f skyInscatteringSettingsFrag = new Vector4f();
        skyInscatteringSettingsFrag.y = skyInscatteringStrength;
        skyInscatteringSettingsFrag.z = skyInscatteringLength;
        skyInscatteringSettingsFrag.w = skyInscatteringThreshold;
        program.setFloat4("skyInscatteringSettingsFrag", skyInscatteringSettingsFrag, true);
    }
}

From source file:org.terasology.rendering.shader.ShaderParametersDebug.java

License:Apache License

public void applyParameters(Material program) {
    super.applyParameters(program);

    Config config = CoreRegistry.get(Config.class);

    int texId = 0;

    switch (config.getRendering().getDebug().getStage()) {
    case SHADOW_MAP:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboDepthTexture("sceneShadowMap");
        program.setInt("texDebug", texId++, true);
        break;/*from   www.ja  va 2  s.c o  m*/
    case OPAQUE_COLOR:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("sceneOpaque");
        program.setInt("texDebug", texId++, true);
        break;
    case OPAQUE_NORMALS:
    case OPAQUE_SUNLIGHT:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboNormalsTexture("sceneOpaque");
        program.setInt("texDebug", texId++, true);
        break;
    case OPAQUE_DEPTH:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboDepthTexture("sceneOpaque");
        program.setInt("texDebug", texId++, true);
        break;
    case OPAQUE_LIGHT_BUFFER:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboLightBufferTexture("sceneOpaque");
        program.setInt("texDebug", texId++, true);
        break;
    case TRANSPARENT_COLOR:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("sceneReflectiveRefractive");
        program.setInt("texDebug", texId++, true);
        break;
    case SSAO:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("ssaoBlurred");
        program.setInt("texDebug", texId++, true);
        break;
    case SOBEL:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("sobel");
        program.setInt("texDebug", texId++, true);
        break;
    case BAKED_OCCLUSION:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("sceneOpaque");
        program.setInt("texDebug", texId++, true);
        break;
    case RECONSTRUCTED_POSITION:
        Camera activeCamera = CoreRegistry.get(WorldRenderer.class).getActiveCamera();
        if (activeCamera != null) {
            program.setMatrix4("invProjMatrix", activeCamera.getInverseProjectionMatrix(), true);
        }

        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboDepthTexture("sceneOpaque");
        program.setInt("texDebug", texId++, true);
        break;
    case BLOOM:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("sceneBloom2");
        program.setInt("texDebug", texId++, true);
        break;
    case HIGH_PASS:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("sceneHighPass");
        program.setInt("texDebug", texId++, true);
        break;
    case SKY_BAND:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("sceneSkyBand1");
        program.setInt("texDebug", texId++, true);
        break;
    case LIGHT_SHAFTS:
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
        DefaultRenderingProcess.getInstance().bindFboTexture("lightShafts");
        program.setInt("texDebug", texId++, true);
        break;
    default:
        break;
    }

    program.setInt("debugRenderingStage",
            CoreRegistry.get(Config.class).getRendering().getDebug().getStage().getIndex());
}

From source file:org.terasology.rendering.shader.ShaderParametersDefault.java

License:Apache License

public void applyParameters(Material program) {
    super.applyParameters(program);

    GL13.glActiveTexture(GL13.GL_TEXTURE0);
    glBindTexture(GL11.GL_TEXTURE_2D, 0);
}

From source file:org.terasology.rendering.shader.ShaderParametersGelCube.java

License:Apache License

@Override
public void applyParameters(Material program) {
    super.applyParameters(program);

    GL13.glActiveTexture(GL13.GL_TEXTURE0);
    glBindTexture(GL11.GL_TEXTURE_2D, Assets.getTexture("engine:slime").getId());
}

From source file:org.terasology.rendering.shader.ShaderParametersGenericMesh.java

License:Apache License

@Override
public void applyParameters(ShaderProgram program) {
    LocalPlayer localPlayer = CoreRegistry.get(LocalPlayer.class);

    GL13.glActiveTexture(GL13.GL_TEXTURE0);
    glBindTexture(GL11.GL_TEXTURE_2D, texture.getId());

    if (localPlayer != null)
        program.setInt("carryingTorch", localPlayer.isCarryingTorch() ? 1 : 0);

    program.setFloat3("colorOffset", 1.0f, 1.0f, 1.0f);
    program.setInt("textured", 1);
}

From source file:org.terasology.rendering.shader.ShaderParametersHdr.java

License:Apache License

public void applyParameters(Material program) {
    super.applyParameters(program);

    GL13.glActiveTexture(GL13.GL_TEXTURE0);
    DefaultRenderingProcess.getInstance().bindFboTexture("scenePrePost");

    program.setInt("texScene", 0, true);
    program.setFloat("exposure", DefaultRenderingProcess.getInstance().getExposure() * exposureBias, true);
    program.setFloat("whitePoint", whitePoint, true);
}