テラシュールブログスマートフォン用の表示で見るテラシュールブログ旧テラシュールウェアブログUnity記事。UnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。以前RenderTextureにテクスチャをバックバッファとして展開し、Spriteとして使用することでSetPassを抑えて使用する方法に聞かれたので、一応ココに書いておきます。結論としては、別にSpriteとして使用しなくても良いよねって話です。(昨日の記事はコレの検証中に出たというか)Sprite云々とは別にRenderTextureをTexture2Dに流し込む話は時々聞くので、需要はあるのかもしれません。APIのドレをどの様に使用してるかで動作が変わってくると思うので、余りお薦めはしません。代替案2追記1関連RenderTextureをTexture2Dにする出来るか出来ないかと言われれば、一応出来ます。流れとしては、こんな感じです。RenderTextureを元にTexture2Dを作るTexture2Dの中身をRenderTextureにするTexture2DをSpriteにするTexture2DをSpriteに設定します。rtがrendertexture、tex2DがTexture2Dです。pivot);rectとpivotはスプライトに使用する範囲と中心点です。これで指定範囲のスプライトが作られます。後はTexture2DにRenderTextureの中身を流し込みます。RenderTextureをTexture2Dに流し込むRenderTextureの中身を元にTexture2Dを作成します。Texture2DとRenderTextureの両方を作ると無駄なので、RenderTextureのポインタを取得し、そのガワと一致するようにTexture2Dのガワを設定します。コード的にはこんな感じです。ptr);次に中身を流し込みます。rt.GetNativeTexturePtr();tex2D.UpdateExternalTexture(ptr);これで、見た目はTexture2D・中身はRenderTextureの名探偵が出来上がります。APIに依存するため、多分安定して動作しません。DirectX11では動きませんでした。ガワはTexture2Dですが中身が違う為か、GetPixel等のTexture2D独自のAPIが使えたり使えなかったりします。これは失敗すると「Unityエディタが落ちる」のもお薦めしない理由の一つです。今回はSpriteの使用を前提として考えたためRenderTextureをTexture2Dに流し込みましたが、素直にSpriteとか使わず、やはりquad+rendertextureで良い気がします。描画順はRendererのsortingOrderとsortingLayerNameでSpriteと同じような感じに設定できます。その際、マテリアルはTransparent(透明)な奴を使ってください。Transparentシェーダーとか楽で良さそうです。Renderer.sortingLayerNameテクスチャの差替はMaterialPropertyBlockを使用すれば、かなり低コストで行えます。設定順を少し考えた方が良いかもしれませんが、まぁ。SetPassを減らすアプローチは、テクスチャのUV変更をメッシュ側でやればOKです。flipも似たような感じで出来ます。RenderTextureを使うようなケースなので、別にここまでしなくても良いとは思いますが。考えましたが、最終的にはこっちの方が楽な気がします。代替案2追記を書いてて思い出しましたが、Texture2D.PackTexturesなんてのもありました。これ使えば別にRenderTexture使わなくてもなんとかなったんじゃ感が...もしくは(Monoのメモリが膨らみそうですが)SetPixelでスタンプみたいに貼りまくるとかでしょうか。(検証したところ、どちらもTextureにReadWriteを要求する上、GPUに上がってるのが1枚しか結合されてなかったり、少し不思議な挙動を)SetPass削減は良い事ですが、ソレをするためのコストが本当に適正かと言われれば...どうなんでしょう。気にしすぎな気がしなくも。追記1このブログ記事を書く際、内容及び表現に不快感を与えてしまった事をお詫び致します。ModeがMultipleなスプライトを使用するAddressableでMultiSpriteを使用する方法についてです。(1)月別アーカイブはてなブログをはじめよう!tsubaki_t1さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。