作者doasgloria (青柳立夏)
看板GameDesign
標題[請益] 在Unity中執行這種功能最快的方式
時間Tue Mar 8 15:24:01 2022
工作上很常使用到像素計算排列的功能
比如說一張 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之類的會更有效能嗎 ??
希望有了解或有經驗的大大分享 >///<
感謝 ^__^ !!
--
如果我們要把磁鐵棒放進線圈,
線圈會說「不!!不要過來!!」而發出阻力不讓磁鐵棒靠近。
但是如果我們要把放進去的磁鐵棒從線圈拿走, 「傲嬌是一種
線圈反而會說「我…我又沒有叫你走!!」而發出阻力不讓磁鐵棒離開。 自然現象」
這種現象不就是傲嬌嗎! 新科科人雜誌
所以傲嬌這東西根本不是新梗,19世紀就有科學家發現傲嬌了。 /民明書房
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.104.205 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1646724246.A.8CA.html
推 wulouise: unity沒有matrix transform之類的功能? 03/08 20:40
推 moremusic: 試試看用task或thread,平行處理 03/08 23:35
→ azetsu: 如果只是要單純顯示這個效果 03/10 05:45
→ azetsu: 應該直接透過shader畫出來就好吧? 03/10 05:45
→ azetsu: 省下texrure在cpu端的in out 03/10 05:45
推 meowyih: 我沒用unity,但是看code就是針對自己的pixel做rgb操作 03/10 17:49
→ meowyih: 而不會需要附近的pixel資訊對吧? 那最快的就跟樓上說的 03/10 17:49
→ meowyih: 一樣不是嗎? 直接寫shader讓顯卡同時處理大量的pixel @@ 03/10 17:50
推 NDark: CUDA 03/11 23:07