macOS の環境構築

使っている mac が 128GB しか SSD 容量が無いため、定期的にクリーンインストールして環境を再構築している。その度にやり方を忘れるのでメモ。

# US-Keybord での日本語
標準だと Command + Space には Spotlight 検索
Control + Space には入力切り替えが割り当たっている。これらのショートカットキーは System Preferences -> Keyborad -> Shortcuts で設定する。

ABC と Hiragana などの入力切り替えのショートカットを行うには Input Sources -> Select the previous input source にチェックを入れる。その上で、標準だと Command + Space になっているが、キーが離れているため入力がやりづらいため、Command + Space に変更する。その後に、ショートカットキーが衝突していると言われるので、Spotlight 検索の方を Control + Space へと変更する。

# docker
インストール後に Sign In するときは、メールアドレスだと docker pull に失敗する現象があった。ユーザー名で Sign In する。

# miniconda
Python 3.7 pkg ファイルをダウンロードしてインストール
https://docs.conda.io/en/latest/miniconda.html

# unity
最近だと Unity Hub を DL, Install してから、その中から Unity 本体の Version を指定して Install するみたい。デフォルトだと、Visual Studio for Mac がインストールにチェックが入っているが、容量がきついのでチェックを外す。代わりに Visual Studio Code が使える。

# Terminal 名の変更
System Preferences -> Sharing から変更できる。

Vulkan の API Dump

Vulkan Validation and Debugging Layers
https://vulkan.lunarg.com/doc/view/1.0.13.0/windows/layers.html

Using the Vulkan Validation Layers
https://gpuopen.com/using-the-vulkan-validation-layers/

Architecture of the Vulkan Loader Interfaces
https://vulkan.lunarg.com/doc/view/1.0.54.0/windows/LoaderAndLayerInterface.html

※ 検索にヒットした URL を載せているので、バージョンに一貫性が無い

Windows であれば VK_LAYER_LUNARG_api_dump をアプリケーションに設定し、Layer の設定ファイルが記述されている vk_layer_settings.txt ファイルを exe と同じ階層に配置する。

vk_layer_settings.txt は SDK/Config 以下にあり、ファイルの一番下に api_dump の記述がある。デフォルトだと lunarg_api_dump.file = FALSE になっているので TRUE に変更する。

実行すると vk_apidump.txt が exe と同じフォルダに出力される。

Vulkan 開発とデバッグマーカー

Examples and demos for the new Vulkan API
https://github.com/SaschaWillems/Vulkan

Vulkan Tutorial
https://vulkan-tutorial.com/

Tutorial on using Vulkan’s VK_EXT_debug_marker with RenderDoc
https://www.saschawillems.de/blog/2016/05/28/tutorial-on-using-vulkans-vk_ext_debug_marker-with-renderdoc/

Renderdoc
https://renderdoc.org/

Debug Marker

Unreal Engine 4 だと SCOPED_DRAW_EVENTF() で Debug Marker が埋め込まれている。Renderdoc のEvent Browser で拾える名前はここで設定されている。

UE4のレンダリングパイプライン

UE4の描画パスについて Ver 4.18.1
http://monsho.hatenablog.com/entry/2017/12/16/012502

CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
https://www.slideshare.net/EpicGamesJapan/cedec2016-unreal-engine-4

Lightmassの仕組み ~Lightmap編~
https://www.slideshare.net/EpicGamesJapan/lightmass-lightmap-epic-games-japan

Lightmassの仕組み ~Precomputed Light Volume編~
https://www.slideshare.net/EpicGamesJapan/lightmass-deep-dive-part2-pub

なぜなにリアルタイムレンダリング
https://www.slideshare.net/SatoshiKodaira/ss-69311865

RHIの初期化

  • エンジン初期化の LaunchEngineLoop.cpp PreInit() の中から RHIInit() をコール
  • Windows であれば、WindowsDynamicRHI.cpp の PlatformCreateDynamicRHI() が呼ばれる
  • 起動時の引数やデフォルトのパラメータなどから、読み込まれる RHI が決定される

git command 覚書

リモートの branch 情報の取得
git branch -a

ローカルのいらない branch の削除
git branch -D origin/4.17

リモートブランチの取得
git fetch (fetchしないとローカルで branch ができる?)
git checkout -b remotes/origin/4.17

ローカルだけにあるファイル・フォルダを削除
git clean -fd

更新を元に戻す
git checkout .

git clone -b origin/4.17 https://github.com/EpicGames/UnrealEngine.git

数学の大切さ

DirectX とか OpenGL とか、シェーダー言語は割とどうでも良くて、jpeg が圧縮できる仕組みを数学で説明できたり、クォータニオンが回転できる仕組みを数学で説明できる方が、価値がある知識だと思う。