通过渲染三角形绘制Win2D - 性能问题

时间:2017-08-22 09:56:20

标签: c# performance drawing polygon win2d

我想用Win2D库创建绘图。我已经完成了它,但是当我想重新绘制更大的绘图时,我遇到了一些性能问题。 这是我用来显示绘图的解决方案:

private Microsoft.Graphics.Canvas.Numerics.Vector2[] trianglePoints = new Microsoft.Graphics.Canvas.Numerics.Vector2[3];

private void RenderTriangle(List<Triangle> TriangleList)
{
            using (var drawSession = renderTarget.CreateDrawingSession())
            {
                CanvasPathBuilder pathBuilder = new CanvasPathBuilder(Win2DCanvas);

                foreach (Triangle triangle in TriangleList)
                {
                    trianglePoints[0] = triangle.vertexA;
                    trianglePoints[1] = triangle.vertexB;
                    trianglePoints[2] = triangle.vertexC;

                    triangleGeometry = CanvasGeometry.CreatePolygon(Win2DCanvas, trianglePoints);

                    pathBuilder.AddGeometry(triangleGeometry);

                }
                drawSession.FillGeometry(CanvasGeometry.CreatePath(pathBuilder), color)
        }
}

主要问题在于这一行:

triangleGeometry = CanvasGeometry.CreatePolygon(Win2DCanvas, trianglePoints);

创建大约10万个多边形需要大约6000毫秒,这是不可思议的长时间。

你知道在Win2D中渲染大量三角形的更快方法吗?

我应该用C ++创建多边形并将它们包装到C#或其他东西吗?

感谢您的重播。

0 个答案:

没有答案