protected void addGravWaveUniforms(ShaderProgram shaderProgram) { if (GlobalConf.runtime.GRAVITATIONAL_WAVES) { RelativisticEffectsManager rem = RelativisticEffectsManager.getInstance(); // Time in seconds - use simulation time shaderProgram.setUniformf("u_ts", rem.gwtime); // Wave frequency shaderProgram.setUniformf("u_omgw", rem.omgw); // Coordinates of wave (cartesian) shaderProgram.setUniformf("u_gw", rem.gw); // Transformation matrix shaderProgram.setUniformMatrix("u_gwmat3", rem.gwmat3); // H terms - hpluscos, hplussin, htimescos, htimessin shaderProgram.setUniform4fv("u_hterms", rem.hterms, 0, 4); } }
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; }
@Override public void renderStud(Array<IRenderable> renderables, ICamera camera, double t) { renderables.sort(comp); batch.begin(); int size = renderables.size; ShaderProgram program = programs[0]; if (program == null) { for (int i = 0; i < size; i++) { IAnnotationsRenderable s = (IAnnotationsRenderable) renderables.get(i); // Render sprite s.render(batch, camera, getAlpha(s)); } } else { float lalpha = alphas[ComponentType.Labels.ordinal()]; fontDistanceField.getData().setScale(0.6f); for (int i = 0; i < size; i++) { I3DTextRenderable s = (I3DTextRenderable) renderables.get(i); // Regular mode, we use 3D distance field font I3DTextRenderable lr = (I3DTextRenderable) s; // Label color program.setUniform4fv("u_color", GlobalConf.program.isUINightMode() ? red : lr.textColour(), 0, 4); // Component alpha program.setUniformf("u_componentAlpha", getAlpha(s) * (s instanceof Text2D ? 1 : lalpha)); // Font opacity multiplier, take into account element opacity program.setUniformf("u_opacity", 0.75f * lr.getTextOpacity()); s.render(batch, program, this, rc, camera); } } batch.end(); }
alphaSizeFovBr[2] = camera.getFovFactor(); alphaSizeFovBr[3] = (float) (GlobalConf.scene.STAR_BRIGHTNESS * BRIGHTNESS_FACTOR); shaderProgram.setUniform4fv("u_alphaSizeFovBr", alphaSizeFovBr, 0, 4);
alphaSizeFovBr[2] = camera.getFovFactor(); alphaSizeFovBr[3] = (float) (GlobalConf.scene.STAR_BRIGHTNESS * BRIGHTNESS_FACTOR); shaderProgram.setUniform4fv("u_alphaSizeFovBr", alphaSizeFovBr, 0, 4);