我目前正在Unity 5中的一個項目上工作。我正在嘗試着使用Camera.RenderWithShader
將一個着色器應用到我的相機之一,然後讀取並保存圖像。下面是代碼:Camera.RenderWithShader函數無法正常工作
Texture2D screenshot = new Texture2D(this.screenWidth, this.screenHeight, TextureFormat.RGB24, false);
this.mainCamera.RenderWithShader(this.myShader,"RenderType");
screenshot.ReadPixels(new Rect(0, 0, this.cameraWidth, this.cameraHeight), 0, 0);
的問題是,在我的截圖質地保存爲位圖,着色器不應用於整個圖像上。
但是,如果我使用Camera.Render()
並使用OnRenderImage(RenderTexture,RenderTexture)
來應用着色器,它可以工作。
void OnRenderImage(RenderTexture source, RenderTexture destination)
{
Graphics.Blit(source, destination, this.disparityMaterial);
}
所以,我的問題是:這兩種方法,我怎麼可以讓Camera.RenderWithShader
功能正常工作之間的區別是什麼?