- 1 名前:名前は開発中のものです。 [2008/10/28(火) 18:23:40 ID:2CMNNHdH]
- Javaでゲームを作ろうと思っている人、今作っている人等が情報交換するためのスレです。
2Dのスレはありましたが、総合スレがなかったので立てました。 2D,3DどっちでもOKで、グラフィックス、アルゴリズム、お勧めサイト等、内容も自由です。
- 604 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 13:14:15 ID:I816Pm6U]
- え、まともにnanoTime動くのSunだけじゃないの?Windows7とかだと動くの??
- 605 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 15:31:52 ID:+KPkzeB4]
- 10000くらいの要素があるとして、
Map(HashMap)で全要素にアクセスするのって十分に遅いと思う? List(ArraryList)と両方に要素を詰めておいて片方が苦手な面は スレッドでごまかしたほうがいいかな
- 606 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 19:26:06 ID:I816Pm6U]
- 十分に早いと思うんだがなぁ。
やってみた? 要素を取ってからの処理がが1ms掛かってりゃ、隠蔽できるレベルと思うんだが。
- 607 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 23:54:00 ID:zhaRJbEJ]
- 1万要素くらいならおれは速度よりメモリを気にする。
10万とかなら考えるが。
- 608 名前:名前は開発中のものです。 mailto:sage [2010/03/12(金) 01:20:42 ID:fx5pN5+0]
- >>604
まともってのがどの程度を意味するのか分からないけど、 XPでnanoTimeを実験したときは1ミリ秒くらいの精度は出たよ。
- 609 名前:JAVA初心者 mailto:sage [2010/03/12(金) 10:17:17 ID:6GJM5qHr]
- JOGLをインストールして実行したら
「jogl.jar で制限されているためアクセスできません」 って出た jogl-1.1.1a-windows-i586.zipの中のやつをコピーするだけではダメなのですか?
- 610 名前:名前は開発中のものです。 mailto:sage [2010/03/12(金) 22:17:40 ID:cuwPqo48]
- ム板の初心者スレに行け
- 611 名前:名前は開発中のものです。 mailto:sage [2010/03/13(土) 11:54:22 ID:ft4sD9tE]
- >>604
WindowsでもsunのVMなら currentTimeMillisも1msの精度でてる nanoTimeは高精度カウンタつかってるんでちゃんと1ms以下でてるっぽい そのかわり特定の時刻はわからないけど、ゲーム系なら問題は無いな Sleepとかタイマイベント系+nanotime使ったビジーループが最も高精度だけど、 そこまで必要な場合むしろ垂直同期をしたほうがいいと思うんだ
- 612 名前:名前は開発中のものです。 mailto:sage [2010/03/13(土) 15:41:37 ID:kP+vCyl1]
- そこまでする理由はなんだい?
格ゲーでも作るの?
- 613 名前:名前は開発中のものです。 mailto:sage [2010/03/14(日) 01:12:44 ID:/KubzB8G]
- >>612
16.66msのつもりが32msになっていた、なんて精度だとライトなアクションゲームどころか コマンド選択式RPGのエフェクトすらまともに表示できないと思う
- 614 名前:名前は開発中のものです。 mailto:sage [2010/03/22(月) 01:15:48 ID:a35EGBlP]
- でも市販されてるPCゲームの精度なんてそんなもんじゃん
猫ぐらい目が良くないと一般ユーザでは気付かんレベルじゃないかね
- 615 名前:名前は開発中のものです。 mailto:sage [2010/03/22(月) 11:37:48 ID:lWMLrUhP]
- 2Dゲーはほとんどの場合フレームスキップ起こさないから精度はいつだって気になるものさ
3Dのほうが精度はいらない ティアリングも2Dのほうが気になるしね
- 616 名前:名前は開発中のものです。 mailto:sage [2010/03/22(月) 13:33:05 ID:DUGGcEaK]
- 3D格ゲーマーなめんなよ!!
- 617 名前:名前は開発中のものです。 mailto:sage [2010/03/22(月) 19:56:42 ID:a35EGBlP]
- 2DPCゲームも盛んだった約10年以上前のintelのチップセット統合グラフィックコントローラには
主にゲーム中などの高負荷描画時に意図的にフレームスキップする機能が組み込まれていたけど 見て分るレベルじゃなくてほとんど気にならなかった思い出があるよ
- 618 名前:名前は開発中のものです。 mailto:sage [2010/03/22(月) 22:54:58 ID:lWMLrUhP]
- i810ってハードで勝手にフレームスキップするのか?
- 619 名前:名前は開発中のものです。 mailto:sage [2010/03/27(土) 11:17:41 ID:CAF7oz9b]
- ゲーム用のactiveXインストールさせておいてアンインストールの時に消さないのはクソゲー
- 620 名前:名前は開発中のものです。 mailto:sage [2010/03/27(土) 13:42:08 ID:tZ9gJAWE]
- >>619
スレ間違えてるぞ
- 621 名前:名前は開発中のものです。 mailto:sage [2010/03/27(土) 22:43:26 ID:AvjpVtCq]
- >>615
ふ〜ん。よく知ってるね。ネット(笑)で調べたんだ?
- 622 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 02:01:26 ID:vG829dZf]
- アプレットの2Dの戦術シミュレーションゲームをAWTで書いてて
加算合成とかやりたい程度なんですが、 JOGLとかライブラリ使ったら結構早くなるものなんでしょうか? 標準APIしか使ったことないんですが、使うとしたらJOGL一択?
- 623 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 16:23:12 ID:dUxWoyHG]
- 加算合成ならBufferStorategyとJava2Dのシステムプロパティー有効にすれば標準ライブラリでいける
- 624 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 17:33:06 ID:vG829dZf]
- ありがとうございます
すいません、調べてみたら、BufferStrategyってアプレットから使えなくないですか・・・? テクスチャで2Dの描画だけできれば十分なんですが、 drawImageのような処理はどう実装するのが普通なのでしょうか? とりあえずJOGLについて調べてみたのですが、 特定の画像を読み込んだテクスチャごとに、予め指定した各々のz座標にまとめて描画 という風なものしか思いつきません・・・
- 625 名前:622 mailto:sage [2010/03/29(月) 01:33:25 ID:SqZ8R8TT]
- OpenGLを理解するところから始めようと思います
失礼しました
- 626 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 17:04:23 ID:YLmAQvrk]
- >>623
詳細希望 どうやるの?
- 627 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 17:07:28 ID:tAa/9ZD/]
- >>624
素のAppletを使う必要性が現時点で無いわけだから、 JAppletを使うわけにはいかんの? とはいってもかなり作法が違うから、今から変更できないってのなら わからんでもないが。
- 628 名前:名前は開発中のものです。 mailto:sage [2010/03/30(火) 16:45:14 ID:ANScytkg]
- >>627
JAppletでCanvasを描画するって方法があったんですね! アプレットでBufferStrategy使えました。ありがとうございます BufferStrategyが4,5回の起動につき1回程度、酷く処理落ちするので 自前のダブルバッファリングと切り替えるようにしたのですが、 スマートな方法はありませんか? システムプロパティの方は、 Appletから設定出来るのかどうか分かりませんでした
- 629 名前:名前は開発中のものです。 mailto:sage [2010/03/30(火) 17:22:35 ID:5VmsakM5]
- >>623
半透明合成はAlphaCompositeでアクセラレーション効かせれるけど、 加算合成はどうすれば標準ライブラリで速度出せるの?
- 630 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 13:50:19 ID:ynx77+er]
- >>628
BufferStrategyのせいで処理落ちしてるとは思えない。 たぶん、GCのせいだよ。 結構でかいメモリを使い捨てにしてるんじゃないかな。 で、GCのタイミングを制御してないと。 まぁ、ゲームとかサーバサイドじゃないとGCが気になること無いんだけどね。 GCの情報をログに吐かせてチェックしたら良いよ。
- 631 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 14:16:29 ID:e2SekH7a]
- >>630
たまに描画アクセラレーションが効いてない状態になるのとGCは関係ないと思うぞ
- 632 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 14:31:05 ID:ynx77+er]
- >>631
描画アクセラレーションが効いてないって話はどこから?
- 633 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 14:34:10 ID:e2SekH7a]
- >>632
> 4,5回の起動につき1回程度、酷く処理落ちするので 原因はわからんけど同じようなことが起こった事あるから
- 634 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 17:20:45 ID:ynx77+er]
- 俺はそういうことは無いなぁ。
しかし、俺が読み間違えてた部分があるな。 >BufferStrategyが4,5回の起動につき1回程度、酷く処理落ちするので は、4,5フレームごとに処理落ちすると言うことかと思ってた。
- 635 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 20:30:53 ID:6whusFO/]
- 問題に直面してる本人が原因をある程度特定しないことにはなんとも
新人の頃当たった上司は不具合の原因を完璧に特定して理詰めで説明 せんとソース触らせてくれなかったなぁ
- 636 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 22:31:41 ID: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 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 23:01:06 ID:e2SekH7a]
- drawImageが絶望的に重いってのが理解できないんだがどういうこと?
- 638 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 23:51:25 ID:T6Q4zys0]
- これやればアプレットから起動できる。
mailsrv.nara-edu.ac.jp/~asait/open_gl/Jogl/jogl.htm#section341
- 639 名前:名前は開発中のものです。 mailto:sage [2010/04/01(木) 01:30:29 ID:yUfE9csc]
- >>630
>>636 具体的に書かなくてすみませんでした 「ひどく処理落ちする」というのは、 普段1フレームの処理が10〜40ms程度なのが、200〜300くらいになります createBufferStrategy、getBufferStrategyをやり直しても直らず、Appletを起動し直さないとダメでした ハード依存のせいで不安定なのかな、などと勝手に思ってましたが、よく分かりません とりあえずGCのログ調べてみます ありがとうございました
- 640 名前:名前は開発中のものです。 mailto:sage [2010/04/01(木) 13:06:54 ID:UAXZ1fUj]
- >>636
java6update10でもそうなる? アクセラレーションの効き方がupdate10以降全然違うよ。
- 641 名前:名前は開発中のものです。 mailto:sage [2010/04/19(月) 16:58:19 ID:DE/oWF3W]
- Javaで3dソフトレンダラー作ってるんだがテクスチャマッピングが糞重い。
テクスチャ無しの時と比べて3倍近く重くなる・・・ ピクセル単位でマテリアルの色とテクスチャの画像の色とを乗算してるんだが、 速くする方法はないだろうか・・・
- 642 名前:名前は開発中のものです。 mailto:sage [2010/04/19(月) 22:44:06 ID:EBaRhPkl]
- ソフトだとそんなもん。srcとdestのバッファが2次キャッシュに収まっているうちは早いのでそれを意識するしかない。
符号なし精度やSIMD直接発行したくなるけど、せいぜいマルチスレッドしかないね。
- 643 名前:名前は開発中のものです。 mailto:sage [2010/04/23(金) 14:30:02 ID:+jF/jVEW]
- VolatileImageと-Dsun.java2d.accthreshold=0組み合わせるとか
- 644 名前:名前は開発中のものです。 mailto:sage [2010/04/23(金) 17:11:32 ID:qX+XOmtR]
- 3Dで思ったんだけどブルームてどういうふうに実装するの?
高輝度部分と重なる物体の輪郭をぼかせばいいの? CGで木漏れ日とか表現してる人はどうやってんだろう。
- 645 名前:名前は開発中のものです。 [2010/04/24(土) 16:15:02 ID:wWfiheja]
- マルチスレッドで組んだことないけど、
レンダラーの場合はどのあたりをマルチスレッドにすべきだろう? やっぱ座標変換より描画処理か?
- 646 名前:645 mailto:sage [2010/04/24(土) 16:17:32 ID:wWfiheja]
- ごめ、、sage忘れた
- 647 名前:名前は開発中のものです。 mailto:sage [2010/05/06(木) 15:54:54 ID:sWIFt/qs]
- >>644
それ用にテクスチャを作っとくことが多いんじゃ? んで加算合成とか 専門じゃないからよく分からんが
- 648 名前:名前は開発中のものです。 mailto:sage [2010/05/08(土) 01:32:27 ID:OfzVRu2e]
- ゴーストやレンズフレアならテクスチャ使うこともあるけど
ブルームだけならレンダリング後のイメージ処理じゃないかな。 HDRIでレンダリングして一定以上の輝度の部分を抜き出して ぼかしたあとに加算合成するとかそういうの。
|

|