5️⃣
【UE5】Landscapeのペイントがバグってしまう時の対処
環境
- Unreal Engine 5.1.1
- Windows 11
バグの内容
Landscape 様々な地形を塗り分けたく、 Layer Blendを拡張していたら、
塗って保存した後に以下の様に、一部のセクションのテクスチャが表示されない状態となりました。
原因
ログを見ると、以下のような警告が表示されていました。
LogShaderCompilers: Warning: Failed to compile Material
/Game/MyContent/Material/M_Landscape.M_Landscape
(MI:/Game/MyContent/Map/NormalScaleMap.NormalScaleMap:PersistentLevel.Landscape_6.LandscapeMaterialInstanceConstant_0)
for platform PCD3D_SM6, Default Material will be used in game.
Shader is using too many Samplers: 17 (only 16 supported)
調査を進めたところ、DirectX11の仕様で、一つのマテリアルには 16個 までしか
テクスチャが割り当てられないため、この問題が起きているようです。
対処
Texture Sample
ノードの設定項目に Sampler Source
という項目があるので、 Shared: Wrap
に設定してください。
これを全ての Texture Sample
に設定します。
マテリアルの Stats
を表示しておくと、
Texture samplers
の数が表示されます。
これが 16 以下となっていれば問題が解決しているはずです。
結果
参考サイト
Discussion