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

扫一扫,访问微社区

开发者专栏

关注:2210

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

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

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

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

[复制链接]  [移动端链接]
排名
5884
昨日变化
6

8

主题

74

帖子

641

积分

Rank: 9Rank: 9Rank: 9

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

专栏作家

发表于 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日久生情
2533/5000
排名
3332
昨日变化
4

2

主题

1780

帖子

2533

积分

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

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

使用道具 举报

4四处流浪
491/500
排名
8665
昨日变化
8

4

主题

252

帖子

491

积分

Rank: 4

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

使用道具 举报

4四处流浪
413/500
排名
5355
昨日变化
9

1

主题

67

帖子

413

积分

Rank: 4

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

使用道具 举报

5熟悉之中
976/1000
排名
3387
昨日变化
34

1

主题

367

帖子

976

积分

Rank: 5Rank: 5

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

使用道具 举报

5熟悉之中
774/1000
排名
3784
昨日变化
10

2

主题

146

帖子

774

积分

Rank: 5Rank: 5

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

使用道具 举报

4四处流浪
383/500
排名
4676
昨日变化
61

0

主题

11

帖子

383

积分

Rank: 4

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

使用道具 举报

7日久生情
1813/5000
排名
1410
昨日变化
4

0

主题

579

帖子

1813

积分

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

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

使用道具 举报

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

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日久生情
4048/5000
排名
3184
昨日变化
33

5

主题

3109

帖子

4048

积分

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

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

使用道具 举报

排名
1073
昨日变化
2

13

主题

1029

帖子

2755

积分

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

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

2

主题

1857

帖子

2236

积分

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

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

使用道具 举报

6蛮牛粉丝
1273/1500
排名
2254
昨日变化
8

3

主题

161

帖子

1273

积分

Rank: 6Rank: 6Rank: 6

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

使用道具 举报

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

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蛮牛粉丝
1383/1500
排名
1964
昨日变化
1

25

主题

214

帖子

1383

积分

Rank: 6Rank: 6Rank: 6

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

使用道具 举报

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

本版积分规则

关闭

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

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