/// VERTEX SETUP Vertexbuffer.Push(new Vector3(10.0f, 10.0f, 10.0f), out full); Vertexbuffer.Push(new Vector3(-10.0f, 10.0f, 10.0f), out full); Vertexbuffer.Push(new Vector3(10.0f, -10.0f, 10.0f), out full); Vertexbuffer.Push(new Vector3(-10.0f, -10.0f, 10.0f), out full); Vertexbuffer.Push(new Vector3(10.0f, -10.0f, 10.0f), out full); Vertexbuffer.Push(new Vector3(-10.0f, 10.0f, 10.0f), out full); Vertexbuffer.Push(new Vector3(10.0f, 10.0f, -10.0f), out full); Vertexbuffer.Push(new Vector3(-10.0f, 10.0f, -10.0f), out full); Vertexbuffer.Push(new Vector3(10.0f, -10.0f, -10.0f), out full); Vertexbuffer.Push(new Vector3(-10.0f, -10.0f, -10.0f), out full); Vertexbuffer.Push(new Vector3(10.0f, -10.0f, -10.0f), out full); Vertexbuffer.Push(new Vector3(-10.0f, 10.0f, -10.0f), out full); /// .... VERTEX TRANSFORMATION public Matrix m_Mat = Matrix.LookAtLH(new Vector3(100.0f, 100.0f, 100.0f), Vector3.Empty, new Vector3(0.0f, 1.0f, 0.0f)) * Matrix.PerspectiveFovLH((float)Math.PI / 4.0f, 800.0f / 600.0f, 1.0f, 1000.0f); Vector3 outvert = Vector3.TransformCoordinate(element, VertexUnit.m_WorldMat * VertexUnit.m_Mat); /// VERTEX RASTERIZATION ENTRANCE: InputType[] inputObj = new InputType[3]; int elementCount = 0; while (m_InputQueue.Pop(out inputObj[elementCount])) { elementCount++; elementCount = elementCount % 3; if (elementCount == 0) { m_Processor(inputObj); } }