このプロジェクトは、多くのゲーム エンジンで一般的に見られるギズモ編集用の軽量の自己完結型ライブラリです。これには、3D 位置、回転、スケールを操作するためのメカニズムが含まれています。 C++11 で実装されたこのライブラリは、レンダリングを直接実行せず、代わりにワールド空間の三角形のフレームごとのバッファーを提供します。
含まれているサンプルは、GLFW 上に構築されています (OpenGL 3.3 コンテキストを使用)。既知の制限には、右手の Y アップ座標系に関するハードコードされた仮定が含まれます。ギズモには頂点法線が提供されていますが、この例では派手なシェーディングは実行されていません。さらに、特定のギズモを極端なインタラクションかすれ角でマウス ドラッグ入力すると、異常な出力が生成されることが知られています。
このプロジェクトは、他の即時モード ギズモ ライブラリに対する軽い不満から生まれました。 4x4 行列とオイラー角の代わりに、ライブラリは 3D 位置、回転四元数、スケールで構成されるrigid_transform
公開します。このライブラリは約 1200 行のコードで実装されており、これには、約 400 LoC - linalg.h の完全な 3D 数学ライブラリも含まれています。代替手段としては、ImGuizmo や Im3D などがあります。 Tinygizmo は、完全に自己完結型 (Dear ImGui に依存しない) であり、パブリック ドメインで提供されているため、これらのプロジェクトの中間に位置します。
gizmo_application_state
構造体のsnap_
値のいずれかを設定します。update(...)
とdraw()
を呼び出す必要があります)ctrl-t
翻訳ギズモをアクティブにしますctrl-r
回転ギズモをアクティブにしますctrl-s
スケール ギズモをアクティブにしますctrl-l
押して、グローバル変換モードとローカル変換モードを切り替えます。このプロジェクトは、パブリック ドメイン ワークベンチ プロジェクトのリファレンス実装がなければ不可能でした。
これは、パブリック ドメインにリリースされた無料で制限のないソフトウェアです。詳細については、http://unlicense.org を参照してください。