Beispiel #1
0
        //! 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);
                    }
                }
            }
        }
Beispiel #2
0
 //sends instructions to opengl to use this texture
 public void Apply()
 {
     g.Bind2DTexture(GlReference);
 }