List of usage examples for org.lwjgl.opengl GL20 glUniform1f
public static void glUniform1f(@NativeType("GLint") int location, @NativeType("GLfloat") float v0)
From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java
License:Apache License
/** * {@inheritDoc} */ @Override public void glUniform1f(int name, float i1) { GL20.glUniform1f(name, i1); }
From source file:com.badlogic.gdx.backends.jglfw.JglfwGL20.java
License:Apache License
public void glUniform1f(int location, float x) { GL20.glUniform1f(location, x); }
From source file:com.flowpowered.caustic.lwjgl.gl20.GL20Program.java
License:MIT License
@Override public void setUniform(String name, float f) { checkCreated();//from w w w . j a v a 2 s . com if (!isDirty(name, f)) { return; } GL20.glUniform1f(uniforms.get(name), f); uniformValues.put(name, f); LWJGLUtil.checkForGLError(); }
From source file:com.github.begla.blockmania.game.mobs.GelatinousCube.java
License:Apache License
public void render() { super.render(); glPushMatrix();//from w ww .j av a 2s . c o m glTranslatef(getPosition().x - _parent.getWorldProvider().getRenderingReferencePoint().x, getPosition().y - _parent.getWorldProvider().getRenderingReferencePoint().y, getPosition().z - _parent.getWorldProvider().getRenderingReferencePoint().z); glRotatef((float) _yaw, 0f, 1f, 0f); glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); TextureManager.getInstance().bindTexture("slime"); // Setup the shader ShaderManager.getInstance().enableShader("gelatinousCube"); int tick = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("gelatinousCube"), "tick"); GL20.glUniform1f(tick, _parent.getTick()); int cOffset = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("gelatinousCube"), "colorOffset"); GL20.glUniform4f(cOffset, COLORS[_randomColorId].x, COLORS[_randomColorId].y, COLORS[_randomColorId].z, 1.0f); int light = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("gelatinousCube"), "light"); GL20.glUniform1f(light, calcLightValue()); if (_displayListOuterBody == -1 || _displayListInnerBody == -1) { generateDisplayList(); } glPushMatrix(); glScalef(_randomSize, _randomSize, _randomSize); glCallList(_displayListInnerBody); glCallList(_displayListOuterBody); glPopMatrix(); glDisable(GL11.GL_TEXTURE_2D); glDisable(GL_BLEND); ShaderManager.getInstance().enableShader(null); glPopMatrix(); }
From source file:com.github.begla.blockmania.rendering.particles.BlockParticle.java
License:Apache License
protected void renderParticle() { if (_displayLists[_blockType] == 0) { _displayLists[_blockType] = glGenLists(1); glNewList(_displayLists[_blockType], GL11.GL_COMPILE); drawParticle();// w w w .ja v a2 s . c om glEndList(); } BlockParticleEmitter pE = (BlockParticleEmitter) getParent(); double lightValueSun = ((double) pE.getParent().getWorldProvider().getLightAtPosition(_position, Chunk.LIGHT_TYPE.SUN)); lightValueSun = (lightValueSun / 15.0) * pE.getParent().getDaylight(); double lightValueBlock = pE.getParent().getWorldProvider().getLightAtPosition(_position, Chunk.LIGHT_TYPE.BLOCK); lightValueBlock = lightValueBlock / 15.0; float lightValue = (float) Math.max(lightValueSun, lightValueBlock) * _lightOffset; int light = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("particle"), "light"); int texOffsetX = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("particle"), "texOffsetX"); int texOffsetY = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("particle"), "texOffsetY"); GL20.glUniform1f(light, lightValue); GL20.glUniform1f(texOffsetX, _texOffsetX); GL20.glUniform1f(texOffsetY, _texOffsetY); glCallList(_displayLists[_blockType]); }
From source file:com.github.begla.blockmania.world.horizon.Clouds.java
License:Apache License
public void render() { // Nothing to do if the player is swimming if (_parent.getPlayer().isHeadUnderWater()) return;/*from w w w. j a va 2 s . com*/ glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); ShaderManager.getInstance().enableShader("cloud"); int daylight = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("cloud"), "daylight"); GL20.glUniform1f(daylight, (float) _parent.getDaylight()); glPushMatrix(); glTranslatef(_parent.getPlayer().getPosition().x + _cloudOffset.x, 190f, _parent.getPlayer().getPosition().z + _cloudOffset.y); // Render two passes: The first one only writes to the depth buffer, the second one to the frame buffer for (int i = 0; i < 2; i++) { if (i == 0) { glColorMask(false, false, false, false); } else { glColorMask(true, true, true, true); } drawClouds(); } glPopMatrix(); ShaderManager.getInstance().enableShader(null); glDisable(GL_BLEND); }
From source file:com.github.begla.blockmania.world.horizon.Skysphere.java
License:Apache License
public void render() { updateClouds();/* ww w. j a v a2 s . c o m*/ glDisable(GL_CULL_FACE); glDisable(GL_DEPTH_TEST); glEnable(GL13.GL_TEXTURE_CUBE_MAP); GL11.glBindTexture(GL13.GL_TEXTURE_CUBE_MAP, _textureIds.get(0)); _sunPosAngle = (float) Math.toRadians(360.0 * _parent.getWorldProvider().getTime() - 90.0); Vector4f sunNormalise = new Vector4f(0.0f, (float) Math.cos(_sunPosAngle), (float) Math.sin(_sunPosAngle), 1.0f); sunNormalise.normalize(); _zenithColor = getAllWeatherZenith(sunNormalise.y); ShaderManager.getInstance().enableShader("sky"); int sunPos = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("sky"), "sunPos"); GL20.glUniform4f(sunPos, 0.0f, (float) Math.cos(_sunPosAngle), (float) Math.sin(_sunPosAngle), 1.0f); int time = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("sky"), "time"); GL20.glUniform1f(time, (float) _parent.getWorldProvider().getTime()); int sunAngle = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("sky"), "sunAngle"); GL20.glUniform1f(sunAngle, _sunPosAngle); int turbidity = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("sky"), "turbidity"); GL20.glUniform1f(turbidity, _turbidity); int zenith = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("sky"), "zenith"); GL20.glUniform3f(zenith, _zenithColor.x, _zenithColor.y, _zenithColor.z); // DRAW THE SKYSPHERE drawSphere(); glDisable(GL13.GL_TEXTURE_CUBE_MAP); ShaderManager.getInstance().enableShader("clouds"); // Apply daylight int lightClouds = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("clouds"), "light"); GL20.glUniform1f(lightClouds, getDaylight()); // DRAW THE CLOUDS drawClouds(); ShaderManager.getInstance().enableShader(null); glEnable(GL_CULL_FACE); glEnable(GL_DEPTH_TEST); }
From source file:com.github.begla.blockmania.world.main.World.java
License:Apache License
/** * Renders all chunks that are currently in the player's field of view. */// w w w.ja va 2 s . co m private void renderChunksAndEntities() { ShaderManager.getInstance().enableShader("chunk"); GL13.glActiveTexture(GL13.GL_TEXTURE1); TextureManager.getInstance().bindTexture("custom_lava_still"); GL13.glActiveTexture(GL13.GL_TEXTURE2); TextureManager.getInstance().bindTexture("custom_water_still"); GL13.glActiveTexture(GL13.GL_TEXTURE0); TextureManager.getInstance().bindTexture("terrain"); int daylight = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "daylight"); int swimming = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "swimming"); int lavaTexture = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "textureLava"); int waterTexture = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "textureWater"); int textureAtlas = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "textureAtlas"); GL20.glUniform1i(lavaTexture, 1); GL20.glUniform1i(waterTexture, 2); GL20.glUniform1i(textureAtlas, 0); int tick = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "tick"); GL20.glUniform1f(tick, _tick); GL20.glUniform1f(daylight, getDaylight()); GL20.glUniform1i(swimming, _player.isHeadUnderWater() ? 1 : 0); // OPAQUE ELEMENTS for (int i = 0; i < _visibleChunks.size(); i++) { Chunk c = _visibleChunks.get(i); c.render(ChunkMesh.RENDER_TYPE.OPAQUE); c.render(ChunkMesh.RENDER_TYPE.LAVA); if ((Boolean) ConfigurationManager.getInstance().getConfig().get("System.Debug.chunkOutlines")) { c.getAABB().render(); } } for (int i = 0; i < _visibleChunks.size(); i++) { Chunk c = _visibleChunks.get(i); c.render(ChunkMesh.RENDER_TYPE.BILLBOARD_AND_TRANSLUCENT); } for (int j = 0; j < 2; j++) { // ANIMATED WATER for (int i = 0; i < _visibleChunks.size(); i++) { Chunk c = _visibleChunks.get(i); if (j == 0) { glColorMask(false, false, false, false); } else { glColorMask(true, true, true, true); } c.render(ChunkMesh.RENDER_TYPE.WATER); } } _mobManager.renderAll(); ShaderManager.getInstance().enableShader("block"); _bulletPhysicsRenderer.render(); ShaderManager.getInstance().enableShader(null); }
From source file:com.github.begla.blockmania.world.physics.BulletPhysicsRenderer.java
License:Apache License
public void render() { for (BlockRigidBody b : _blocks) { Transform t = new Transform(); b.getMotionState().getWorldTransform(t); GL11.glPushMatrix();//from www .jav a2 s. c om FloatBuffer mBuffer = BufferUtils.createFloatBuffer(16); float[] mFloat = new float[16]; t.getOpenGLMatrix(mFloat); mBuffer.put(mFloat); mBuffer.flip(); GL11.glTranslatef(-_parent.getPlayer().getPosition().x, -_parent.getPlayer().getPosition().y, -_parent.getPlayer().getPosition().z); GL11.glMultMatrix(mBuffer); float lightValue = calcLightValueForTransform(t); int lightRef = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("block"), "light"); GL20.glUniform1f(lightRef, lightValue); BlockManager.getInstance().getBlock(b.getType()).render(); GL11.glPopMatrix(); } }
From source file:com.github.begla.blockmania.world.World.java
License:Apache License
/** * Renders the chunks./*from w w w . j a v a 2s .com*/ */ private void renderChunks() { ShaderManager.getInstance().enableShader("chunk"); int daylight = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "daylight"); int swimming = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "swimming"); int animationOffset = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "animationOffset"); int animated = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "animated"); GL20.glUniform1f(daylight, (float) getDaylight()); GL20.glUniform1i(swimming, _player.isHeadUnderWater() ? 1 : 0); FastList<Chunk> visibleChunks = fetchVisibleChunks(); glEnable(GL_TEXTURE_2D); GL20.glUniform1i(animated, 0); TextureManager.getInstance().bindTexture("terrain"); // OPAQUE ELEMENTS for (FastList.Node<Chunk> n = visibleChunks.head(), end = visibleChunks.tail(); (n = n.getNext()) != end;) { Chunk c = n.getValue(); c.render(ChunkMesh.RENDER_TYPE.OPAQUE); if (Configuration.getSettingBoolean("CHUNK_OUTLINES")) { c.getAABB().render(); } } // ANIMATED LAVA GL20.glUniform1i(animated, 1); TextureManager.getInstance().bindTexture("custom_lava_still"); GL20.glUniform1f(animationOffset, ((float) (_tick % 16)) * (1.0f / 16f)); for (FastList.Node<Chunk> n = visibleChunks.head(), end = visibleChunks.tail(); (n = n.getNext()) != end;) { Chunk c = n.getValue(); c.render(ChunkMesh.RENDER_TYPE.LAVA); } GL20.glUniform1i(animated, 0); TextureManager.getInstance().bindTexture("terrain"); // BILLBOARDS AND TRANSLUCENT ELEMENTS for (FastList.Node<Chunk> n = visibleChunks.head(), end = visibleChunks.tail(); (n = n.getNext()) != end;) { Chunk c = n.getValue(); c.render(ChunkMesh.RENDER_TYPE.BILLBOARD_AND_TRANSLUCENT); } GL20.glUniform1i(animated, 1); GL20.glUniform1f(animationOffset, ((float) (_tick / 2 % 12)) * (1.0f / 16f)); TextureManager.getInstance().bindTexture("custom_water_still"); for (int i = 0; i < 2; i++) { // ANIMATED WATER for (FastList.Node<Chunk> n = visibleChunks.head(), end = visibleChunks .tail(); (n = n.getNext()) != end;) { Chunk c = n.getValue(); if (i == 0) { glColorMask(false, false, false, false); } else { glColorMask(true, true, true, true); } c.render(ChunkMesh.RENDER_TYPE.WATER); } } ShaderManager.getInstance().enableShader(null); glDisable(GL_TEXTURE_2D); }