Пример #1
0
        public CxBillboard CreateVertices(bool randomize = true)
        {
            if (_items==null || !_items.Any())
                return this;

            var billboardVertices = new CxBillboardVertex[_items.Count];
            var i = 0;
            var random = new Random();
            foreach (var t in _items)
                createOne(
                    ref i,
                    billboardVertices,
                    t.Item1 + World.TranslationVector,
                    t.Item2,
                    randomize ? 0.0001f + (float) random.NextDouble() : 0.5f);
            _items = null;

            _vertexBuffer = Buffer.Vertex.New(Effect.GraphicsDevice, billboardVertices);
            _vertexInputLayout = VertexInputLayout.FromBuffer(0, _vertexBuffer);

            return this;
        }
Пример #2
0
 private void createOne(
     ref int i,
     CxBillboardVertex[] bv,
     Vector3 p,
     Vector3 n,
     float rnd)
 {
     bv[i++] = new CxBillboardVertex(p, Vector3.Normalize(n), rnd);
 }