[請益] 在Unity中執行這種功能最快的方式

作者: doasgloria (青柳立夏)   2022-03-08 15:24:01
工作上很常使用到像素計算排列的功能
比如說一張 texture 進來
把它的rgb反過來顯示
在unity中我現在使用 Compute shader來進行
程式碼可能會如下:
float3 color = float3(0, 0, 0);
for (int j = 0; j < 3; j++) {
color[j] = InputImg[id.xy].rgb[2 - j];
}
Result[id.xy] = float4(color, 1);
然後在C#那邊 輸入輸出都是 RenderTexture ARGB32 這樣~
功能上都沒甚麼問題可以完成~
但是最近在使用的裝置是 Android RK3399
效能就不敷使用了 , 重點輸出是4K解析度
想問一下 做這類功能用Compute Shader這樣做已經是最快的了嗎
如果改用unity的pixel shader之類的會更有效能嗎 ??
希望有了解或有經驗的大大分享 >///<
感謝 ^__^ !!
作者: wulouise (在線上!=在電腦前)   2022-03-08 20:40:00
unity沒有matrix transform之類的功能?
作者: moremusic (要去愛)   2022-03-08 23:35:00
試試看用task或thread,平行處理
作者: azetsu (ㄊㄊ)   2022-03-10 05:45:00
如果只是要單純顯示這個效果應該直接透過shader畫出來就好吧?省下texrure在cpu端的in out
作者: meowyih (meowyih)   2022-03-10 17:49:00
我沒用unity,但是看code就是針對自己的pixel做rgb操作而不會需要附近的pixel資訊對吧? 那最快的就跟樓上說的一樣不是嗎? 直接寫shader讓顯卡同時處理大量的pixel @@
作者: NDark (溺於黑暗)   2022-03-11 23:07:00
CUDA

Links booklink

Contact Us: admin [ a t ] ucptt.com