Shared(共有)テクスチャサンプラーの運用について

UE4のバージョン4.6から追加された「Shared(共有)テクスチャサンプラー」ですが、みなさんどんな感じで運用されていますか?

ゲーム中に頻繁に表示されるようなテクスチャを中心に、キャラ・背景・エフェクトなどでどれくらい必要か相談しつつ
プロジェクト内でのルールとしてテクスチャのサイズの制限を設けながら運用していく形になるのでしょうか?

雑談的な感じで良いので、ご意見などいただけると嬉しいです~。

自分は実際に大規模なプロジェクトなどで使った事がないのでわかりませんが、沢山使われるエフェクトの共有テクスチャーとしてよさそうです。
エフェクトは特にストリーミングでテクスチャーを読む込むのに向かないので。
Shared テクスチャーサンプラーは事前に読み込んだテクスチャーをオンメモリーにする事によって高速に扱えるので、
特に沢山発生するパーティクルには効果が高そうです。

alweiさんReplyありがとうございます。

なるほど、エフェクトのテクスチャを共有するのに利用するというのはとても良さそうです!
ちなみに「エフェクトは特にストリーミングでテクスチャーを読み込むのに向かない」というのはどういう理由になるんでしょう?

‥あと他にはゲームの主要キャラなどゲーム中いつでも表示される可能性があるキャラクターで
汎用的なテクスチャや、1マテリアル内で「テクスチャ13枚では足りない!」という場合に利用する感じでしょうか。

背景なら、汎用的なテクスチャ(植物とか地面とか木箱とか?)に良いとか?

ご意見まだまだお待ちしていますっ

あれ、 Shared Textreはサンプラーに対しての設定だけで、テクスチャがオンメモリかなどのストリーミングの設定はしないと思っていましたが、違うのでしょうか??

必ずオンメモリーにしたいテクスチャは、テクスチャの設定でNever StreamをOnにするものと思ってました。

>sumio-katakuraさん

以前、下田さんのこちらの呟きを拝見して、オンメモリになるのかなと僕も思いました。

実装見てたんですけど、テクスチャストリーミングに関する設定はなかったと思われます。

Shared Texture Samplerは、
マテリアル(シェーダ)で使われるテクスチャサンプラを、UE4がエンジン内部に確保してるサンプラ(2つのShared: Wrap, Shared: Clamp)を設定するだけかと。
Texture Groupが上書きされることもないようです。

うーん。どこか見落としているのかな?

それで合っていると思います。
DX11などでは、一つのシェーダで参照できるテクスチャとサンプラが、
テクスチャ数最大: 128
サンプラ数最大 : 16
と限定されています。

UE4のテクスチャはサンプラを内部で保持しているので、マテリアル内でテクスチャを増やしていくとサンプラも増えていき、すぐにサンプラ数最大にあたってしまいます。
(”13枚”なのは、UE4が実は内部で3枚ほど使っているからと思われます。ライトマップとかシャドウマップ用ですかね。)

ということで、Shared: Wrap/Clampという共用サンプラを使うことで、マテリアル内でテクスチャを用いても使用サンプラ数は増大しない。。。結果、テクスチャ数の最大値までテクスチャを使える。

なので、基本的には13枚以上のテクスチャを使いたいとき使用すれば良いと思います。
また、13枚未満でも、(サンプラの設定がShared: Wrap/Clampと同等ならば)、Shared: Wrap/Clampに設定することで、シェーダが消費するレジスタ(サンプラ数)が減り、若干の高速化が見込めるかもしれません。
試してみたいところです。

なるほど、自分もオンメモリーになると聞いていたので、そういうものかと思っていました。
ここらに関しては本当に情報がないので、とても勉強になります。

こういう議論はもっとしていきたいですね。

>sumio-katakuraさん

Shared Textureサンプラーではストリーミングの設定が上書かれる訳ではないのですね。
細かく教えて頂いてありがとうございます!

「若干の高速化が見込めるかも」というのもとてもありがたい情報です。

Never Streamはテクスチャのプロパティにありますね。

こちらをONにするとオンメモリーになるのですね‥!

以前、教えて頂いたこちらもせっかくなので貼り付けておきます。

>Alweiさん

どんどん議論していきたいですね!

今一度確認しましたが、やはりサンプラーの設定を変更しているのみに見えます。
Texture Streaming(つまり、テクスチャのメモリへの読み込み)には関与しないと思わます。

「若干」! 「かも」! この2点が重要です!

Twitterでの議論だとすぐに流れてしまうので、読み返せるフォーラムは使いやすいと思います。