public void render(Transform transform) // Main Thread
	{
		Spritesheet.bind();
		GL11.glDisable(GL11.GL_BLEND);
		for(int i = chunks.size() - 1; i > 0; i--)
		{				
			if(!chunks.get(i).isCreated()) // Need to create in GL thread because we're uploading mesh data
				chunks.get(i).create();
			
			chunks.get(i).render();
			
			if(!withinRange(playerPos.x, playerPos.z, chunks.get(i).getX(), chunks.get(i).getZ()))
				unloadChunk(chunks.get(i)); // Similarly, we have to unload chunks in the GL thread
		}
		
		skyboxShader.bind();
		skyboxShader.setUniform("projectedTransform", transform.getProjectedTransformation());
		Skybox.instance.setCenter(playerPos);
		Skybox.instance.render();
		
		Spritesheet.bind();
		
		GL11.glEnable(GL11.GL_BLEND);
		GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
		GL11.glDisable(GL11.GL_CULL_FACE);
		
		for(int i = chunks.size() - 1; i > 0; i--)
			chunks.get(i).renderTransparency();
		
		GL11.glEnable(GL11.GL_CULL_FACE);
	}