游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2348

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 4221|回复: 54

[3yangyang9] Unity运用GPU代替CPU处理和计算简单测试

[复制链接]  [移动端链接]
排名
5339
昨日变化
1

8

主题

89

帖子

797

积分

Rank: 9Rank: 9Rank: 9

UID
168772
好友
7
蛮牛币
1488
威望
0
注册时间
2016-9-16
在线时间
402 小时
最后登录
2018-11-5

专栏作家

发表于 2017-11-14 15:47:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
随着游戏玩法的增强,计算的多量化,我们的CPU并不足以迅速的处理这些问题,而Unity给我们开放了一个接口,我们需要用它来处理大量的运算;
我们可以把大量的处理运算的逻辑放入这个Shader中,用GPU的并行能力来计算,这里简单的说一说他的使用方式和如何把参数传入和传出。让我们像一个方法一样调用。
首先:在Unity中我们可以创建一个ComputeShader
1.png
打开之后会发现一个这样的脚本:
2.png
简单的介绍一下,
1、这个#pragmakernel  Multiply 这是一个内核, 也可以称作入口。这个至少有一个!
这个Multiply请红线标注,很重要,我们在代码里需要用到它;
2、接下来就是一个结构体,这个结构体是我们定义的一个结构体。我们用它来和外面的结构体相呼应。
3RwStructuredBuffer<VecMatpair>dataBuffer  相当于我们声明的一个可读写的变量我用C#表示:   VecMatPair[] dataBuffer
4、就是方法主体,跟第一条呼应,外部会调用这个类似于Main函数的方法;可以写一些简单的逻辑,给上面的变量赋值:(这里值得重点一说,这个变量又当输入又当输出,注意!);
这里我们的ComputeShader也就构建完成了;
下面进行C#的编写,让其呼应,传入和输出;
3.png
1、  我们需要定义一个和Shader里面呼应的结构体。
2、  获取这个shader,我们直接拖入就OK;
然后变量基本就完事了
我们看一下代码主体:
4.png
除去单行符号,我们一行一行解释,千万别乱:
1、  声明一个长度为15的结构体,这是我们的输入参数;(然而并用不到15个)
2、  制定一个循环,我给他了一个赋值,都是相同的值;
循环体里的内容跳过;
3、  这个很重要,还记得让你们标红线的地方吗。这个就是获取这个入口的标识;
4、  下面这个数组结构,用来最后来收取需要的5个数据;
5、  这里是测试打印跳过;
6、  ComputeBuffer 这个也很重要,你还需要声明一个Buffer 参数需要制定这个收取的长度,和这个数组的所有占用字节(提前计算(这里就是Float=4 因为是2个Float=8 又因为是个长度为5的数组=5*8=40 ));
7、  下面就是一套流程了,对,就是走走流程;
关联这个数据结构和Shader的变量相关联;
SetData()把需要传入的数据送进Shader;
接着!重点,一定要运行,第一开始我写完发现怎么都没变化,一定要运行Shader;Dispatch();
最后收取返回数据(我们需要接收这40个字节的数据);
打印结果附图:
5.png

本帖被以下淘专辑推荐:


回复

使用道具 举报

7日久生情
2783/5000
排名
2682
昨日变化
14

2

主题

1843

帖子

2783

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
241666
好友
0
蛮牛币
10617
威望
0
注册时间
2017-9-6
在线时间
422 小时
最后登录
2018-11-12
发表于 2017-11-15 07:04:21 来自Mobile--- | 显示全部楼层
此帖仅作者可见

使用道具 举报

5熟悉之中
513/1000
排名
8681
昨日变化
7

4

主题

251

帖子

513

积分

Rank: 5Rank: 5

UID
247659
好友
0
蛮牛币
1403
威望
0
注册时间
2017-10-9
在线时间
128 小时
最后登录
2018-9-12
发表于 2017-11-15 07:41:18 来自Mobile--- | 显示全部楼层
此帖仅作者可见

使用道具 举报

5熟悉之中
515/1000
排名
4734
昨日变化
2

1

主题

83

帖子

515

积分

Rank: 5Rank: 5

UID
31200
好友
0
蛮牛币
980
威望
0
注册时间
2014-6-25
在线时间
141 小时
最后登录
2018-11-2
QQ
发表于 2017-11-15 09:10:15 | 显示全部楼层
此帖仅作者可见

使用道具 举报

6蛮牛粉丝
1016/1500
排名
3450
昨日变化
1

