开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2006

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

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

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

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

[复制链接]  [移动端链接]
排名
5854
昨日变化
44

8

主题

61

帖子

582

积分

Rank: 9Rank: 9Rank: 9

UID
168772
好友
7
蛮牛币
1512
威望
0
注册时间
2016-9-16
在线时间
281 小时
最后登录
2017-12-13

专栏作家

发表于 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日久生情
1525/5000
排名
5628
昨日变化
46

2

主题

1119

帖子

1525

积分

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

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

使用道具 举报

4四处流浪
430/500
排名
9682
昨日变化
5

3

主题

250

帖子

430

积分

Rank: 4

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

使用道具 举报

3偶尔光临
185/300
排名
8986
昨日变化
90

1

主题

37

帖子

185

积分

Rank: 3Rank: 3Rank: 3

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

使用道具 举报

5熟悉之中
729/1000
排名
4247
昨日变化
31

1

主题

282

帖子

729

积分

Rank: 5Rank: 5

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

使用道具 举报

5熟悉之中
715/1000
排名
3715
昨日变化
2

2

主题

130

帖子

715

积分

Rank: 5Rank: 5

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

使用道具 举报

排名
12893
昨日变化
12

0

主题

8

帖子

91

积分

Rank: 2Rank: 2

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

使用道具 举报

6蛮牛粉丝
1469/1500
排名
1832
昨日变化
10

0

主题

502

帖子

1469

积分

Rank: 6Rank: 6Rank: 6

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

使用道具 举报

3偶尔光临
220/300
排名
9443
昨日变化
108

0

主题

39

帖子

220

积分

Rank: 3Rank: 3Rank: 3

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

使用道具 举报

7日久生情
3280/5000
排名
4934
昨日变化
36

4

主题

2740

帖子

3280

积分

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

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

使用道具 举报

7日久生情
2024/5000
排名
1457
昨日变化
2

9

主题

745

帖子

2024

积分

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

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

使用道具 举报

7日久生情
2062/5000
排名
17951
昨日变化
11

2

主题

1723

帖子

2062

积分

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

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

使用道具 举报

6蛮牛粉丝
1020/1500
排名
2696
昨日变化
1

3

主题

138

帖子

1020

积分

Rank: 6Rank: 6Rank: 6

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

使用道具 举报

7日久生情
3300/5000
排名
22
昨日变化

0

主题

108

帖子

3300

积分

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

UID
4569
好友
2
蛮牛币
3490
威望
0
注册时间
2013-9-25
在线时间
628 小时
最后登录
2017-12-4

社区QQ达人

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

使用道具 举报

6蛮牛粉丝
1036/1500
排名
3034
昨日变化
17

24

主题

205

帖子

1036

积分

Rank: 6Rank: 6Rank: 6

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

使用道具 举报

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

本版积分规则

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