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

扫一扫,访问微社区

开发者专栏

关注:2286

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

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

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

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

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

8

主题

87

帖子

711

积分

Rank: 9Rank: 9Rank: 9

UID
168772
好友
7
蛮牛币
1444
威望
0
注册时间
2016-9-16
在线时间
350 小时
最后登录
2018-8-16

专栏作家

发表于 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日久生情
2536/5000
排名
3504
昨日变化
1

2

主题

1780

帖子

2536

积分

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

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

使用道具 举报

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

4

主题

252

帖子

513

积分

Rank: 5Rank: 5

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

使用道具 举报

4四处流浪
459/500
排名
5114
昨日变化
29

1

主题

74

帖子

459

积分

Rank: 4

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

使用道具 举报

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

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熟悉之中
779/1000
排名
3941
昨日变化
1

2

主题

147

帖子

779

积分

Rank: 5Rank: 5

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

使用道具 举报

4四处流浪
462/500
排名
4118
昨日变化
2

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
排名
1391
昨日变化

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
排名
4836
昨日变化
2

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日久生情
4206/5000
排名
2663
昨日变化
1

5

主题

3111

帖子

4206

积分

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

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

使用道具 举报

排名
919
昨日变化
1

16

主题

1104

帖子

3031

积分

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

7日久生情
2240/5000
排名
19324
昨日变化
4

2

主题

1858

帖子

2240

积分

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

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

使用道具 举报

6蛮牛粉丝
1278/1500
排名
2348
昨日变化
2

3

主题

161

帖子

1278

积分

Rank: 6Rank: 6Rank: 6

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

使用道具 举报

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

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
排名
2041
昨日变化

25

主题

214

帖子

1389

积分

Rank: 6Rank: 6Rank: 6

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

使用道具 举报

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

本版积分规则

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