1

JAI ライブラリを使用して、それぞれのサイズが約 1300x1000 の一連の画像を調整しています。「Rescale」でピクセル強度を調整し、TiledImage.createGraphics() メソッドの Graphics2D オブジェクトでテキストと線を追加します。次に、「subsampleaverage」で画面に合わせて画像のサイズを変更し、Graphics2D.drawRenderedImage() で画面にレンダリングします。この時点までは、レンダリングに約 40 ~ 60 ミリ秒かかるため、減速はほとんどありません。

ただし、テキストと線のみを追加すると、表示が 100 ~ 200 ミリ秒まで遅くなります。ピクセル強度の調整後または前にテキストを追加しても問題ないため、これがなぜなのかわかりません。

サイトを調べてみましたが、具体的な答えが見つからないようです。多くの提案は BufferedImages を使用することでしたが、PlanarImages から BufferedImages への変換にも速度低下の問題があるようです。

4

1 に答える 1

1

Java では、テキストのレンダリングが依然として非常に遅いようです。各Fontオブジェクトのグリフは、オブジェクト上でレンダリングおよびペイントする必要がありGraphicsます。オブジェクトに大量のテキストがあると、Fontオブジェクトと使用されているすべてのテキストGlyphsが再作成され、大幅な速度低下が発生します。

JOGL を使用しても、大幅な速度低下があります。しかし、同じTextRendererオブジェクトを使用すると、単一のオブジェクトを作成し、が生きているFont限り再利用することで、これが軽減されます。TextRendererもちろん、JOGL はまだ関数を実装しておらず、新しいフォント、フォント スタイル、フォントの太さごとsetFontに新しいオブジェクトを作成する必要があるため、複数の Font オブジェクトを使用することはできません。TextRenderer

これが同様の問題を抱えている人に役立つことを願っています。

于 2011-08-23T15:44:22.747 に答える