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

扫一扫,访问微社区

开发者专栏

关注:2100

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

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

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

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

[复制链接]  [移动端链接]
排名
5734
昨日变化
2

8

主题

70

帖子

622

积分

Rank: 9Rank: 9Rank: 9

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

专栏作家

发表于 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日久生情
2510/5000
排名
3715
昨日变化
17

2

主题

1840

帖子

2510

积分

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

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

使用道具 举报

4四处流浪
454/500
排名
9093
昨日变化
1

3

主题

251

帖子

454

积分

Rank: 4

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

使用道具 举报

3偶尔光临
271/300
排名
6958
昨日变化
2

1

主题

47

帖子

271

积分

Rank: 3Rank: 3Rank: 3

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

使用道具 举报

5熟悉之中
915/1000
排名
3503
昨日变化

1

主题

357

帖子

915

积分

Rank: 5Rank: 5

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

使用道具 举报

5熟悉之中
768/1000
排名
3583
昨日变化
1

2

主题

143

帖子

768

积分

Rank: 5Rank: 5

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

使用道具 举报

3偶尔光临
212/300
排名
7313
昨日变化
1

0

主题

10

帖子

212

积分

Rank: 3Rank: 3Rank: 3

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

使用道具 举报

7日久生情
1644/5000
排名
1557
昨日变化

0

主题

537

帖子

1644

积分

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

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

使用道具 举报

4四处流浪
436/500
排名
5554
昨日变化
43

0

主题

47

帖子

436

积分

Rank: 4

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

使用道具 举报

7日久生情
3790/5000
排名
4176
昨日变化
2

5

主题

3129

帖子

3790

积分

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

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

使用道具 举报

7日久生情
2332/5000
排名
1276
昨日变化

12

主题

866

帖子

2332

积分

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

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

使用道具 举报

7日久生情
2226/5000
排名
17967
昨日变化
2

2

主题

1857

帖子

2226

积分

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

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

使用道具 举报

6蛮牛粉丝
1172/1500
排名
2439
昨日变化

3

主题

156

帖子

1172

积分

Rank: 6Rank: 6Rank: 6

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

使用道具 举报

7日久生情
3306/5000
排名
33
昨日变化

0

主题

109

帖子

3306

积分

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

UID
4569
好友
2
蛮牛币
3502
威望
0
注册时间
2013-9-25
在线时间
629 小时
最后登录
2018-2-6

社区QQ达人

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

使用道具 举报

6蛮牛粉丝
1239/1500
排名
2361
昨日变化
15

25

主题

218

帖子

1239

积分

Rank: 6Rank: 6Rank: 6

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

使用道具 举报

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

本版积分规则

关闭

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

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