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); } }
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; } } }