Exemplo n.º 1
0
        public static void BillboardBegin(Texture tex, float x, float y, float z, float size)
        {
            GL.PushAttrib(AttribMask.ColorBufferBit | AttribMask.EnableBit | AttribMask.PolygonBit);

            int i, j;
            size *= 0.01f;

            GL.Enable(EnableCap.Texture2D);
            tex.Bind();

            GL.Disable(EnableCap.CullFace);
            GL.Disable(EnableCap.Lighting);

            GL.PushMatrix();
            GL.Translate(x, y, z);

            GL.GetFloat(GetPName.ModelviewMatrix, Util.ModelMatrix);

            for (i = 0; i < 3; i++)
            {
                for (j = 0; j < 3; j++)
                {
                    if (i == j) Util.ModelMatrix[i * 4 + j] = 1;
                    else Util.ModelMatrix[i * 4 + j] = 0;
                }
            }
            GL.LoadMatrix(Util.ModelMatrix);
            GL.Scale(size, size, size);
        }
        /// <summary>
        /// aseta materiaali ellei jo käytössä
        /// </summary>
        public void SetMaterial()
        {
            if (curMaterial == name)
            {
                return;
            }
            curMaterial = name;

            if (DiffuseTex != null)
            {
                DiffuseTex.Bind();
            }

            GL.Material(MaterialFace.Front, MaterialParameter.Ambient, AmbientColor);
            GL.Material(MaterialFace.Front, MaterialParameter.Diffuse, DiffuseColor);
            GL.Material(MaterialFace.Front, MaterialParameter.Specular, SpecularColor);
            GL.Material(MaterialFace.Front, MaterialParameter.Emission, EmissionColor);
            GL.Material(MaterialFace.Front, MaterialParameter.Shininess, PhongSpec);
        }
Exemplo n.º 3
0
        public static void BillboardBegin(Texture tex, float x, float y, float z, float size)
        {
            GL.PushAttrib(AttribMask.ColorBufferBit | AttribMask.EnableBit | AttribMask.PolygonBit);

            int i, j;

            size *= 0.01f;

            GL.Enable(EnableCap.Texture2D);
            tex.Bind();

            GL.Disable(EnableCap.CullFace);
            GL.Disable(EnableCap.Lighting);

            GL.PushMatrix();
            GL.Translate(x, y, z);

            GL.GetFloat(GetPName.ModelviewMatrix, Util.ModelMatrix);

            for (i = 0; i < 3; i++)
            {
                for (j = 0; j < 3; j++)
                {
                    if (i == j)
                    {
                        Util.ModelMatrix[i * 4 + j] = 1;
                    }
                    else
                    {
                        Util.ModelMatrix[i * 4 + j] = 0;
                    }
                }
            }
            GL.LoadMatrix(Util.ModelMatrix);
            GL.Scale(size, size, size);
        }
 void Bind()
 {
     texture.Bind();
 }