Пример #1
0
        private static void AddPoints(Group g, Vector3[] pointCenters, Texture texture, float size)
        {
            BufferedIndexedPrimitives <VertexFakePointSprite> indexedPrimitives = new BufferedIndexedPrimitives <VertexFakePointSprite>(PrimitiveType.TriangleList);

            g.Geometry = (IIndexedPrimitiveCollection)indexedPrimitives;
            indexedPrimitives.Vertices = new VertexFakePointSprite[pointCenters.Length * 4];
            indexedPrimitives.Indices  = new int[pointCenters.Length * 6];
            Random random = RandomHelper.Random;
            int    length = StarField.Colors.Length;

            VertexFakePointSprite[] vertices = indexedPrimitives.Vertices;
            int[] indices = indexedPrimitives.Indices;
            for (int index1 = 0; index1 < pointCenters.Length; ++index1)
            {
                Color color  = StarField.Colors[random.Next(0, length)];
                int   index2 = index1 * 4;
                vertices[index2]     = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(0.0f, 0.0f), new Vector2(-size, -size));
                vertices[index2 + 1] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(1f, 0.0f), new Vector2(size, -size));
                vertices[index2 + 2] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(1f, 1f), new Vector2(size, size));
                vertices[index2 + 3] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(0.0f, 1f), new Vector2(-size, size));
                int index3 = index1 * 6;
                indices[index3]     = index2;
                indices[index3 + 1] = index2 + 1;
                indices[index3 + 2] = index2 + 2;
                indices[index3 + 3] = index2;
                indices[index3 + 4] = index2 + 2;
                indices[index3 + 5] = index2 + 3;
            }
            indexedPrimitives.UpdateBuffers();
            indexedPrimitives.CleanUp();
            g.Texture = texture;
        }
Пример #2
0
 private static void AddPoints(Group g, Vector3[] pointCenters, Texture texture, float size)
 {
   BufferedIndexedPrimitives<VertexFakePointSprite> indexedPrimitives = new BufferedIndexedPrimitives<VertexFakePointSprite>(PrimitiveType.TriangleList);
   g.Geometry = (IIndexedPrimitiveCollection) indexedPrimitives;
   indexedPrimitives.Vertices = new VertexFakePointSprite[pointCenters.Length * 4];
   indexedPrimitives.Indices = new int[pointCenters.Length * 6];
   Random random = RandomHelper.Random;
   int length = StarField.Colors.Length;
   VertexFakePointSprite[] vertices = indexedPrimitives.Vertices;
   int[] indices = indexedPrimitives.Indices;
   for (int index1 = 0; index1 < pointCenters.Length; ++index1)
   {
     Color color = StarField.Colors[random.Next(0, length)];
     int index2 = index1 * 4;
     vertices[index2] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(0.0f, 0.0f), new Vector2(-size, -size));
     vertices[index2 + 1] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(1f, 0.0f), new Vector2(size, -size));
     vertices[index2 + 2] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(1f, 1f), new Vector2(size, size));
     vertices[index2 + 3] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(0.0f, 1f), new Vector2(-size, size));
     int index3 = index1 * 6;
     indices[index3] = index2;
     indices[index3 + 1] = index2 + 1;
     indices[index3 + 2] = index2 + 2;
     indices[index3 + 3] = index2;
     indices[index3 + 4] = index2 + 2;
     indices[index3 + 5] = index2 + 3;
   }
   indexedPrimitives.UpdateBuffers();
   indexedPrimitives.CleanUp();
   g.Texture = texture;
 }