■ このスレッドは過去ログ倉庫に格納されています
物理演算エンジンってどうやって作るの?
- 1 :名前は開発中のものです。:2007/05/24(木) 19:10:51 ID:NTMqyc86.net
- ハーフライフとか、オブリビオンのあれです。
詳しい人教えて
- 2 :名前は開発中のものです。:2007/05/24(木) 19:44:52 ID:JyJ6yC84.net
- o
/  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
/ このスレは無事に /
/ 終了いたしました /
/ ありがとうございました /
/ /
/ モララーより /
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
∧_∧ / /∧_∧
( ・∀・) / /(・∀・ )
( )つ ⊂( )
| | | | | |
(__)_) (_(__)
- 3 :名前は開発中のものです。:2007/05/24(木) 19:45:32 ID:JyJ6yC84.net
- \ U /
\ U /
/ ̄ ̄ ヽ,
/ ', / _/\/\/\/|_
\ ノ//, {0} /¨`ヽ {0} ,ミヽ / \ /
\ / く l ヽ._.ノ ', ゝ \ < バーカ! >
/ /⌒ リ `ー'′ ' ⌒\ \ / \
(  ̄ ̄⌒ ⌒ ̄ _)  ̄|/\/\/\/ ̄
` ̄ ̄`ヽ /´ ̄
| |
−−− ‐ ノ |
/ ノ −−−−
/ ∠_
−− | f\ ノ  ̄`丶.
| | ヽ__ノー─-- 、_ ) − _
. | | / /
| | ,' /
/ / ノ | ,' \
/ / | / \
/_ノ / ,ノ 〈 \
( 〈 ヽ.__ \ \
ヽ._> \__)
- 4 :名前は開発中のものです。:2007/05/24(木) 19:46:18 ID:JyJ6yC84.net
- ________
| |
| / ̄ ̄ ヽ, |
| / ', |
| {0} /¨`ヽ {0}, !
|.l ヽ._.ノ ', |
リ `ー'′ ',|
| |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
5代目住職 ジュウシマツ和尚
- 5 :名前は開発中のものです。:2007/05/24(木) 21:31:26 ID:+p24wvlY.net
- >>1
まず金子氏のサンプルプログラムとにらめっこをしてみるんだ。
http://homepage1.nifty.com/kaneko/indexp2.htm
それで理解できなければ↓を読むといいだろう。
http://www.rutles.net/books/180.html
ちなみに俺は今から注文してみるぜ。
- 6 :名前は開発中のものです。:2007/05/24(木) 22:25:12 ID:KUhBCX3E.net
- マジレスするとプログラムと物理をとことんやれば作れる
- 7 :名前は開発中のものです。:2007/05/24(木) 22:28:34 ID:RPYIiplE.net
- >>5
その本はプログラムで等加速度運動や円運動の
解析解を求めてるだけだったような…
金子氏のサイトを読んでるなら分かってると思うけど
あれは一定の時間刻みで数値積分していく方法で
こういうやり方は上記の本には全く載っていなかったはず
上記の本の内容がゲームと全く関係ないとは言わないけど
この内容なら高校物理の教科書があれば事足りるとも言える
なけなしのお小遣いを使うなら立ち読みして熟考したほうがよい
金子氏のサイトのソースコードについて勉強するなら
数値積分、オイラー法とかのキーワードでぐぐって勉強したほうがいい
お金があるならGame programming Gems5邦訳版がオヌヌメ
- 8 :名前は開発中のものです。:2007/05/24(木) 22:36:16 ID:RPYIiplE.net
- うわー、ごめん
>それで理解できなければ↓を読むといいだろう。
って書いてたね。>>7は忘れてくれ!
- 9 :名前は開発中のものです。:2007/05/25(金) 01:35:55 ID:qYBFOqS/.net
- 重複じゃボケぇと思ったら物理スレはDAT落ちしてた
ゲームのための物理(力学)
http://pc5.2ch.net/test/read.cgi/gamedev/1018255106/
まぁあれだ
>>1はODEのソースでも読んでろってこった
http://www.ode.org/
- 10 :名前は開発中のものです。:2007/05/25(金) 08:15:04 ID:yrmuTz/6.net
- >>7
いや、コメントどうもありがとう。
偉そうに書いたけど、おいらは物理詳しいわけじゃないからね。
14歳から〜を出したのは、物理の基礎知識を知りたかったからってのが大きい。
それに硬い文章とか計算式嫌いだし、子供用なら砕いて書いてあると思ったんだ。
ちなみに家の近くの本屋には置いてなかったので、本当に注文してしまった。
Gemsは会社にあるかな。今日見てくるわ。
あと、詳しそうなので聞きたいんだが、金子氏のサンプルにある、
各質点を移動する点と見て自由に移動・質点間の初期距離の維持、のみを交互に繰り返す
というのは一般にゲーム用の物理エンジンには使われている手法なのだろうか?
軽そうなので、自分は携帯用ゲームの物理演算に使っているのだけど、
この手法をベースに使っていると、後々困ることが起きたりするのかと心配なんだ。
>>9のODEのソースも開いてみたけど、その辺の処理をしている部分がどこなのかサッパリ見当が付かなかったよ。
いきなりソースコードから読むのって辛杉だよな。な!
- 11 :名前は開発中のものです。:2007/05/25(金) 18:42:59 ID:N7du3zg1.net
- 数式見ても分かんないと思うが…詳しく載ってても実装技術がないとデバッグの荒らし
- 12 :名前は開発中のものです。:2007/05/25(金) 20:54:50 ID:NAoHd1NS.net
- ペナルティの良い解説ない?
やっぱspringhead?
- 13 :名前は開発中のものです。:2007/05/26(土) 00:18:34 ID:ZNEqohM9.net
- >>12
アルゴリズムが知りたいだけなら、
金子氏のソースを見るのが一番早い。
ペナルティー法を知った上で、
いろんな不都合を回避する方法が知りたければ、
実験を積み重ねるしかないんじゃないかなぁ・・・
- 14 :名前は開発中のものです。:2007/05/26(土) 04:05:23 ID:sb7lydqF.net
- 物理わからない自分が最近物理知りたいと思ってちらっと本を覗き見している。
物理てなんかいろいろな数式があるけども、
全てが関連しているわけではなくて、物理の表し方が違って
似たようなことを表すにもいろいろな表現方法があるかんじ?
(この計算方法だと正確な値は取れないが計算が楽とか)
ゲーム開発に必要な物理ってどういう風に学んでいくものでしょうか?
- 15 :名前は開発中のものです。:2007/05/26(土) 14:01:47 ID:z4eeHnj4.net
- http://www.amazon.co.jp/%E3%82%B2%E3%83%BC%E3%83%
A0%E9%96%8B%E7%99%BA%E3%81%AE%E3%81%9F%E3%82%81%E3
%81%AE%E6%95%B0%E5%AD%A6%E3%83%BB%E7%89%A9%E7%90%86%E
5%AD%A6%E5%85%A5%E9%96%80-Beginning-Math-Physics-Progra
mmers/dp/4797329076/ref=sr_1_1/250-4262830-8714649?ie=UTF8&
s=books&qid=1180155658&sr=8-1
- 16 :名前は開発中のものです。:2007/05/29(火) 09:26:10 ID:VnmyfgfL.net
- >>15
ゲーム開発のための数学・物理学入門
http://www.amazon.co.jp/dp/4797329076/
ゲームプログラミングのための3Dグラフィックス数学
http://www.amazon.co.jp/dp/4939007375/
前者¥2,940。後者¥7,350。
安物買いの銭失いの典型例
- 17 :名前は開発中のものです。:2007/06/02(土) 11:02:20 ID:gZfLpyhs.net
- F = ma
- 18 :名前は開発中のものです。:2007/07/11(水) 11:24:11 ID:wIrlMFaU.net
- ゲームプログラミングのための3Dグラフィックス数学
は第二版も出てるよ。
http://www.amazon.co.jp/dp/1584502770/
しかも、価格: ¥ 4,194 (税込)!
- 19 :名前は開発中のものです。:2007/07/22(日) 01:35:22 ID:aw8yUdcr.net
- >>5の金子氏のサンプルプログラムを見て感動したんですが、
このサンプルプログラムの解説とかって無いんですか?
ソース見てもいまいちわからないです・・・
- 20 :名前は開発中のものです。:2007/07/22(日) 16:09:13 ID:HN0dPhlB.net
- 見て盗め…職人の世界か;
- 21 :名前は開発中のものです。:2007/07/23(月) 15:14:44 ID:iE8cLQ4B.net
- いまいち分からない時は答えを見るよりも試行錯誤して自分で
注釈いれていった方がよい。見るだけでは盗めない。
- 22 :名前は開発中のものです。:2007/07/23(月) 21:10:04 ID:FTmOWAEW.net
- 理論は普通に勉強するしかないだろ
- 23 :名前は開発中のものです。:2007/08/16(木) 13:10:37 ID:Up8TghiG.net
- エンジンではないけど、日本語の本一通り読んだところ次が一番良かった
OpenGLで作る力学アニメーション入門
http://www.amazon.co.jp/exec/obidos/ASIN/4627845618/
- 24 :名前は開発中のものです。:2008/01/03(木) 09:49:21 ID:H7llSi9X.net
- まだ、金子さんのSampleを色々と見て研究程度だけど、
この分野に興味をもったので保守代わりのあげ・・・・
- 25 :名前は開発中のものです。:2008/03/18(火) 15:23:05 ID:u4I96gZ5.net
- 金子氏のサンプルはさすがに古い。
つか間違ってるな(タイムステップ固定だと問題ないが)
数値積分なんか好きなのを適当に使えばいいけどverlet法がいいと思う。
むしろ物理エンジンはコンストレイント・ソルバーの実装が肝なんだが、CryEngineとか最近のは恐ろしくレベルが高い。
ODEとかBox2Dのソースを読むのはバックグラウンドとなる知識が無いと全く意味が無いぞ。Havokもタダで使えるようになるんだし、それらの使い方を覚えるほうがよっぽど有意義。
それでもあえて自作したいんならbulletのフォーラムを覗いてみるといい。
ゲームメーカーも英語出来ないプログラマの言葉を鵜呑みにして、物理エンジン自社開発とか無謀なことはしないほうがいい。もう追いつけるレベルじゃないから。
- 26 :名前は開発中のものです。:2008/03/20(木) 18:26:11 ID:63tP/HUb.net
- CryEngineの物理って蟹とか鳥投げると直線にすべて突き抜けてどこかに飛んでいくやつか
- 27 :名前は開発中のものです。:2008/03/21(金) 01:26:09 ID:wfD8504G.net
- それは物理エンジンに接続するときのバグだろ。
さすがに定常時の人間だの鳥だのはシミュレートしてる訳じゃない。
が、奴等なら5年以内にやる。NaturalMotionのが早いかもしれん。
- 28 :名前は開発中のものです。:2008/03/23(日) 22:38:38 ID:zyDF2tIq.net
- 当たり抜けなのかも。
物理演算エンジンがしっかりしてても、衝突判定がしっかりできていない可能性。
衝突判定なくして物理挙動はできないだろうし。
- 29 :名前は開発中のものです。:2008/12/14(日) 18:25:27 ID:9afPI2bV.net
- ≫25
Bullet等のコンサルティングと言うか受託開発についてはどう思う?
- 30 :名前は開発中のものです。:2009/02/06(金) 20:22:48 ID:umAojnkV.net
- 撃力ベースで物理エンジン作ってるやついる?
- 31 :名前は開発中のものです。:2009/02/07(土) 22:44:46 ID:VcBem1JV.net
- Havokって一般人も使えるの?
- 32 :名前は開発中のものです。:2009/02/08(日) 00:39:39 ID:mu6Kt79P.net
- >>31
つ ttp://www.4gamer.net/games/032/G003263/20080602011/
> ゲームデベロッパ向けに無料で「Havok Physics」と「Havok Animation」の
> 提供を開始した。HavokのSDKやサンプルなども含まれており,配布対象は
> すべてのゲーム開発者。
> これは,趣味でゲームを開発している人や学生なども含まれている。
- 33 :名前は開発中のものです。:2009/02/16(月) 22:39:51 ID:/sdkE3j5.net
- とりあえず高等範囲までの数学(もちろんIIIC含む)と物理くらい問題なくできるようになってこい
話はそれからだ。
本読んだだけで勉強した気になるなよ。
ちゃんとひとつずつ問題解けよ。
- 34 :名前は開発中のものです。:2009/02/19(木) 12:22:35 ID:DgbcU2D7.net
- 物理エンジンって
自由落下(x,y,T)とか渡したら
戻り値としてT時間次の座標が返ってくるとか
そういうプログラムのことですか?
- 35 :名前は開発中のものです。:2009/02/20(金) 00:46:03 ID:LWtSiFOl.net
- 中学や高校の教科書の公式をそのままプログラムにしてしまえばえーやんと思った。
- 36 :名前は開発中のものです。:2009/02/21(土) 09:26:15 ID:wpempfPo.net
- 複雑な形状の衝突や跳ね返りが面倒。
- 37 :名前は開発中のものです。:2009/02/22(日) 15:47:27 ID:e0EbiJuc.net
- >>31
商用利用不可だけど無料版あるぜ
- 38 :名前は開発中のものです。:2009/02/22(日) 17:04:17 ID:yw09N868.net
- > 37
今は条件付き(PhysysとAnimationのみ、PCのみ)なら商用でも無料で使える。
小売価格10米ドル以上ならサイトに要登録、未満なら必要なし。
ライセンスに対する合意が必要なので、熟読して利用を判断すること。
- 39 :名前は開発中のものです。:2009/02/22(日) 22:24:46 ID:HoUF8U1D.net
- 落としてみたが、マニュアルが分からん・・・。
日本語の書籍とか出してくれないかな・・。
はじめてのHAVOKとかw
- 40 :名前は開発中のものです。:2009/03/14(土) 02:45:52 ID:LeBePb3w.net
- 金子さんの質点バネモデルは大好きだ
簡単だしさ
やーらかい物シミュレートするにゃもってこいだら
- 41 :名前は開発中のものです。:2009/04/16(木) 21:57:02 ID:lw6cN453.net
- static q[objs][3];//位置
static p[objs][3];//運動量
static f[objs][3];//力
main(){
init();
startThread();
startEvent();
}
runThread(){
popEvent(); //event→f
calc(); //f→p, p→x
display();//x→(display)
}
pushEvent(){ //(I/F)→event
switch(){case A: addEvent();...}
}
何でもメインルーチンはだいたいこんな感じになるよね。
いかがお過ごし?
全然違う人とかいるかな。
毎回よく困るのは、衝突後の処理かな
判定までは簡単だけど、その後の対処が難しくて
同じ衝突イベントが連続で起こっちゃったり、
それを回避しようとするとすり抜けちゃったり
○○保存則が崩れて、ほっとくと毎回すんごい総エネルギー量になりますw
あと衝突後の位置修正処理がそのまま別の衝突を引き起こしたり…
みんな経験あるよねぇ?
自然ってほんと良く出来てるなぁと思います(ボソ
- 42 :名前は開発中のものです。:2009/04/16(木) 22:11:40 ID:lw6cN453.net
- そうだ、離散時間シミュの衝突で食い込んだときの処理をどうやってるか教えてほしい。
(1) 何もせず撃力与えてそのまま
(2) 移動前時間まで戻して撃力与えてそのまま
(3) 真の衝突時間(分数ステップ)を計算し、そこまで慣性移動
→正確な撃力を求めてから残り時間中だけまた慣性移動
(1) だと食い込んだままになることが多々。
(2) で妥協することが多々。
(3) までやるのが理想なのかな?普通そこまでする?
まぁモノに依ると言われるとそれまでだけど…習慣として
- 43 :名前は開発中のものです。:2009/04/23(木) 01:19:06 ID:Q7e15GYD.net
- 中途半端だけど面の交点に戻して激力与えてるよ
ホントは(3)がやりたいけどめんどかった
- 44 :名前は開発中のものです。:2009/10/24(土) 16:32:46 ID:eHfCCzB1.net
- >>25
すごいっすねー
自前でつくるなんて無理だわ・・・
CryEngine3
http://game.watch.impress.co.jp/docs/series/3dcg/20090501_167933.html
http://www.famitsu.com/game/news/1223057_1124.html
- 45 :名前は開発中のものです。:2010/04/24(土) 17:54:58 ID:ySaSfK6d.net
- スレ機能してねーなw
- 46 :名前は開発中のものです。:2010/06/15(火) 09:30:58 ID:XddCABWf.net
- アマゾン探してもphysXの本ならあるけど
じまえで全部作ることについて書かれた本とか全然ないし・・
- 47 :名前は開発中のものです。:2010/09/04(土) 01:24:02 ID:31Uq+LnP.net
- シーグラフとかの論文読んで勉強して作ればいいと思うよ。
- 48 :名前は開発中のものです。:2010/09/04(土) 08:37:50 ID:ORoXzrBI.net
- >>46
リアルタイムの実装で、処理の順番とか精度とかCPU負荷とか色々とチューニングが必要ですね
最近のPCスペックでやっと実用的にはなって来たけど、用途で色々と実装方法も変わってくる。
汎用エンジンでゲーム作るにしても理解が及んでいないとパラメータ設定もできないしまともに動かせないよ。
今ネットにある情報で作れないなら物理演算に触るなって事でしょ。
- 49 :名前は開発中のものです。:2010/10/28(木) 00:00:03 ID:UJvH8QSA.net
- 振動を抑えるためいろいろやってたら非物理エンジンになってた件について
やっぱ難しいわ
- 50 :名前は開発中のものです。:2011/02/15(火) 13:43:32 ID:FJMNz0Ob.net
- 振動を抑えるのはタイムスライスを細かくして見えない幅にするくらいか
- 51 :名前は開発中のものです。:2011/06/28(火) 17:50:29.78 ID:omvPf4gy.net
- 物理演算興味持って1から趣味で作り始めたんだけど
これってやっぱ物理学関係ない所で詰まりがちやねw
- 52 :名前は開発中のものです。:2011/06/29(水) 01:09:53.80 ID:navapLQb.net
- 剛体の力学の本を買ってきて理解する。
あとは、これを読めばおk。今の剛体の処理で主流の奴
http://www.pixar.com/companyinfo/research/pbm2001/pdf/notesg.pdf
最終的に、線形相補性問題を解くことになる。これをいかに効率よく解くかが鍵。
昔やったときは、前フレームの情報を利用して効率化したけど、それでも全然遅い。
- 53 :名前は開発中のものです。:2011/06/29(水) 01:18:46.99 ID:navapLQb.net
- てゆうか >>25 に書いてるな。
コンストレイントソルバーっていうのが線形相補性問題を解くっていうこと。
ODEは基本>>52の論文の方法。
ODEには処理速度で互角か勝てるぐらいまでいける。でも、それ以上のフリーじゃないやつはムリポ。
剛体が300個とかになってくると、線形相補性問題の行列の情報がキャッシュに乗り切らないから、そこがボトルネックになる。
対称行列になるからとか工夫してもムリポ
実家にdelphiだけどソースコードあるはずだから、需要あるなら公開しよっかな。
- 54 :名前は開発中のものです。:2011/06/29(水) 07:03:03.83 ID:tEh/8tcG.net
- 自然な動きを求めると非物理エンジンになる不思議!
- 55 :名前は開発中のものです。:2011/07/05(火) 00:56:10.85 ID:Mr5lFhmq.net
- >>53
じゅようあり ノシ
- 56 :名前は開発中のものです。:2011/07/05(火) 01:29:26.88 ID:V4itKPNJ.net
- >>55
http://www.dotup.org/uploda/www.dotup.org1759994.zip
物理計算の主要な部分だけ。3、4年前だから何やってるかわからんwww
具体的には何が知りたいんだ?
- 57 :名前は開発中のものです。:2011/07/05(火) 20:58:16.48 ID:Mr5lFhmq.net
- >>56
ありがとう
つい最近OpenGLに手をだしてやっとモデルデータを表示できるとこまで来たんだけど
それを動かすとっかかりになればなーと 参考にさせてもらいます!
- 58 :名前は開発中のものです。:2011/07/05(火) 21:30:52.64 ID:V4itKPNJ.net
- >>57
待てよ。そのレベルだと参考にならないぞ
数学はどの程度知ってるの
- 59 :名前は開発中のものです。:2011/07/05(火) 22:36:42.54 ID:Mr5lFhmq.net
- >>58
工業系の大学数学レベルまでならしったかぶり出来る程度には・・・
とにかく右も左も分からなくて情報をかき集めてる段階です
- 60 :名前は開発中のものです。:2011/07/14(木) 15:23:42.32 ID:UBDMyCUV.net
- >>59
数学が大丈夫なら、>>52に全部書いてると思う
- 61 :名前は開発中のものです。:2011/07/22(金) 12:09:26.27 ID:7j2Z83oX.net
- 物理エンジンの作り方って需要あるの?
ガチの本とか書いたら売れるのかな?
- 62 :名前は開発中のものです。:2011/07/22(金) 20:03:08.75 ID:KJLHBA7J.net
- しかし英語がよめんかった
- 63 :名前は開発中のものです。:2011/07/22(金) 20:33:54.61 ID:7j2Z83oX.net
- >>62
本書いたら買ってくれる?
表紙に萌え萌えな絵付ければ売れるかな
でも、面倒だから。お金目的じゃなくて、純粋な自己顕示欲で書くかもwww
http://haihu.zouri.jp/
- 64 :名前は開発中のものです。:2011/07/22(金) 20:49:28.81 ID:7j2Z83oX.net
- いいの見つけた
http://kmkz.jp/mtm/mag/lab/
- 65 :名前は開発中のものです。:2011/07/23(土) 15:33:51.14 ID:q6zHW1Rk.net
- 既存の物理エンジンだけで飽和状態なので需要はないに等しい。使い方の方が圧倒的に需要あると思う。
- 66 :名前は開発中のものです。:2011/07/23(土) 16:01:34.95 ID:QTkODIag.net
- そうなのかよ。
原理から知りたいっていう熱心な若者はいないのか?
- 67 :名前は開発中のものです。:2011/07/24(日) 02:58:39.80 ID:8WLTW02y.net
- ○○というゲームの○○の動きをプログラムで再現してみよう
みたいなのはうけるんじゃない 本にはできなさそうだけど
- 68 :名前は開発中のものです。:2011/07/24(日) 06:58:28.18 ID:1B5hZOTx.net
- 昔、本買って自作したけど、独立した物体同士の相互作用までは
出来たけど関節(拘束)のやり方が載ってなくて挫折した。
なのでそこんとこ頼むわ>本書く人
- 69 :名前は開発中のものです。:2011/07/24(日) 12:39:43.00 ID:P4/beFJ3.net
- 関節のほうが計算量少ないから、簡単だぞ
なんで、できなかったんだ?
- 70 :名前は開発中のものです。:2011/07/25(月) 09:17:53.21 ID:zl9SHWwo.net
- >関節のほうが計算量少ない
え?え?(^ω^;)
ググってもよー判らんわ。関節。
- 71 :名前は開発中のものです。:2011/07/25(月) 09:21:53.53 ID:MgUklQO7.net
- それって、(本に記載されているロジック通りに組んだら)出来た
って事?
- 72 :名前は開発中のものです。:2011/07/25(月) 14:32:49.26 ID:tsuW/g3z.net
- 関節は、連立一次方程式になるから、計算量最悪は n * n * nで解ける。
普通の接触は、線形相補性問題になるから、計算量は最悪、2^n。
実際は反復法でやるから、ここからだいぶ減らしていくんだけど。
減らしていっても、関節のほうが圧倒的に計算量が少ない
- 73 :名前は開発中のものです。:2011/07/26(火) 01:20:44.78 ID:Nkp9uwXJ.net
- 俺が買った本、
「ゲーム開発のための物理シミュレーション入門」って奴なんだけど、
まず、
>普通の接触は、線形相補性問題になるから
ここがすっぽ抜けてる希ガス。
なので接触したらいい具合に押し戻すって感じ。ダメだこりゃ。
- 74 :名前は開発中のものです。:2011/07/26(火) 07:24:43.62 ID:zKjxXwQ5.net
- >>52のpdfを検索したけどLCPとかcomplementary等の単語がみつからなかったけど、
そのへんものってるでしょうか?>読んだ人
- 75 :52:2011/07/26(火) 07:35:42.55 ID:VOyddbGv.net
- >>74
俺は実は読んでないwww今読んだら、quadratic programって書いてある。同じことだと思う
ページG53に、そのことが書いてあって。関節も一緒に扱えるみたいなことが書いてある
需要あるのか?
- 76 :名前は開発中のものです。:2011/07/26(火) 07:47:43.81 ID:VOyddbGv.net
- 剛体シミュレーションの処理時間のほとんどは、線形相補性問題に裂かれるから
その速い解き方を考えれば有名になれるはず
剛体特有の性質を使わないと速くならないから、剛体の接触から得られる行列がどういう性質を持っているか考えるのが重要
- 77 :名前は開発中のものです。:2011/07/27(水) 17:02:29.87 ID:jpUYGiJj.net
- みんな言語何使ってるの?
勉強用のやつ作ってみようと思ってるけど、C#とかDelphiとか読めるの?
C++は使いたくないお
- 78 :名前は開発中のものです。:2011/07/27(水) 17:58:59.82 ID:jpUYGiJj.net
- http://www.ynl.t.u-tokyo.ac.jp/publications/pdf2007/oral07/20.pdf
これのピボット法じゃなくて、ガウスザイデルに近いやり方でやってた。
収束が保障されてないってかかれてるけど、剛体に関して言えば全体のエネルギーみたいなものに着目すれば
各ステップごとに確実に減少していくから収束はするんじゃないかなって思ってる。
lemke法は知らない。今調べてる
- 79 :名前は開発中のものです。:2011/07/27(水) 18:22:13.85 ID:DcAliuH1.net
- JavaかC#ならいいんでない?
ちっと重いかもだが
- 80 :名前は開発中のものです。:2011/07/27(水) 21:27:20.00 ID:jpUYGiJj.net
- わかったC#で作ってみる
- 81 :名前は開発中のものです。:2011/07/29(金) 22:36:28.71 ID:YKUBReqf.net
- lemke法、本当に収束するのかとか、どのくらいで収束するのかとか理解してないけど。少し理解した
剛体が増えると不利だな。元々の疎行列が活かしづらい
マルチグリッドLCPが出来れば超速くなるはず
- 82 :名前は開発中のものです。:2012/01/08(日) 13:49:46.00 ID:i1iv+V/j.net
- BulletXのソース読んでみたけど、あれって拘束ベースなのかな?力積ベースなのかな?
constraint(拘束)Solverっていうディレクトリが在ったから読んでたら、Impulse(力積)を加えてたんで判んなくなった。
拘束ベースの判り易いソースって知ってたら教えて欲しいな。VC++よりはC#の方が読み易いからうれしい。
- 83 :名前は開発中のものです。:2012/02/25(土) 23:00:55.81 ID:HsM02eP/.net
- 拘束条件を解く方式のエンジンでも、拘束されてる(物体どうしが一定時間以上
連続して接触している)ときも常に力積を加え続ける方式のものもあるよ。
つまり、力積が吊り合ってたら物体が静止状態になるってことね。
ちなみに、ソース読むよりも代数学の行列とか勉強した方が早いかも。
連立方程式を反復法で適当に解いてくエンジンとか、
すごい高度な数学のテクニックで解いてくエンジンとかいろいろある。
まずそっちの知識が無いと、ソースだけ読んでもわけわからん。
- 84 :名前は開発中のものです。:2012/02/25(土) 23:04:14.93 ID:lzeArZyh.net
- >>82
俺が教えてやるよ。もちろん数学はできるんだよな?
・ペナルティ法
・撃力
・拘束
- 85 :名前は開発中のものです。:2012/02/25(土) 23:05:24.17 ID:lzeArZyh.net
- 撃力について
衝突したら撃力を加えるっていうのを何度もやる。
静止状態も実は撃力を何度も加えて結果的に静止してる
これは静止状態が重いんだわ
- 86 :名前は開発中のものです。:2012/02/25(土) 23:08:49.02 ID:lzeArZyh.net
- だから、それに加えて力積 or 力に関してのLCP(線形相補性問題)を解く
これはどういう式かっていうと
普通静止させたい場合は、衝突部分の相対速度の法線成分が0になるっていう式を連立させて解けばいいよな?
でも、離れようとしてるのに力を加えたり、マイナスの力を加えるのはおかしいよな?
だから
力 >= 0、相対速度 >= 0、力 = 0 or 相対速度 = 0
っていう式を立てるのよ
どっちかがゼロでなければもう片方はゼロっていう
これを高速に解くのがキモなの
- 87 :名前は開発中のものです。:2012/02/25(土) 23:13:50.63 ID:lzeArZyh.net
- おおまかな流れとして
・撃力を加える(静止状態とかだとかなりの回数になるから、どこかで打ち止め(近似))
・重力とかの外力を加える
・LCPを解く
速度と加速度を別に保持しておくか、速度だけにするか
つまりLCPで解く対象を速度にするか、加速度にするか
撃力を打ちどめることが多いので、近似になるけど速度をLCPで押さえこんだほうがいい。撃力を打ち止めてほっておくとめり込む
LCPで解く対象は速度だから、外力を加えるときは、dtをかけて力積として加えてしまう
- 88 :名前は開発中のものです。:2012/02/25(土) 23:15:24.27 ID:lzeArZyh.net
- ペナルティ法
めり込みに応じて反発力を。めり込んだ体積に比例させたり、距離に比例させたり
ステップ数が十分短ければどれも正しいんだけど、ステップ数が広いときにどれがいいのか
って分からない
ステップ数を広くできないから、他の方法と比べて衝突判定のコストが上がってしまう
- 89 :名前は開発中のものです。:2012/02/26(日) 22:13:56.93 ID:uCaFSiki.net
- >>82-88
レスありがとうございます。>>82です。
物理エンジン関係の資料はいくつか読んで、物理・数学関係は断片的な知識としてはあります。
それをプログラムに実装するにはどうしたらいいか判らなくてソース読んでました。
>>82を書き込んだ後、拘束ベースに関しては以下の本読んで勉強してました。
http://www.amazon.co.jp/Physics-Based-Animation-Graphics-Jon-Sporring/dp/1584503807
この辺りまでは、判りました。
>>普通静止させたい場合は、衝突部分の相対速度の法線成分が0になるっていう式を連立させて解けばいいよな?
LCPの解き方がキモなのですね。次は、LCPの辺り重点的に読んでみます。
- 90 :名前は開発中のものです。:2012/02/27(月) 08:02:04.56 ID:+ONGrtda.net
- ソルバも重要だけど、もちろん衝突検出の幾何学の部分も重要だよ。
そこがてきとーすぎると、やっぱり細かいとこで変な挙動になったり
誤差がふりつもってガクガクしたりするからね。
- 91 :名前は開発中のものです。:2012/02/27(月) 09:37:13.51 ID:nYOAmwnM.net
- 衝突検出に関しては、以下の本を1/3程度読みました。
「ゲームプログラミングのためのリアルタイム衝突判定」
時間さえ掛ければ自分のプログラムに応用できそうですし、挙動を見ながらの方が理解が早いと思っています。
初心者の自分には今時点では、目途の立っていない運動方程式の方に意識が行っています。
- 92 :名前は開発中のものです。:2012/02/27(月) 11:18:23.63 ID:svWsgWM6.net
- 衝突判定なんてLCPに比べればカスみたいなもの
適当やってればいい
Rapidだか、Opcodeとか参考にすれば?
普通にAABBTreeかOBBTreeでやるのが楽だな
運動方程式理解できないとか勉強足りないぞ。
オイラーのなんたらってやつやろ?
あとあの方程式は非線形だけどエネルギーを保存するやり方で差分化できる
ちょっと考えるとな
- 93 :名前は開発中のものです。:2012/02/27(月) 11:20:53.53 ID:svWsgWM6.net
- 衝突判定で唯一やっかいな問題は
これ
http://iup.2ch-library.com/i/i0575663-1330309239.png
- 94 :名前は開発中のものです。:2012/02/27(月) 12:11:08.44 ID:nYOAmwnM.net
- 自分の作るプログラム上で予想どおりに動かなかった場合には、衝突判定も深く勉強しようと思います。
形状も最初は球や直方体やシリンダーといった単純な形状で考えて、シミュレーション出来たら種類を増やしていこうと思います。
自分のレベルではまだ複雑な事までチャレンジできるかんじでは無いので。
opecodeですか、ソースありそうですしダウンロードして見てみます。ありがとうございます。
- 95 :名前は開発中のものです。:2012/02/27(月) 12:17:40.99 ID:svWsgWM6.net
- >>94
おいおい、最初はまず任意の多面体でやれよ
シリンダー専用衝突判定なんていうは高速化のためな
多面体でシリンダー作ればいいんだから。AABBTreeとかにすれば面の数に対して処理時間はそんなに増えない
opecodeソース読んでも分からないと思う。まあ、デモ動かしてみて計算速度の目安にするとか
解説読むとか
- 96 :名前は開発中のものです。:2012/02/27(月) 20:08:42.36 ID:+ONGrtda.net
- >>93
やっかいだけど、現実的な解決方法はちゃんとある。
- 97 :名前は開発中のものです。:2012/02/27(月) 20:13:04.45 ID:+ONGrtda.net
- >94
判定方法にもよるけど、球とかシリンダーとかの曲面を含むようなのは
面倒だから後回しで、最初は頂点と辺(直線)と面だけで作れる多面体だけでいいよ。
なんとかツリーとかの判定の高速化も後回しでOK。
- 98 :名前は開発中のものです。:2013/01/22(火) 15:53:44.40 ID:JCFnqPH7.net
- 新しい剛体シミュの方法思いついた
もう少し練ってデモ作る
撃力でも拘束ベースでもペナルティ法でも無い奴
- 99 :名前は開発中のものです。:2017/12/31(日) 20:12:15.69 ID:/rN76OKL.net
- 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
UO82Y8FR9Z
総レス数 99
31 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200