C++

UE5.2でC++プロジェクトのビルド時間が増加した問題の対処 [UE][UE5.2]

UE5.1からUE5.2へアップデートしてから, C++プロジェクトのビルド時間が5倍以上に増えて困った.ソースコードを色々書き換えて調べたところ, GlobalShader派生クラスへのSRV, UAV設定関数をフラットに記述する数が大きく影響 というところまでわかったのでメ…

TextureArrayに対して実行可能なDrawMaterialToRenderTargetプラグイン[UE][Plugin]

TextureRenderTarget2DArray のSlice(配列の要素)を指定して DrawMaterialToRenderTarget ができるUEプラグインの公開. これは何 導入 リポジトリの NglTextureRt2dArrayUtil をコピー プラグインが読み込まれているか確認 サンプル 最後 これは何 テクスチ…

3要素ソートのメモ (3element pattern sort)

C++

3要素をパターンでソート. 安定ソートではないことに注意.久しぶりの記事がこれですよ // パターン. constexpr int k_sort_pattern_3[8][3] { {2, 1, 0}, // 000-> 0 {0, 2, 1}, // 001-> 1 {1, 0, 2}, // 010-> 2 {0 ,1, 2}, // 011-> 3 {2, 1, 0}, // 100-…

縮小バッファによる半透明パーティクル描画についてのメモ

縮小バッファに描いたものを合成するというフローによって様々な制限がかかるのだ. Lost Planet METAL GEAR SOLID 4 Tales of ARISE Lost Planet 西川善司の3Dゲームファンのための「ロスト プラネット」グラフィックス講座 シーンカラーとシーンデプスの縮…

MainViewのViewportSizeとカメラ位置,カメラ姿勢の取得

UE4.27で確認 // Get Current View Info (EditorMode, PlayMode). auto GetCurrentViewportInfo = [](const UWorld* world, FVector2D& out_viewport_size, FVector& out_view_location, FQuat& out_view_quat) { if (!world) return; #if WITH_EDITOR if (w…

ProjectRoot直下のShadersディレクトリをShaderIncludePathに追加するだけのPlugin [UE4]

これはなに 置き場所 使い方 エラーメッセージ 参考資料 これはなに プロジェクトルート/Shaders をUEのShaderIncludePathに自動追加するプラグイン. UE4.25辺りからマテリアルのCustomノードで Include File Paths を指定して外部シェーダファイルをインク…

行優先と列優先のはなし(row-major, column-major)

今ひとつ完全理解に至っていなかったので自分の言葉で残しておく 間違ってたら妖精さんが直してくれる(WEB上にたくさんある有用な記事を読んでわかる方は当記事をこれ以上読む必要は無い) Per-Component 算術演算 - Win32 apps | Microsoft Docs 行列の要素…

Houdini HDK ビルドメモ (18.0.460)

HDK(C++)のサンプルについてcmakeでVisualStudioプロジェクトを作成してビルドする機会があったのでメモ. 注意:ビルドが成功してdllが作成されるところまでの確認しかしていない(未実行). Houdini 18.0.460 VisualStudio 2017 対象のサンプルは SOP_Star 事…

UE4 ComputeShader Write, Material Read (GPGPU)

エンジンバージョン:4.24 (4.25がリリースされたら対応予定) はじめに サンプルコード 説明 RWテクスチャ定義 RWテクスチャのUAV生成 ComputeShaderによるRWテクスチャへの書き込み RWテクスチャのマテリアルでの利用 サンプルコードの概要 ComputeShaderで…

UE4 ComputeShaderでMeshの頂点バッファをリアルタイム書き換えする (GPGPU)

エンジンバージョン:4.22, 4.23 諸事情によりサンプルプロジェクト無しUE4のProceduralMeshのようなことをComputeShaderでできたら、大量の頂点をリアルタイムに操作できて面白いのではないかという思い付き。 今回はたくさんの草をリアルタイムに生成する目…

UE4 翻訳メモ Mesh Drawing Pipeline Conversion Guide for Unreal Engine 4.22

4.22で大幅に変更されたらしいメッシュ描画パイプラインのドキュメントをGoogle翻訳先生の力を借りて翻訳しつつメモdocs.unrealengine.comより詳細は docs.unrealengine.com や www.youtube.com を参照 Introduction Unreal Engine(UE4)4.22リリースでは、…

UE4 TArrayのSetNumZeroedふるまいメモ

UE4.20.2UE4のCodePluginでTArrayを多用していていつもSetNumZeroedの挙動を忘れるのでメモ TArray::SetNumZeroed(NewSize, bAllowShrinking) SetNumZeroed()によって要素数が増える場合 ゼロ値要素が末尾に付加される。元の要素は変化しない。 TArray<float> testA</float>…