2016-05-05 14 views
0

Unityでは、DirectXプラグインを使用してレンダリングテクスチャを手続き的に(データを書き込むことによって)更新しています。レンダーテクスチャを最初に作成するには、次のようなことを行います。RenderTextureをメッシュにレンダリングする

RenderTexture myTexture = new RenderTexture (100, 100, 0); 
myTexture.Create(); 
transform.GetComponent<Renderer>().material.mainTexture = myTexture; 
transform.GetComponent<Renderer>().enabled = true; 

その後、必要に応じてテクスチャを変更します。しかし、このオブジェクトの素材(現実の世界で見えるもの)は変化しません。そのオブジェクトをクリックして素材をクリックし、このRenderTextureをクリックすると、実際のメッシュで更新されない何らかの理由で更新が見えます。どうしてこれなの?私はさまざまなビルトインシェイダーを使ってみましたが、それは役に立たなかったようです。一つのアイデアとして、RenderTextureをメッシュに描画するためのシェーダーを書く方法はありますか?

答えて

0

Materialの代わりにRawImageを使用し、そのRawImageのテクスチャにレンダリングテクスチャを適用するだけです(mainTextureではなく、テクスチャのみ)。シェーダを使用したい場合は、その生のイメージにマテリアルを適用することもできます。

関連する問題