GameDesign 板


LINE

最近尝试使用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) ----------------------------------------- 而我想传送一个整数Array进去操作 於是放一个长度=200的 int[200] MyArray 的内容就是整数 0 到 199 并将上色那行的程式码变成 color[0] = float(MyArray[id.x]) / 200; 照理来说 也要有类似的效果才是 结果却变成这样: https://i.imgur.com/AyN1vJb.png 不知道有没有大大知道 是哪边写法有问题 >///< 实在想不透~~T.T 以下是比较完成的程式码: **C#的部分(准备Shader, 制作Array): https://i.imgur.com/ESuPM8T.png **Shader的部分: https://i.imgur.com/OX9jEz0.png ------------------------------------ 另外我也做很多关於 SetInts传送整数阵列的尝试 感觉常常会有奇怪的错误 不知道使用这个方法的时候 有没有特别需要注意的地方呢~~ Q__Q 感谢 !! -- 果我们要把磁铁棒放进线圈,    线圈会说「不!!不要过来!!」而发出阻力不让磁铁棒靠近。  但是如果我们要把放进去的磁铁棒从线圈拿走,         「傲娇是一种  线圈反而会说「我…我又没有叫你走!!」而发出阻力不让磁铁棒离开。  自然现象」  这种现象不就是傲娇吗!                     新科科人杂志  所以傲娇这东西根本不是新梗,19世纪就有科学家发现傲娇了。     /民明书房 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.161.51.182 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1595219769.A.51F.html ※ 编辑: doasgloria (118.161.51.182 台湾), 07/20/2020 12:37:48
1F:推 cjcat2266: 网路上好像不少人说Unity的SetInts有问题 07/20 17:45
2F:→ cjcat2266: 我用SetInts设定int4的时候没问题,大阵列就有问题 07/20 17:45
3F:→ cjcat2266: 改用ComputeBuffer试试吧,这个一直都没问题 07/20 17:45
4F:推 a4s5d6999: 有人似乎 遇到相同的bug 所有data只有前1/4有成功送到s 07/20 17:57
5F:→ a4s5d6999: hader 07/20 17:57
7F:→ a4s5d6999: ts-failing-or-me-failing.669829/ 07/20 17:58
8F:→ doasgloria: > /// < 07/21 09:02
9F:→ doasgloria: 原来如此 是个坑 0..0 07/21 09:02
10F:推 zxc9764315: 跟GPU memory的alignment好像有点关系,你在C#端用四 07/21 09:11
11F:→ zxc9764315: 倍大的阵列,每隔四个int存一个,就可以正确作用 07/21 09:11
12F:→ doasgloria: 我来试试看楼上大大的方法 XD 07/21 11:22
一开始没试成功 乱TRY几次後可以 大概是: 1. 将原本传送 int[200] 变成 int[800] , 把原本 0-199 间隔着放 2. Shader那边 原本取第 id.x个 变成int(id.x/4) << 这个不知道为何要这样 但是这样可以成功 = = ** C#: https://i.imgur.com/e2YmxGD.png ** Shader: https://i.imgur.com/ku1Bw8X.png 如果 id.x 不 /4 就会跟原本一样结果 如果 id.x *4 那个有效着色范围又变小成1/4的感觉 Q.Q !! ※ 编辑: doasgloria (118.161.51.182 台湾), 07/21/2020 12:13:22
13F:→ doasgloria: 但是这样会造成操作上的困难 看来传送阵列还是buffer 07/21 12:15
14F:推 cjcat2266: Unity文件没有写清楚,但DirectX的文件有提到 07/21 12:16
15F:→ cjcat2266: https://bit.ly/39h2a7J 07/21 12:16
16F:→ cjcat2266: 这样用int4 array或compute buffer才不会浪费记忆体 07/21 12:16
17F:→ cjcat2266: 但int4 array又得写条件式,不如用compute buffer 07/21 12:17
18F:→ doasgloria: 没错 XD 改用compute buffer了 反而比较好做 ^0^ 07/21 12:43







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP