ExampleBrowser を読んでいる
fork して改造しながら読んでいる。
https://github.com/ousttrue/bullet3
やっと構造がわかってきた。 コードはディレクトリに別れているのだけど、 CMake を整理しながら推進。
ざっくりとこんな感じか。
rankdir="BT"
ExampleBrowser -> SimpleOpenGL3App -> gwen -> "Select DEMO";
で、この SimpleOpenGL3App を glfw に、gwen を imgui に置き換えてコードを単純化している。 bulletphysic の マルチクライアント システム ぽい SharedMemory を解読したい。 各 Demo は、 CommonExampleInterface できれいに分離されている。 SharedMemory と各クライアントの通信内容と OpenGL の繋ぎの部分が知りたい。
この pybullet の下地の部分がシーン同期システムに使えないかと。 Unity とかだとノードに剛体をくっつけるのだけど、 bullet 的には、剛体に Mesh をつける考えになるような。
20220118
各デモ と Physics と Renderer を分離できればよいのだが。 わりと規模が大きい。
20220122
だいぶ読んだ。GLInstancingRenderer がレンダラー本体。 btIDebugDraw とは別に普通の Renderer が実装されていてこっちを解読したい。 btIDebugDraw だと wireframe になるのかな。