1

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

約 100 000 個のポリゴンを作成するには、約 6000 ミリ秒かかります。これは信じられないほど長い時間です。

Win2D で多数の三角形をより速くレンダリングする方法を知っていますか?

C++ でポリゴンを作成し、それらを C# などにラップする必要がありますか?

リプレイありがとうございます。

4

0 に答える 0