示例#1
0
        private void InitBillboard()
        {
            fBillboardChanged = false;
            if (fBillboard == null)
            {
                fBillboard = new Billboard(GraphicsDevice);
            }
            else
            {
                fBillboard.Clear();
            }
            fBillboard.UseVertexBuffer = fUseVertexBuffer;

            foreach (MyPoint point in fPoints)
            {
                Color   color     = Color.White;
                Vector3 direction = point.Direction;
                int     r         = (byte)(128 + 127 * direction.X);
                int     g         = (byte)(128 + 127 * direction.Y);
                int     b         = (byte)(128 + 127 * direction.Z);
                color = new Color(r, g, b, 255);

                fBillboard.AddObject(point.Position, color, point.Size);
            }
        }
示例#2
0
        private void InitBillboard()
        {
            if (fBillboard1 == null)
            {
                fBillboard1 = new Billboard(GraphicsDevice);
                fBillboard2 = new Billboard(GraphicsDevice);
                fBillboard3 = new Billboard(GraphicsDevice);
            }
            else
            {
                fBillboard1.Clear();
                fBillboard2.Clear();
                fBillboard3.Clear();
            }
            fBillboard1.Mode = fBillboard2.Mode = fBillboard3.Mode = fDrawMode;

            foreach (MyPoint point in fPoints)
            {
                Color color = Color.White;
                switch (point.TextureIndex)
                {
                case 0:
                    fBillboard1.AddObject(point.Position, color, point.Size);
                    break;

                case 1:
                    fBillboard2.AddObject(point.Position, color, point.Size);
                    break;

                case 2:
                    fBillboard3.AddObject(point.Position, color, point.Size);
                    break;
                }
            }
        }