10/03/31 20:30:53 6whusFO/
問題に直面してる本人が原因をある程度特定しないことにはなんとも
新人の頃当たった上司は不具合の原因を完璧に特定して理詰めで説明
せんとソース触らせてくれなかったなぁ
636:名前は開発中のものです。
10/03/31 22:31:41 fTTvzrRQ
たぶん昔の俺と同じミスしてんじゃないかな。「ひどく処理落ちする」
ってのはどうやって計測してるの?Timerを使って計測する限り大抵の
環境で60fps以上のループを回せないので(Timerの分解能でググれ)、
17ms以下の時間を計測できないことになる。つまり処理の時間を計測
すると「0msと17msが交互に出てくる」という現象が起こる。この
17msを処理落ちと思ってしまっているのでは。
結構前に書いた気がするけど、どんなにVolatileImageで高速化したところで
その前処理である「drawImage()」がjavaでは(というか最近の言語では)
絶望的に重いので、よほど小さい画像か低いfpsじゃない限り
drawImage()で再描画回すのは無理だよ。画面全体の再描画は無理なので、
一部だけにしないと。
だから「複数の画像をテクスチャであらかじめ読み込んでおいて、それを
3D空間上で順番に表示する」ということになるのよ。
drawImage()はリアルタイムで使用してはいけない。
だから3Dデバイス無しで動きの多い2Dの描画は無理。java以外の2Dゲームも
最近はほとんどこの処理で描画している。
アプレットでjoglやjava3dやGTGEを使いたい場合は、「あらかじめモジュールを
プレイヤーに各個インストールしておいてもらう」か「java web startを使用
する」かの2択になる。私はアプレットに興味がないので
知りたければ自分で調べて…。
637:名前は開発中のものです。
10/03/31 23:01:06 e2SekH7a
drawImageが絶望的に重いってのが理解できないんだがどういうこと?
638:名前は開発中のものです。
10/03/31 23:51:25 T6Q4zys0
これやればアプレットから起動できる。
URLリンク(mailsrv.nara-edu.ac.jp)
639:名前は開発中のものです。
10/04/01 01:30:29 yUfE9csc
>>630
>>636
具体的に書かなくてすみませんでした
「ひどく処理落ちする」というのは、
普段1フレームの処理が10~40ms程度なのが、200~300くらいになります
createBufferStrategy、getBufferStrategyをやり直しても直らず、Appletを起動し直さないとダメでした
ハード依存のせいで不安定なのかな、などと勝手に思ってましたが、よく分かりません
とりあえずGCのログ調べてみます
ありがとうございました
640:名前は開発中のものです。
10/04/01 13:06:54 UAXZ1fUj
>>636
java6update10でもそうなる?
アクセラレーションの効き方がupdate10以降全然違うよ。
641:名前は開発中のものです。
10/04/19 16:58:19 DE/oWF3W
Javaで3dソフトレンダラー作ってるんだがテクスチャマッピングが糞重い。
テクスチャ無しの時と比べて3倍近く重くなる・・・
ピクセル単位でマテリアルの色とテクスチャの画像の色とを乗算してるんだが、
速くする方法はないだろうか・・・
642:名前は開発中のものです。
10/04/19 22:44:06 EBaRhPkl
ソフトだとそんなもん。srcとdestのバッファが2次キャッシュに収まっているうちは早いのでそれを意識するしかない。
符号なし精度やSIMD直接発行したくなるけど、せいぜいマルチスレッドしかないね。
643:名前は開発中のものです。
10/04/23 14:30:02 +jF/jVEW
VolatileImageと-Dsun.java2d.accthreshold=0組み合わせるとか
644:名前は開発中のものです。
10/04/23 17:11:32 qX+XOmtR
3Dで思ったんだけどブルームてどういうふうに実装するの?
高輝度部分と重なる物体の輪郭をぼかせばいいの?
CGで木漏れ日とか表現してる人はどうやってんだろう。
645:名前は開発中のものです。
10/04/24 16:15:02 wWfiheja
マルチスレッドで組んだことないけど、
レンダラーの場合はどのあたりをマルチスレッドにすべきだろう?
やっぱ座標変換より描画処理か?
646:645
10/04/24 16:17:32 wWfiheja
ごめ、、sage忘れた
647:名前は開発中のものです。
10/05/06 15:54:54 sWIFt/qs
>>644
それ用にテクスチャを作っとくことが多いんじゃ?
んで加算合成とか
専門じゃないからよく分からんが
648:名前は開発中のものです。
10/05/08 01:32:27 OfzVRu2e
ゴーストやレンズフレアならテクスチャ使うこともあるけど
ブルームだけならレンダリング後のイメージ処理じゃないかな。
HDRIでレンダリングして一定以上の輝度の部分を抜き出して
ぼかしたあとに加算合成するとかそういうの。