List of usage examples for org.lwjgl.opengl GL13 GL_TEXTURE0
int GL_TEXTURE0
To view the source code for org.lwjgl.opengl GL13 GL_TEXTURE0.
Click Source Link
From source file:com.opengrave.og.base.RenderableMultitex.java
License:Open Source License
@Override public void render(Matrix4f matrix, RenderStyle style) { dealWithChange();/* w ww.j a v a 2s.c om*/ if (vertexList.size() == 0) { return; } // GL11.glBindTexture(GL11.GL_TEXTURE_2D, // Resources.loadTexture("tex/blank.png").id); int pID = Resources.loadShader("terrain.vs", "terrain.fs").getProgram(); GL20.glUseProgram(pID); int atlas = GL20.glGetUniformLocation(pID, "arraytexture"); int colours = GL20.glGetUniformLocation(pID, "colours"); int shadow = GL20.glGetUniformLocation(pID, "shadowMap"); int normals = GL20.glGetUniformLocation(pID, "arraytexturedata"); GL20.glUniform1i(atlas, 0); GL20.glUniform1i(colours, 1); GL20.glUniform1i(normals, 2); GL20.glUniform1i(shadow, 3); GL30.glBindVertexArray(vaoID); GL20.glEnableVertexAttribArray(0); GL20.glEnableVertexAttribArray(1); GL20.glEnableVertexAttribArray(2); GL20.glEnableVertexAttribArray(3); GL20.glBindAttribLocation(pID, 0, "in_Position"); GL20.glBindAttribLocation(pID, 1, "in_TextureCoord"); GL20.glBindAttribLocation(pID, 2, "in_TexIndex"); GL20.glBindAttribLocation(pID, 3, "in_Normal"); getContext().setMatrices(pID, matrix); GL20.glUniform1i(GL20.glGetUniformLocation(pID, "hidden"), hidden); textureAtlas.bind(GL13.GL_TEXTURE0); getColourTexture().bind(GL13.GL_TEXTURE1); normalAtlas.bind(GL13.GL_TEXTURE2); getContext().bindShadowData(GL13.GL_TEXTURE3); getContext().bindLights(pID, GL13.GL_TEXTURE4); Util.setRenderStyle(pID, style); GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, vertexList.size()); getContext().unbindLights(); getContext().unbindShadowData(); textureAtlas.unbind(); // HGMainThread.shadowMap.unbind(); getColourTexture().unbind(); // System.out.println(getClass().getName()+" : "+vertexList.size()+" rendered"); GL20.glDisableVertexAttribArray(0); GL20.glDisableVertexAttribArray(1); GL20.glDisableVertexAttribArray(2); GL20.glDisableVertexAttribArray(3); GL30.glBindVertexArray(0); GL20.glUseProgram(0); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL30.glBindVertexArray(0); }
From source file:com.opengrave.og.base.RenderableParticles.java
License:Open Source License
@Override public void render(Matrix4f matrix, RenderStyle style) { dealWithChange();/* ww w .j av a 2 s . c om*/ if (matList == null || !matList.valid()) { return; } GL30.glBindVertexArray(idVao); int pID = Resources.loadShader("particle.vs", "particle.fs").getProgram(); GL20.glUseProgram(pID); GL20.glEnableVertexAttribArray(0); GL20.glEnableVertexAttribArray(1); GL20.glEnableVertexAttribArray(2); GL20.glBindAttribLocation(pID, 0, "in_Position"); GL20.glBindAttribLocation(pID, 1, "in_Colour"); GL20.glBindAttribLocation(pID, 2, "in_Scale"); Util.checkErr(); int texture = GL20.glGetUniformLocation(pID, "tex"); GL20.glUniform1i(texture, 0); int wSS = GL20.glGetUniformLocation(pID, "windowSizeScale"); GL20.glUniform1f(wSS, getContext().width / 1024f); getContext().setMatrices(pID, matrix); if (matList != null && matList.valid()) { matList.bind(pID, GL13.GL_TEXTURE0); } GL11.glEnable(GL20.GL_POINT_SPRITE); GL11.glEnable(GL20.GL_VERTEX_PROGRAM_POINT_SIZE); GL11.glDepthMask(false); GL11.glDrawArrays(GL11.GL_POINTS, 0, size); GL11.glDepthMask(true); GL11.glDisable(GL20.GL_POINT_SPRITE); GL11.glDisable(GL20.GL_VERTEX_PROGRAM_POINT_SIZE); if (matList != null && matList.valid()) { matList.unbind(); } Util.checkErr(); GL20.glDisableVertexAttribArray(0); GL20.glDisableVertexAttribArray(1); GL20.glDisableVertexAttribArray(2); Util.checkErr(); GL20.glUseProgram(0); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL30.glBindVertexArray(0); Util.checkErr(); }
From source file:com.opengrave.og.base.RenderablePoints.java
License:Open Source License
@Override public void render(Matrix4f matrix, RenderStyle style) { Util.checkErr();//from www. ja v a2 s . co m dealWithChange(); if (!visible) { return; } if (vertCount == 0) { return; } Util.checkErr(); GL11.glDisable(GL11.GL_DEPTH_TEST); Util.checkErr(); GL11.glPointSize(3f); Util.checkErr(); int pID = Resources.loadShader("particle.vs", "particle.fs").getProgram(); Util.checkErr(); GL20.glUseProgram(pID); Util.checkErr(); if (pID == 0) { return; } Util.checkErr(); GL30.glBindVertexArray(vaoID); Util.checkErr(); GL20.glEnableVertexAttribArray(0); GL20.glEnableVertexAttribArray(1); GL20.glEnableVertexAttribArray(2); Util.checkErr(); int wSS = GL20.glGetUniformLocation(pID, "windowSizeScale"); GL20.glUniform1f(wSS, MainThread.lastW / 1024f); getContext().setMatrices(pID, matrix); Util.checkErr(); if (tex != null) { tex.bind(GL13.GL_TEXTURE0); } GL11.glEnable(GL20.GL_POINT_SPRITE); GL11.glEnable(GL20.GL_VERTEX_PROGRAM_POINT_SIZE); GL11.glDrawArrays(GL11.GL_POINTS, 0, vertCount); GL11.glDisable(GL20.GL_POINT_SPRITE); GL11.glDisable(GL20.GL_VERTEX_PROGRAM_POINT_SIZE); if (tex != null) { tex.unbind(); } Util.checkErr(); GL20.glDisableVertexAttribArray(0); GL20.glDisableVertexAttribArray(1); GL20.glDisableVertexAttribArray(2); Util.checkErr(); GL30.glBindVertexArray(0); GL20.glUseProgram(0); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL30.glBindVertexArray(0); Util.checkErr(); GL11.glEnable(GL11.GL_DEPTH_TEST); }
From source file:com.opengrave.og.engine.RenderView.java
License:Open Source License
public void bindLights(int pID, int texture) { GL20.glUseProgram(pID);/* w ww .ja v a 2 s. c o m*/ int lights = MainThread.config.getInteger("lightCount", 16); int showShadows = GL20.glGetUniformLocation(pID, "showShadows"); GL20.glUniform1i(showShadows, hasshadows ? 1 : 0); Util.checkErr(); if (cam instanceof FlyByCamera) { int eyepos = GL20.glGetUniformLocation(pID, "eyepos"); Util.checkErr(); Location camL = ((FlyByCamera) cam).getCameraLocation(); Util.checkErr(); GL20.glUniform3f(eyepos, camL.getFullXAsFloat(), camL.getFullYAsFloat(), camL.getZ()); Util.checkErr(); } if (hasshadows) { int lightDir = GL20.glGetUniformLocation(pID, "sunDir"); Vector3f dir = sceneNode.getSkyLight().getDirection().normalise(null); GL20.glUniform3f(lightDir, dir.x, dir.y, dir.z); int sunStr = GL20.glGetUniformLocation(pID, "sunStr"); GL20.glUniform1f(sunStr, sceneNode.getSkyLight().getIntensity()); } if (!shadows) { return; } int lightCount = GL20.glGetUniformLocation(pID, "lightCount"); GL20.glUniform1i(lightCount, lights); if (lights < 4) { lights = 4; } for (int i = 0; i < lights; i++) { ShadowCube ls; if (i >= lightShadows.size()) { ls = new ShadowCube(MainThread.config.getInteger("shadowSize", 1024)); lightShadows.add(ls); } ls = lightShadows.get(i); if (ls == null) { continue; } PointLightNode light = ls.getLight(); if (light == null) { continue; } int cube = GL20.glGetUniformLocation(pID, "cube" + i); int lightcolour = GL20.glGetUniformLocation(pID, "lights[" + i + "].colour"); int lightposition = GL20.glGetUniformLocation(pID, "lights[" + i + "].position"); int lightpower = GL20.glGetUniformLocation(pID, "lights[" + i + "].power"); Vector3f loc = light.getPosition().toVector3(); if (cam != null) { // loc = light.getPosition().minus(cam.getLocation()); // loc = cam.minus(light.getPosition()); } Util.checkErr(); // Only upload a shadow texture location if we're having shadows for // the light. Basic has lights but no shadows if (i < showShadows) { GL20.glUniform1i(cube, texture + i - GL13.GL_TEXTURE0); ls.getFramebuffer().bindDepthTexture(texture + i); } Util.checkErr(); GL20.glUniform4f(lightcolour, light.getColour().x, light.getColour().y, light.getColour().z, light.getColour().w); Util.checkErr(); GL20.glUniform4f(lightposition, loc.x, loc.y, loc.z, 1f); Util.checkErr(); GL20.glUniform1f(lightpower, light.getPower()); Util.checkErr(); Util.checkErr(); } }
From source file:com.opengrave.og.light.Depth2DFramebuffer.java
License:Open Source License
@Override public void bindDraw() { Util.checkErr();/* w w w.j a v a2 s . com*/ for (int i = GL13.GL_TEXTURE0; i < GL13.GL_TEXTURE31; i++) { GL13.glActiveTexture(i); GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); GL11.glBindTexture(GL30.GL_TEXTURE_2D_ARRAY, 0); GL11.glBindTexture(GL13.GL_TEXTURE_CUBE_MAP, 0); } Util.checkErr(); GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, framebuffer); Util.checkErr(); GL11.glDisable(GL11.GL_BLEND); Util.checkErr(); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glDepthFunc(GL11.GL_LESS); GL11.glDepthMask(true); Util.checkErr(); GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); Util.checkErr(); GL11.glViewport(0, 0, framebufferSize, framebufferSize); }
From source file:com.opengrave.og.light.Depth2DFramebuffer.java
License:Open Source License
public void dumpTestingImage() { // TESTING// ww w. j a v a2 s .c o m GL11.glDisable(GL11.GL_DEPTH_TEST); int pID = Resources.loadShader("test.vs", "test.fs").getProgram(); GL20.glUseProgram(pID); int shadow = GL20.glGetUniformLocation(pID, "shadowMap"); GL20.glUniform1i(shadow, 0); GL30.glBindVertexArray(vao_ID); GL20.glEnableVertexAttribArray(0); GL20.glEnableVertexAttribArray(1); shadowMap.bind(GL13.GL_TEXTURE0); GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, count * 3); shadowMap.unbind(); GL20.glDisableVertexAttribArray(0); GL20.glDisableVertexAttribArray(1); GL20.glUseProgram(0); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL30.glBindVertexArray(0); GL11.glEnable(GL11.GL_DEPTH_TEST); // END TESTING }
From source file:com.opengrave.og.resources.TextureDead.java
License:Open Source License
public static TextureDead create(String location) { InputStream in = null;//from ww w . j a v a 2s. c o m File f = new File(Resources.cache, location); try { in = new FileInputStream(f.getAbsolutePath()); } catch (FileNotFoundException e1) { System.out.println("Cannot open file " + f.getAbsolutePath()); return null; } PNGDecoder decoder; TextureDead textureObject = new TextureDead(); int texture = -1; try { decoder = new PNGDecoder(in); textureObject.width = decoder.getWidth(); textureObject.height = decoder.getHeight(); System.out.println("Width : " + decoder.getWidth() + " Height : " + decoder.getHeight()); ByteBuffer buf = ByteBuffer.allocateDirect(4 * decoder.getWidth() * decoder.getHeight()); decoder.decode(buf, decoder.getWidth() * 4, Format.RGBA); buf.flip(); texture = GL11.glGenTextures(); textureObject.id = texture; GL13.glActiveTexture(GL13.GL_TEXTURE0); GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_REPEAT); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_REPEAT); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR); GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA, decoder.getWidth(), decoder.getHeight(), 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, buf); // GL30.glGenerateMipmap(GL11.GL_TEXTURE_2D); } catch (IOException e) { new DebugExceptionHandler(e, location); } finally { try { if (in != null) { in.close(); } } catch (IOException e) { } } return textureObject; }
From source file:com.redthirddivision.quad.rendering.materials.Texture.java
License:Apache License
public void bind(int samplerSlot) { try {// w w w . j a va2 s. c o m assert (samplerSlot >= 0 && samplerSlot <= 31); GL13.glActiveTexture(GL13.GL_TEXTURE0 + samplerSlot); GL11.glBindTexture(GL11.GL_TEXTURE_2D, manager.getID()); } catch (Exception e) { System.err.println("Could not bind texture: " + file); System.exit(1); } }
From source file:com.redthirddivision.quad.rendering.renderers.EntityRenderer.java
License:Apache License
protected void prepare(Model model) { GL30.glBindVertexArray(model.getVaoID()); GL20.glEnableVertexAttribArray(0);//from w w w.ja v a 2 s . c om GL20.glEnableVertexAttribArray(1); GL20.glEnableVertexAttribArray(2); Material material = model.getMaterial(); shader.loadNumRows(material.getNumRows()); if (material.hasTransparency()) Util.disableCulling(); shader.loadFakeLighting(material.isUseingFakeLighting()); shader.loadShine(material.getShineDamper(), material.getReflectivity()); GL13.glActiveTexture(GL13.GL_TEXTURE0); GL11.glBindTexture(GL11.GL_TEXTURE_2D, model.getMaterial().getTextureID()); }
From source file:com.redthirddivision.quad.rendering.renderers.GuiRenderer.java
License:Apache License
@Override public void render(ArrayList<GuiTexture> elements) { shader.start();/*from ww w. jav a2s .c o m*/ GL30.glBindVertexArray(quad.getVaoID()); GL20.glEnableVertexAttribArray(0); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glDisable(GL11.GL_DEPTH_TEST); for (GuiTexture gui : elements) { GL13.glActiveTexture(GL13.GL_TEXTURE0); GL11.glBindTexture(GL11.GL_TEXTURE_2D, gui.getTexture()); Matrix4f matrix = MathHelper.createTransformationMatrix(gui.getPosition(), gui.getScale(), new Vector2f(0, 0)); shader.loadTransformation(matrix); GL11.glDrawArrays(GL11.GL_TRIANGLE_STRIP, 0, quad.getVertexCount()); } GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_DEPTH_TEST); GL20.glDisableVertexAttribArray(0); GL30.glBindVertexArray(0); shader.stop(); }