[請益] RenderTexture會造成記憶體一直消耗嗎

作者: doasgloria (青柳立夏)   2020-05-28 17:02:19
目前做了兩支Unity程式
都是透過Camera物件讀取畫面到target texture
(可能是來自影片 或是場景)
然後將畫面透過Compute Shader處理後
貼到蓋滿 Canvas 的 RawImage 物件上
功能已經達到我的需求
可是我發現 只要開著程式
記憶體都會不斷上升達到100% >///<
我的方式是
https://i.imgur.com/BQhdpfX.png
Result 是最後輸出的結果 , ViewXXXXX 都是輸入
https://i.imgur.com/ILMoDDA.png
最後在 Update函式中, 把算出的 RenderTexture貼上去
功能沒問題
但是問題就是 什麼都不做 我的記憶體也不斷上升
到100%就卡死了 T.T
整個遊戲中 唯一有在不斷UPDATE的只有這部分
感覺應該是這邊的問題 但是不確定 !!
有大大可以幫忙猜測可能的原因嗎 太感謝了 >.< !!
作者: zxc9764315 (Norus)   2020-05-28 17:05:00
每個update都new一個RT當然會爆炸啊XD
作者: doasgloria (青柳立夏)   2020-05-28 17:07:00
可是我都是用同一個名稱 Result 他不會自動蓋掉捨棄嗎
作者: wix3000 (癢,好吃)   2020-05-28 17:08:00
不要相信 GC... XD
作者: zxc9764315 (Norus)   2020-05-28 17:20:00
看來你的程式觀念還有待加強喔
作者: hala932 (成王敗寇)   2020-05-28 17:23:00
你可以試試看update前 先release Result
作者: doasgloria (青柳立夏)   2020-05-28 17:55:00
我試了先release() 不過會造成 下面新的還沒出來時會沒畫面 我再來想想看方法 T.T
作者: sirius65482 (絕影)   2020-05-28 20:14:00
你把舊的Destroy看看
作者: SecondRun (雨夜琴聲)   2020-05-28 22:07:00
只存幾個弄成pool呢?
作者: doasgloria (青柳立夏)   2020-05-29 09:16:00
回報: 在把RawImage.texture貼完後 使用Destroy加個延遲時間: Destroy(theRT, 5f); 這樣可以好像可以搞定=w=
作者: cjcat2266 (CJ Cat)   2020-05-29 10:10:00
不要這樣做...這樣只是給GC徒增負擔,然後一直佔著60*5份材質記憶體,就乖乖的重複使用同一個材質吧
作者: doasgloria (青柳立夏)   2020-05-29 16:31:00
後來改成只用一個了 XD 真的太新手了 !

Links booklink

Contact Us: admin [ a t ] ucptt.com