//! Draws all non-hardcoded objects in world - including avatars - into the 3D world of OpenGL void DrawEntities() { //Test.Debug("drawobjects"); Gl.glMaterialfv(Gl.GL_FRONT, Gl.GL_AMBIENT_AND_DIFFUSE, new float[] { 1.0f, 0.0f, 0.5f, 1.0f }); Gl.glEnable(Gl.GL_TEXTURE_2D); Avatar myavatar = MetaverseClient.GetInstance().myavatar; Picker3dController picker3dcontroller = Picker3dController.GetInstance(); for (int i = 0; i < worldmodel.entities.Count; i++) { if (worldmodel.entities[i].iParentReference == 0) { // dont draw own avatar in mouselook mode if (worldmodel.entities[i] != myavatar) { //LogFile.WriteLine("render entity " + i); Gl.glRasterPos3f((float)worldmodel.entities[i].pos.x, (float)worldmodel.entities[i].pos.y, (float)worldmodel.entities[i].pos.z); picker3dcontroller.AddHitTarget(worldmodel.entities[i]); worldmodel.entities[i].Draw(); picker3dcontroller.EndHitTarget(); graphics.Bind2DTexture(0); } else { Gl.glRasterPos3f((float)worldmodel.entities[i].pos.x, (float)worldmodel.entities[i].pos.y, (float)worldmodel.entities[i].pos.z); picker3dcontroller.AddHitTarget(worldmodel.entities[i]); worldmodel.entities[i].Draw(); picker3dcontroller.EndHitTarget(); graphics.Bind2DTexture(0); } } } }
//sends instructions to opengl to use this texture public void Apply() { g.Bind2DTexture(GlReference); }