0

レンダリングに Core Graphics を使用して、Mac 上の Objective-C でパーティクル シミュレータを作成しようとしています。Core Graphics は、CGContextFillRect を使用してビューに毎秒約 1.8*10^6 1x1 カラー ピクセルをレンダリングできると計算しました。これは、FPS が60。

250,000 個のパーティクルの制限はそれほど大きくありません。この数をもっと増やしてほしいです。この多くの 1x1 のカラー ピクセルをビューにレンダリングする最も効率的な方法は何ですか? GPU をより有効に活用する方法はありますか?

これは私が使用しているコードです:

- (void)drawRect:(NSRect)dirtyRect {
    [super drawRect:dirtyRect];

    CGContextRef ctx = [[NSGraphicsContext currentContext] graphicsPort];
    CGContextSetRGBFillColor (ctx, 1, 0, 0, 1);
    CFTimeInterval t1 = CFAbsoluteTimeGetCurrent();
    CGRect point = CGRectMake(10.0f, 10.0f, 1.0f, 1.0f);

    for (int i = 0; i < 20000000; i++) {
        CGContextFillRect (ctx, point);
    }

    NSLog(@"%.10f", CFAbsoluteTimeGetCurrent() - t1);
}
4

0 に答える 0