PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
GameDesign
[程式] ComputeShader傳送整數陣列的奇怪問題
作者:
doasgloria
(青柳立夏)
2020-07-20 12:36:05
最近嘗試使用unity compute shader中
傳送 Array 的操作~
遇到一個奇怪的問題
以下是做一個簡單的漸層
https://i.imgur.com/YVuXH3l.png
這是一個 200*200的 RawImage
然後用Compute Shader輸出的RenderTexture貼上
Shader 內容只要這樣:
https://i.imgur.com/CYxEU2a.png
只要三行就能完成
主要就是這一行:
color[0] = float(id.x) / 200 ;
就可以使RGB的R 從(0/200)漸層到(199/200)
作者:
cjcat2266
(CJ Cat)
2020-07-20 17:45:00
網路上好像不少人說Unity的SetInts有問題我用SetInts設定int4的時候沒問題,大陣列就有問題改用ComputeBuffer試試吧,這個一直都沒問題
作者: a4s5d6999
2020-07-20 17:57:00
有人似乎 遇到相同的bug 所有data只有前1/4有成功送到shader
https://forum.unity.com/threads/computeshader-setin
ts-failing-or-me-failing.669829/
作者:
doasgloria
(青柳立夏)
2020-07-21 09:02:00
> /// <原來如此 是個坑 0..0
作者:
zxc9764315
(Norus)
2020-07-21 09:11:00
跟GPU memory的alignment好像有點關係,你在C#端用四倍大的陣列,每隔四個int存一個,就可以正確作用
作者:
doasgloria
(青柳立夏)
2020-07-21 11:22:00
我來試試看樓上大大的方法 XD但是這樣會造成操作上的困難 看來傳送陣列還是buffer
作者:
cjcat2266
(CJ Cat)
2020-07-21 12:16:00
Unity文件沒有寫清楚,但DirectX的文件有提到
https://bit.ly/39h2a7J
這樣用int4 array或compute buffer才不會浪費記憶體但int4 array又得寫條件式,不如用compute buffer
作者:
doasgloria
(青柳立夏)
2020-07-21 12:43:00
沒錯 XD 改用compute buffer了 反而比較好做 ^0^
繼續閱讀
[情報] 泥巴兔黏土特效工具公測開始
cjcat2266
[程式] 在UE4 開放場景建立Navigation Mesh
yekdniw
[情報] Unreal Fest Online
csvt32745
[心得] 北美遊戲業近兩年面試心得
JKT48
[程式] Unity的Shader程式碼有辦法隱藏起來嗎
doasgloria
[情報] 自主遊戲開發得以延續的方法─經驗談翻譯
thirdjean
[情報] 2020台北遊戲開發者論壇7/11~12線上免費
rhox
[程式] 泥巴兔特效蒙太奇
cjcat2266
[程式] 了解UE4 Landscape的組成元件
yekdniw
[美術] 使用透明通道繪製頭髮
sampp1213205
Links
booklink
Contact Us: admin [ a t ] ucptt.com