[请益] 在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