Javaゲーム作成総合スレat GAMEDEV
Javaゲーム作成総合スレ - 暇つぶし2ch617:名前は開発中のものです。
10/03/22 19:56:42 a35EGBlP
2DPCゲームも盛んだった約10年以上前のintelのチップセット統合グラフィックコントローラには
主にゲーム中などの高負荷描画時に意図的にフレームスキップする機能が組み込まれていたけど
見て分るレベルじゃなくてほとんど気にならなかった思い出があるよ

618:名前は開発中のものです。
10/03/22 22:54:58 lWMLrUhP
i810ってハードで勝手にフレームスキップするのか?

619:名前は開発中のものです。
10/03/27 11:17:41 CAF7oz9b
ゲーム用のactiveXインストールさせておいてアンインストールの時に消さないのはクソゲー

620:名前は開発中のものです。
10/03/27 13:42:08 tZ9gJAWE
>>619
スレ間違えてるぞ

621:名前は開発中のものです。
10/03/27 22:43:26 AvjpVtCq
>>615
ふ~ん。よく知ってるね。ネット(笑)で調べたんだ?

622:名前は開発中のものです。
10/03/28 02:01:26 vG829dZf
アプレットの2Dの戦術シミュレーションゲームをAWTで書いてて
加算合成とかやりたい程度なんですが、
JOGLとかライブラリ使ったら結構早くなるものなんでしょうか?
標準APIしか使ったことないんですが、使うとしたらJOGL一択?

623:名前は開発中のものです。
10/03/28 16:23:12 dUxWoyHG
加算合成ならBufferStorategyとJava2Dのシステムプロパティー有効にすれば標準ライブラリでいける

624:名前は開発中のものです。
10/03/28 17:33:06 vG829dZf
ありがとうございます
すいません、調べてみたら、BufferStrategyってアプレットから使えなくないですか・・・?

テクスチャで2Dの描画だけできれば十分なんですが、
drawImageのような処理はどう実装するのが普通なのでしょうか?

とりあえずJOGLについて調べてみたのですが、
特定の画像を読み込んだテクスチャごとに、予め指定した各々のz座標にまとめて描画
という風なものしか思いつきません・・・

625:622
10/03/29 01:33:25 SqZ8R8TT
OpenGLを理解するところから始めようと思います
失礼しました

626:名前は開発中のものです。
10/03/29 17:04:23 YLmAQvrk
>>623
詳細希望
どうやるの?

627:名前は開発中のものです。
10/03/29 17:07:28 tAa/9ZD/
>>624
素のAppletを使う必要性が現時点で無いわけだから、
JAppletを使うわけにはいかんの?

とはいってもかなり作法が違うから、今から変更できないってのなら
わからんでもないが。

628:名前は開発中のものです。
10/03/30 16:45:14 ANScytkg
>>627
JAppletでCanvasを描画するって方法があったんですね!
アプレットでBufferStrategy使えました。ありがとうございます
BufferStrategyが4,5回の起動につき1回程度、酷く処理落ちするので
自前のダブルバッファリングと切り替えるようにしたのですが、
スマートな方法はありませんか?

システムプロパティの方は、
Appletから設定出来るのかどうか分かりませんでした

629:名前は開発中のものです。
10/03/30 17:22:35 5VmsakM5
>>623
半透明合成はAlphaCompositeでアクセラレーション効かせれるけど、
加算合成はどうすれば標準ライブラリで速度出せるの?

630:名前は開発中のものです。
10/03/31 13:50:19 ynx77+er
>>628
BufferStrategyのせいで処理落ちしてるとは思えない。
たぶん、GCのせいだよ。
結構でかいメモリを使い捨てにしてるんじゃないかな。
で、GCのタイミングを制御してないと。

まぁ、ゲームとかサーバサイドじゃないとGCが気になること無いんだけどね。
GCの情報をログに吐かせてチェックしたら良いよ。

631:名前は開発中のものです。
10/03/31 14:16:29 e2SekH7a
>>630
たまに描画アクセラレーションが効いてない状態になるのとGCは関係ないと思うぞ

632:名前は開発中のものです。
10/03/31 14:31:05 ynx77+er
>>631
描画アクセラレーションが効いてないって話はどこから?

633:名前は開発中のものです。
10/03/31 14:34:10 e2SekH7a
>>632
> 4,5回の起動につき1回程度、酷く処理落ちするので
原因はわからんけど同じようなことが起こった事あるから

634:名前は開発中のものです。
10/03/31 17:20:45 ynx77+er
俺はそういうことは無いなぁ。

しかし、俺が読み間違えてた部分があるな。
>BufferStrategyが4,5回の起動につき1回程度、酷く処理落ちするので
は、4,5フレームごとに処理落ちすると言うことかと思ってた。



635:名前は開発中のものです。
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でレンダリングして一定以上の輝度の部分を抜き出して
ぼかしたあとに加算合成するとかそういうの。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch