imgui で日本語が表示できないときのチェックリスト

日本語のグリフを含んだフォントを使用している

例えば、NotoSans を使用する場合はこちら https://fonts.google.com/noto/specimen/Noto+Sans ではなく NotoSansJP https://fonts.google.com/noto/specimen/Noto+Sans+JP を使っていますか?

(私は JP でない方の NotoSans を使って <?> しか出ないな~と思っていました)

ソースコードエンコーディングUTF-8 である

ソースコードUTF-8 で保存していますか?

Visual Studio の場合は間違って Shift-JIS にしてしまうことが多いので

プロジェクトのプロパティ>C/C++>コマンドライン>追加のオプション

/utf-8 を追加するといいでしょう。 エンコーディングの自動推定がオフになり、プロジェクト内のファイルに Shift-JIS のものが存在する場合警告が出るようになります。

AddFontFromFileTTF で読み込むグリフの範囲を適切に指定している

ImGui::GetIO().Fonts->GetGlyphRangesJapanese() で日本語で使用する文字範囲が取得できるということになっていますが、難しい漢字は出てきません。(薔薇とか)

初めは広い範囲を指定して、あとから絞るといいでしょう。

auto& io = ImGui::GetIO();
ImWchar const ranges[] = { 0x0020, 0xfffd, 0, };
io.Fonts->AddFontFromFileTTF("NotoSansJP-Regular.otf", 16.0f, nullptr, ranges);