1

主题

371

帖子

1016

积分

Rank: 6Rank: 6Rank: 6

UID
122160
好友
1
蛮牛币
1669
威望
0
注册时间
2015-9-10
在线时间
236 小时
最后登录
2018-8-1
发表于 2017-11-15 09:18:29 | 显示全部楼层
此帖仅作者可见

使用道具 举报

5熟悉之中
791/1000
排名
4082
昨日变化
1

2

主题

151

帖子

791

积分

Rank: 5Rank: 5

UID
91268
好友
4
蛮牛币
96
威望
0
注册时间
2015-4-11
在线时间
299 小时
最后登录
2018-11-8
发表于 2017-11-15 09:18:36 | 显示全部楼层
此帖仅作者可见

使用道具 举报

4四处流浪
462/500
排名
4280
昨日变化
5

0

主题

12

帖子

462

积分

Rank: 4

UID
104581
好友
0
蛮牛币
954
威望
0
注册时间
2015-7-29
在线时间
126 小时
最后登录
2018-7-27
发表于 2017-11-15 09:29:55 | 显示全部楼层
此帖仅作者可见

使用道具 举报

7日久生情
1884/5000
排名
1456
昨日变化
1

0

主题

589

帖子

1884

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
164723
好友
0
蛮牛币
3518
威望
0
注册时间
2016-8-29
在线时间
469 小时
最后登录
2018-7-31
发表于 2017-11-15 09:36:33 | 显示全部楼层
此帖仅作者可见
[发帖际遇]: datouhuajuan 发帖时在路边捡到 2 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

使用道具 举报

5熟悉之中
557/1000
排名
5020
昨日变化
4

0

主题

48

帖子

557

积分

Rank: 5Rank: 5

UID
148615
好友
0
蛮牛币
888
威望
0
注册时间
2016-5-15
在线时间
239 小时
最后登录
2018-4-5
发表于 2017-11-15 09:53:27 | 显示全部楼层
此帖仅作者可见

使用道具 举报

7日久生情
4317/5000
排名
2348
昨日变化
2

5

主题

3109

帖子

4317

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
209186
好友
5
蛮牛币
5515
威望
0
注册时间
2017-3-1
在线时间
631 小时
最后登录
2018-11-8
发表于 2017-11-15 10:06:20 | 显示全部楼层
此帖仅作者可见

使用道具 举报

排名
794
昨日变化
3

17

主题

1148

帖子

3273

积分

Rank: 9Rank: 9Rank: 9

UID
68430
好友
13
蛮牛币
11820
威望
0
注册时间
2015-1-14
在线时间
884 小时
最后登录
2018-11-12
发表于 2017-11-15 10:14:27 | 显示全部楼层
此帖仅作者可见

使用道具 举报

7日久生情
2244/5000
排名
19907
昨日变化
16

2

主题

1859

帖子

2244

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
185807
好友
0
蛮牛币
2914
威望
0
注册时间
2016-11-22
在线时间
358 小时
最后登录
2018-11-1
发表于 2017-11-15 10:33:08 | 显示全部楼层
此帖仅作者可见

使用道具 举报

6蛮牛粉丝
1290/1500
排名
2416
昨日变化
2

3

主题

161

帖子

1290

积分

Rank: 6Rank: 6Rank: 6

UID
45560
好友
1
蛮牛币
42
威望
0
注册时间
2014-9-18
在线时间
564 小时
最后登录
2018-10-26
发表于 2017-11-15 12:23:21 | 显示全部楼层
此帖仅作者可见

使用道具 举报

7日久生情
3309/5000
排名
79
昨日变化

0

主题

109

帖子

3309

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
4569
好友
2
蛮牛币
3507
威望
0
注册时间
2013-9-25
在线时间
630 小时
最后登录
2018-3-16

社区QQ达人

发表于 2017-11-15 12:54:15 | 显示全部楼层
此帖仅作者可见

使用道具 举报

6蛮牛粉丝
1389/1500
排名
2128
昨日变化
1

25

主题

214

帖子

1389

积分

Rank: 6Rank: 6Rank: 6

UID
89579
好友
3
蛮牛币
2786
威望
0
注册时间
2015-4-5
在线时间
530 小时
最后登录
2018-5-28
发表于 2017-11-15 13:18:48 | 显示全部楼层
此帖仅作者可见

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关闭

站长推荐 上一条 /1 下一条

快速回复 返回顶部 返回列表