List of usage examples for org.lwjgl.opengl ARBShaderObjects glUniform1fARB
public static native void glUniform1fARB(@NativeType("GLint") int location, @NativeType("GLfloat") float v0);
From source file:com.ardor3d.scene.state.lwjgl.shader.LwjglShaderUtil.java
License:Open Source License
private static void updateShaderUniform(final ShaderVariableFloat shaderUniform) { ARBShaderObjects.glUniform1fARB(shaderUniform.variableID, shaderUniform.value1); }
From source file:com.mtbs3d.minecrift.VRRenderer.java
License:LGPL
private void doDistortionAndSuperSample() { int FBWidth = this.mc.displayFBWidth; int FBHeight = this.mc.displayFBHeight; if (this.mc.vrSettings.useDistortion || this.mc.vrSettings.useSupersample || this.mc.vrSettings.useFXAA) { // Setup ortho projection GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glLoadIdentity();//from w ww .ja va 2 s .c o m GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glLoadIdentity(); GL11.glTranslatef(0.0f, 0.0f, -0.7f); } if (this.mc.vrSettings.useSupersample) { FBWidth = (int) ceil(this.mc.displayFBWidth * this.mc.vrSettings.superSampleScaleFactor); FBHeight = (int) ceil(this.mc.displayFBHeight * this.mc.vrSettings.superSampleScaleFactor); } if (mc.vrSettings.useDistortion) { //mc.checkGLError("Before distortion"); preDistortionFBO.bindTexture(); if (this.mc.vrSettings.useFXAA) { //chain into the FXAA FBO fxaaFBO.bindRenderTarget(); } else if (this.mc.vrSettings.useSupersample) { //chain into the superSample FBO postDistortionFBO.bindRenderTarget(); } else { unbindFBORenderTarget(); } GL11.glClearColor(1.0f, 1.0f, 1.0f, 0.5f); GL11.glClearDepth(1.0D); GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer on the framebuffer to black // Render onto the entire screen framebuffer GL11.glViewport(0, 0, FBWidth, FBHeight); // Set the distortion shader as in use ARBShaderObjects.glUseProgramObjectARB(_Distortion_shaderProgramId); // Set up the fragment shader uniforms ARBShaderObjects.glUniform1iARB(_DistortionShader_RenderTextureUniform, 0); if (this.mc.vrSettings.useDistortionTextureLookupOptimisation) { distortParams.bindTexture_Unit1(); ARBShaderObjects.glUniform1iARB(_DistortionShader_DistortionMapUniform, 1); } ARBShaderObjects.glUniform1iARB(_DistortionShader_half_screenWidthUniform, distortParams.half_screenWidth); ARBShaderObjects.glUniform2fARB(_DistortionShader_LeftLensCenterUniform, distortParams.leftLensCenterX, distortParams.leftLensCenterY); ARBShaderObjects.glUniform2fARB(_DistortionShader_RightLensCenterUniform, distortParams.rightLensCenterX, distortParams.rightLensCenterY); ARBShaderObjects.glUniform2fARB(_DistortionShader_LeftScreenCenterUniform, distortParams.leftScreenCenterX, distortParams.leftScreenCenterY); ARBShaderObjects.glUniform2fARB(_DistortionShader_RightScreenCenterUniform, distortParams.rightScreenCenterX, distortParams.rightScreenCenterY); ARBShaderObjects.glUniform2fARB(_DistortionShader_ScaleUniform, distortParams.scaleX, distortParams.scaleY); ARBShaderObjects.glUniform2fARB(_DistortionShader_ScaleInUniform, distortParams.scaleInX, distortParams.scaleInY); ARBShaderObjects.glUniform4fARB(_DistortionShader_HmdWarpParamUniform, distortParams.DistortionK[0], distortParams.DistortionK[1], distortParams.DistortionK[2], distortParams.DistortionK[3]); ARBShaderObjects.glUniform4fARB(_DistortionShader_ChromAbParamUniform, distortParams.ChromaticAb[0], distortParams.ChromaticAb[1], distortParams.ChromaticAb[2], distortParams.ChromaticAb[3]); drawQuad(); // Stop shader use ARBShaderObjects.glUseProgramObjectARB(0); OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit); //mc.checkGLError("After distortion"); } if (this.mc.vrSettings.useFXAA) { fxaaFBO.bindTexture(); if (this.mc.vrSettings.useSupersample) { //chain into the superSample FBO postDistortionFBO.bindRenderTarget(); } else { unbindFBORenderTarget(); } GL11.glClearColor(1.0f, 1.0f, 1.0f, 0.5f); GL11.glClearDepth(1.0D); GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer on the framebuffer to black // Render onto the entire screen framebuffer GL11.glViewport(0, 0, FBWidth, FBHeight); // Set the distortion shader as in use ARBShaderObjects.glUseProgramObjectARB(_FXAA_shaderProgramId); // Set up the fragment shader uniforms ARBShaderObjects.glUniform1iARB(_FXAA_RenderTextureUniform, 0); ARBShaderObjects.glUniform2fARB(_FXAA_RenderedTextureSizeUniform, (float) FBWidth, (float) FBHeight); drawQuad(); // Stop shader use ARBShaderObjects.glUseProgramObjectARB(0); OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit); //ShaderHelper.checkGLError("After fxaa"); } if (this.mc.vrSettings.useSupersample) { // Now switch to 1st pass target framebuffer postSuperSampleFBO.bindRenderTarget(); // Bind the FBO postDistortionFBO.bindTexture(); GL11.glClearColor(0.0f, 0.0f, 1.0f, 0.5f); GL11.glClearDepth(1.0D); GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer on the framebuffer to black // Render onto the entire screen framebuffer GL11.glViewport(0, 0, this.mc.displayFBWidth, FBHeight); // Set the downsampling shader as in use ARBShaderObjects.glUseProgramObjectARB(_Lanczos_shaderProgramId); // Set up the fragment shader uniforms ARBShaderObjects.glUniform1fARB(_LanczosShader_texelWidthOffsetUniform, 1.0f / (3.0f * (float) this.mc.displayFBWidth)); ARBShaderObjects.glUniform1fARB(_LanczosShader_texelHeightOffsetUniform, 0.0f); ARBShaderObjects.glUniform1iARB(_LanczosShader_inputImageTextureUniform, 0); GL11.glClear(GL11.GL_COLOR_BUFFER_BIT); // Pass 1 drawQuad(); // mc.checkGLError("After Lanczos Pass1"); // Pass 2 // Now switch to 2nd pass screen framebuffer unbindFBORenderTarget(); postSuperSampleFBO.bindTexture(); GL11.glViewport(0, 0, this.mc.displayFBWidth, this.mc.displayFBHeight); GL11.glClearColor(0.0f, 0.0f, 1.0f, 0.5f); GL11.glClearDepth(1.0D); GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); // Bind the texture GL13.glActiveTexture(GL13.GL_TEXTURE0); // Set up the fragment shader uniforms for pass 2 ARBShaderObjects.glUniform1fARB(_LanczosShader_texelWidthOffsetUniform, 0.0f); ARBShaderObjects.glUniform1fARB(_LanczosShader_texelHeightOffsetUniform, 1.0f / (3.0f * (float) this.mc.displayFBHeight)); ARBShaderObjects.glUniform1iARB(_LanczosShader_inputImageTextureUniform, 0); drawQuad(); // Stop shader use ARBShaderObjects.glUseProgramObjectARB(0); // mc.checkGLError("After Lanczos Pass2"); } }
From source file:com.wuest.prefab.Structures.Render.ShaderHelper.java
License:Open Source License
public static void useShader(int shader) { if (!OpenGlHelper.shadersSupported) { return;/*from ww w .j a va 2 s .c o m*/ } ARBShaderObjects.glUseProgramObjectARB(shader); if (shader != 0) { int time = ARBShaderObjects.glGetUniformLocationARB(shader, "time"); ARBShaderObjects.glUniform1iARB(time, ClientEventHandler.ticksInGame); int alpha = ARBShaderObjects.glGetUniformLocationARB(shader, "alpha"); ARBShaderObjects.glUniform1fARB(alpha, 0.4F); } }
From source file:de.sanandrew.mods.turretmod.client.gui.tinfo.GuiButtonCategory.java
License:Creative Commons License
private void doBtnShader(int shader) { TextureManager texMgr = Minecraft.getMinecraft().renderEngine; int heightMatchUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "heightMatch"); int imageUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "image"); int maskUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "mask"); float heightMatch = this.ticksHovered / TIME; OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB); GlStateManager.bindTexture(texMgr.getTexture(this.texture).getGlTextureId()); ARBShaderObjects.glUniform1iARB(imageUniform, 0); OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB + TmrConfiguration.glSecondaryTextureUnit); GlStateManager.enableTexture2D();//w ww. ja va2 s . co m GlStateManager.glGetInteger(GL11.GL_TEXTURE_BINDING_2D); ResourceLocation stencil = Resources.TINFO_GRP_STENCIL.getResource(); texMgr.getTexture(stencil); ITextureObject stencilTex; texMgr.bindTexture(stencil); stencilTex = texMgr.getTexture(stencil); GlStateManager.bindTexture(stencilTex.getGlTextureId()); ARBShaderObjects.glUniform1iARB(maskUniform, 7); ARBShaderObjects.glUniform1fARB(heightMatchUniform, heightMatch); }
From source file:de.sanandrew.mods.turretmod.client.shader.ShaderGrayscale.java
License:Creative Commons License
private void drawGrayscale(int shader, float brightness) { TextureManager texMgr = Minecraft.getMinecraft().renderEngine; int imageUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "image"); int brightnessUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "brightness"); OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB); GlStateManager.bindTexture(texMgr.getTexture(this.texture).getGlTextureId()); ARBShaderObjects.glUniform1iARB(imageUniform, 0); ARBShaderObjects.glUniform1fARB(brightnessUniform, brightness); }
From source file:de.sanandrew.mods.turretmod.client.shader.ShaderItemAlphaOverride.java
License:Creative Commons License
public void call(int shader) { TextureManager texMgr = Minecraft.getMinecraft().renderEngine; int alphaUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "alpha"); int imageUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "image"); OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB); GL11.glBindTexture(GL11.GL_TEXTURE_2D, texMgr.getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).getGlTextureId()); ARBShaderObjects.glUniform1iARB(imageUniform, 0); ARBShaderObjects.glUniform1fARB(alphaUniform, this.alphaMulti); }
From source file:flash.display.ShaderParameter.java
License:Open Source License
public void JITB$applyParameter(final int programId) { final int location = ARBShaderObjects.glGetUniformLocationARB(programId, name()); if (_type.equals(ShaderParameterType.FLOAT)) { ARBShaderObjects.glUniform1fARB(location, getFloat(0)); } else if (_type.equals(ShaderParameterType.FLOAT2)) { ARBShaderObjects.glUniform2fARB(location, getFloat(0), getFloat(1)); } else if (_type.equals(ShaderParameterType.FLOAT3)) { ARBShaderObjects.glUniform3fARB(location, getFloat(0), getFloat(1), getFloat(2)); } else if (_type.equals(ShaderParameterType.FLOAT4)) { ARBShaderObjects.glUniform4fARB(location, getFloat(0), getFloat(1), getFloat(2), getFloat(3)); }//from ww w. j av a 2s . c o m }
From source file:lessur.util.shader.ShaderManager.java
License:GNU General Public License
/** * /*from w w w . j av a2 s. c om*/ * @param program ID/index of the program * @param name Name of the variable * @param value Value to set the variable */ public void setUniform1(int program, String name, float value) { if (has_opengl2) { int loc = GL20.glGetUniformLocation(program, name); checkVariableLocation(loc, name); GL20.glUniform1f(loc, value); } else if (has_arb) { int loc = ARBShaderObjects.glGetUniformLocationARB(program, name); checkVariableLocation(loc, name); ARBShaderObjects.glUniform1fARB(loc, value); } }
From source file:lessur.util.shader.ShaderManager.java
License:GNU General Public License
/** * // w w w . ja v a 2 s .c om * @param program ID/index of the program * @param name Name of the variable * @param value Value to set the variable */ public void setUniformFloat(int program, String name, float value) { if (has_opengl2) { int loc = GL20.glGetUniformLocation(program, name); checkVariableLocation(loc, name); GL20.glUniform1f(loc, value); } else if (has_arb) { int loc = ARBShaderObjects.glGetUniformLocationARB(program, name); checkVariableLocation(loc, name); ARBShaderObjects.glUniform1fARB(loc, value); } }
From source file:lessur.util.shader.ShaderManager.java
License:GNU General Public License
/** * /*from ww w . ja va2s . c om*/ * @param program ID/index of the program * @param name Name of the variable * @param value Value to set the variable */ public void setUniformFloatArray(int program, String name, float values[]) { if (has_opengl2) { int loc = GL20.glGetUniformLocation(program, name); checkVariableLocation(loc, name); if (values.length == 1) GL20.glUniform1f(loc, values[0]); if (values.length == 2) GL20.glUniform2f(loc, values[0], values[1]); else if (values.length == 3) GL20.glUniform3f(loc, values[0], values[1], values[2]); else if (values.length == 4) GL20.glUniform4f(loc, values[0], values[1], values[2], values[3]); } else if (has_arb) { int loc = ARBShaderObjects.glGetUniformLocationARB(program, name); checkVariableLocation(loc, name); if (values.length == 1) ARBShaderObjects.glUniform1fARB(loc, values[0]); if (values.length == 2) ARBShaderObjects.glUniform2fARB(loc, values[0], values[1]); else if (values.length == 3) ARBShaderObjects.glUniform3fARB(loc, values[0], values[1], values[2]); else if (values.length == 4) ARBShaderObjects.glUniform4fARB(loc, values[0], values[1], values[2], values[3]); } }