[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:01160] Re: テクスチャーの張り替え時に関する問題



■□■―アイドルのかわいい顔を見ながらチャットができる!!―――□■□
=============================>ネットサーフィンやメールはもう飽きた?
===================>チャットはした事ないけどなんだか難しそう・・・?
これが真のインターネット!!最高の遊び場へご案内!!☆プレゼント実施中☆
■□■―Party*Party――― 今すぐ http://party.a123.co.jp/ ――□■□

えんどうです。2日ほど熱出して死んでました。

> > > ライブになっている Sphere のテクスチャーを張り替えると,張り替えるたびに
> > > メモリーの消費量が増加します.最終的には OutOfMemoryError が出て,テクス
> > > チャーの張り替えが行えなくなります.

追試してませんが、

TextureLoader を生成するたびに BufferedImage その他が生成され、
使われなくなった分のメモリーが開放されていないような気がします。

(1)最終的に必要なテクスチャー数の見積り
(2)最終的に必要なメモリー量の見積り

上記をやった上で、

(a)初期化の際に必要なすべてのテクスチャーを生成する
(b)TextureLoader をその都度生成せずに、
    単一の BufferedImage その他を使用する

なんてことをやってみるとどうなりますでしょうか。

特に(b)の結果を報告していただけると幸いです。
(b)の場合、TextureLoader を使わずに
Image -> BufferedImage -> Imagecomponent2D という
順番に変換することになると思います。

TextureLoader を使わずに
ファイルからテクスチャー画像を読み込むサンプルは
いちおう下記にあります。(そのまま使えないと思いますが)

http://www.javaopen.org/j3dbook/examples/TextureApplet1/TextureApplet.java

蛇足ですが Java 3D 1.2 ではいちおうテクスチャーアニメーションが
できるようになるかも知れません。

---
ENDO Yasuyuki <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/index.html (Japanese Only)