恥を忍んでソースを晒します

void OnPostRender(){
Texture2D t_t2d = new Texture2D(800, 600);
t_t2d.ReadPixels(new Rect(0, 0, 800, 600), 0, 0);
t_t2d.Apply();

var bytes = t_t2d.EncodeToPNG();
File.WriteAllBytes(Application.dataPath + "/../SavedScreen.png", bytes);

t_go = GameObject.Find("スプライト");
t_sr = (SpriteRenderer)t_go.GetComponent("SpriteRenderer");
t_sr.enabled = true;
t_sr.sprite = Sprite.Create(
t_t2d,
new Rect(0, 0, 800, 600),
new Vector2(0.5F, 0.5F),
1F
);
}

これは、Spriteとして持つ800×600の画像を800×600の画面にピクセルパーフェクトで表示した状態で
Camera の OnPostRender で実行されるソースです
最初の3行で現在画面に表示されている内容を t_t2d(Texture2D) に取り込み
次の2行で取り込んだ t_t2d の内容を SavedScreen.png というファイル名で出力し
残りの行で800×600の画像を持っていた Sprite に書き戻しています

SavedScreen.png の画像は800×600の画像とイコールですが
Sprite に書き戻した後の画面表示はピクセルパーフェクトではない、ぼやけた表示になってしまいます
これは何が原因で、どこを直せばピクセルパーフェクトを維持できるでしょうか
png 出力までは正常なので、Sprite に書き戻すところで何か間違っているのだと思いますが
さっぱり分からないです