Optimize texture binding between GpuUploaders and shader Program.
Keep in the Renderer3d a reference to the active texture id (instead the Texture object).
Use TEXTURE0 for the map / TEXTURE1 for the envmap in GpuUploader (as in Program).
Use Mipmap for the min filter of all the textures.