public void render () { angle += 45 * Gdx.graphics.getDeltaTime(); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); cam.update(); matrix.setToRotation(0, 1, 0, angle); cam.combined.mul(matrix); fbo.begin(); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); Gdx.gl.glEnable(GL20.GL_DEPTH_TEST); modelBatch.begin(cam); modelBatch.render(sceneInstance); modelBatch.end(); fbo.end(); batch.begin(); batch.disableBlending(); batchShader.setUniformi("u_filterSize", filter.length); batchShader.setUniform1fv("u_filter", filter, 0, filter.length); batchShader.setUniform2fv("u_offsets", offsets, 0, offsets.length); batch.draw(fboRegion, 0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); batch.end(); logger.log(); } }
@Override public void run() { p.begin(); p.setUniform2fv("u_pointAlpha", pointAlpha, 0, 2); p.end(); } });
public void setLightScreenPositionN (float x, float y) { vLightPos[0] = x; vLightPos[1] = 1 - y; shShafts.begin(); shShafts.setUniform2fv("lightPositionOnScreen", vLightPos, 0, 2); shShafts.end(); }
@Override protected void initShaderProgram() { pointAlpha = new float[] { GlobalConf.scene.POINT_ALPHA_MIN, GlobalConf.scene.POINT_ALPHA_MIN + GlobalConf.scene.POINT_ALPHA_MAX }; for (ShaderProgram p : programs) { if (p != null) { p.begin(); p.setUniform2fv("u_pointAlpha", pointAlpha, 0, 2); p.end(); } } }
@Override public void run() { p.begin(); p.setUniform2fv("u_pointAlpha", pointAlpha, 0, 2); p.end(); }
public void setParams (int samples, float exposure, float decay, float density, float weight, float illuminationDecay, float lightScreenPosX, float lightScreenPosY) { shShafts.begin(); shShafts.setUniformi("samples", samples); // 16 shShafts.setUniformf("exposure", exposure); // 0.0034 shShafts.setUniformf("decay", decay); // 1 shShafts.setUniformf("density", density); // 0.84 shShafts.setUniformf("weight", weight); // 5.65 shShafts.setUniformf("illuminationDecay", illuminationDecay); // 1 // normalized position vLightPos[0] = lightScreenPosX * oneOnW; vLightPos[1] = 1 - lightScreenPosY * oneOnH; shShafts.setUniform2fv("lightPositionOnScreen", vLightPos, 0, 2); shShafts.end(); }
protected T setParamsv (Parameter param, float[] values, int offset, int length) { if (!programBegan) { programBegan = true; program.begin(); } switch (param.arrayElementSize()) { case 4: program.setUniform4fv(param.mnemonic(), values, offset, length); break; case 3: program.setUniform3fv(param.mnemonic(), values, offset, length); break; case 2: program.setUniform2fv(param.mnemonic(), values, offset, length); break; default: case 1: program.setUniform1fv(param.mnemonic(), values, offset, length); break; } return (T)this; }
protected T setParamsv (Parameter param, float[] values, int offset, int length) { if (!programBegan) { programBegan = true; program.begin(); } switch (param.arrayElementSize()) { case 4: program.setUniform4fv(param.mnemonic(), values, offset, length); break; case 3: program.setUniform3fv(param.mnemonic(), values, offset, length); break; case 2: program.setUniform2fv(param.mnemonic(), values, offset, length); break; default: case 1: program.setUniform1fv(param.mnemonic(), values, offset, length); break; } return (T)this; }
protected T setParamsv (Parameter param, float[] values, int offset, int length) { if (!programBegan) { programBegan = true; program.begin(); } switch (param.arrayElementSize()) { case 4: program.setUniform4fv(param.mnemonic(), values, offset, length); break; case 3: program.setUniform3fv(param.mnemonic(), values, offset, length); break; case 2: program.setUniform2fv(param.mnemonic(), values, offset, length); break; default: case 1: program.setUniform1fv(param.mnemonic(), values, offset, length); break; } return (T)this; }
protected T setParamv (Parameter param, float[] values, int offset, int length) { program.begin(); switch (param.arrayElementSize()) { case 4: program.setUniform4fv(param.mnemonic(), values, offset, length); break; case 3: program.setUniform3fv(param.mnemonic(), values, offset, length); break; case 2: program.setUniform2fv(param.mnemonic(), values, offset, length); break; default: case 1: program.setUniform1fv(param.mnemonic(), values, offset, length); break; } program.end(); return (T)this; }
protected T setParamv (Parameter param, float[] values, int offset, int length) { program.begin(); switch (param.arrayElementSize()) { case 4: program.setUniform4fv(param.mnemonic(), values, offset, length); break; case 3: program.setUniform3fv(param.mnemonic(), values, offset, length); break; case 2: program.setUniform2fv(param.mnemonic(), values, offset, length); break; default: case 1: program.setUniform1fv(param.mnemonic(), values, offset, length); break; } program.end(); return (T)this; }
protected T setParamv (Parameter param, float[] values, int offset, int length) { program.begin(); switch (param.arrayElementSize()) { case 4: program.setUniform4fv(param.mnemonic(), values, offset, length); break; case 3: program.setUniform3fv(param.mnemonic(), values, offset, length); break; case 2: program.setUniform2fv(param.mnemonic(), values, offset, length); break; default: case 1: program.setUniform1fv(param.mnemonic(), values, offset, length); break; } program.end(); return (T)this; }
shader.setUniform2fv("resolution", resolution , 0, 2); shader.setUniformf("radius", radius);
shaderProgram.setUniform2fv("u_pointAlpha", pointAlpha, 0, 2); shaderProgram.setUniformMatrix("u_projModelView", camera.getCamera().combined); shaderProgram.setUniformf("u_camPos", camera.getCurrent().getPos().put(aux1));