関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2017.01.18UE4UE/ Material
UE4のマテリアル内でテクスチャを利用する場合、”TextureSample”というノードにTextureをアサインして使用しますが、
DX11の仕様で、単一のシェーダー内で使用できるユニークなTextureSamplerの数は最大16個と決まっているため、
17枚以上のテクスチャを使用するとエラーとなり、マテリアルが正しく表示されません。
■TextureSampleを16個使用(ギリギリセーフ)
■TextureSampleを17個使用(アウト)
キャラクターやランドスケープなど、複数の質感を単一のマテリアルで表現する必要がある場合、16枚という制限は中々煩わしいものです。
今回は、共有テクスチャサンプラー(Shared Texture Sampler)という機能を利用して、
17個以上のTextureSampleを使えるようにしてみたいと思います。
TextureSampleノードを選択し、”Sampler Source”を“Shared:Wrap”か“Shared Clamp”に変更します。
(“Shared:Wrap”はタイリングしたときに繰り返し。”Shared:Clamp”はタイリングしたときに繰り返さない。)
↓20個のTextureSampleすべてを”Shared:Wrap”設定にした結果がこちらです。
統計情報では、TextureSampler数は1/16となっており、もちろんエラーは出ていません。
この方法であれば、DX11の単一シェーダー内のテクスチャ数の限界である最大128枚までいけるようですが、