ExampleBrowser を読んでいる

fork して改造しながら読んでいる。

GitHub - ousttrue/bullet3: Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc. - ousttrue/bullet3
GitHub - ousttrue/bullet3: Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc. favicon https://github.com/ousttrue/bullet3
GitHub - ousttrue/bullet3: Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.

やっと構造がわかってきた。 コードはディレクトリに別れているのだけど、 CMake を整理しながら推進。

ざっくりとこんな感じか。

rankdir="BT"
ExampleBrowser -> SimpleOpenGL3App -> gwen -> "Select DEMO";

で、この SimpleOpenGL3App を glfw に、gwen を imgui に置き換えてコードを単純化している。 bulletphysic の マルチクライアント システム ぽい SharedMemory を解読したい。 各 Demo は、 CommonExampleInterface できれいに分離されている。 SharedMemory と各クライアントの通信内容と OpenGL の繋ぎの部分が知りたい。

この pybullet の下地の部分がシーン同期システムに使えないかと。 Unity とかだとノードに剛体をくっつけるのだけど、 bullet 的には、剛体に Mesh をつける考えになるような。

20220118

各デモPhysicsRenderer を分離できればよいのだが。 わりと規模が大きい。

20220122

だいぶ読んだ。GLInstancingRenderer がレンダラー本体。 btIDebugDraw とは別に普通の Renderer が実装されていてこっちを解読したい。 btIDebugDraw だと wireframe になるのかな。