Unity3D Compute shader 新解粒子堆积矩阵【二】

12 篇文章 0 订阅
11 篇文章 0 订阅

Unity3D Compute shader 新解粒子堆积矩阵【二】

1.Compute Shader都出来了好些年了,幸好Unity3D 加入了该特性,当然U3D本着易开发操作平台,在u3d中实现compute shader起来是相当轻松的。

2.除了Compute Shader,还有 Vertex shader,Geometry shader,Fragment shader ; Tesselation shader,Domain shader,Hull Shader ,如果你觉得有一种都想学或者饥渴而不是去厌倦的话,你将来绝对会牛X的,那么请先受小弟一拜。


注意注意:请不要邪恶的复制我!!!不然割了你的小XXX。
http://blog.csdn.net/baidu_26153715/article/details/45674547 恬纳微晰 所有。。。
你可以转载啊,转前请留翔。。不用谢。。。


  • 彩色立方体

    这里写图片描述
    记得2015.3.0那天,我使用了全身力气搜尽了Compute Shader的资料,没有发现它的一点有用的线索,那时度娘要卖萌,收到的尽是什么恶心的新闻,于是借助了隔壁老王的VPN神器,在谷歌上找到了一篇Unity ComputeShader的文章http://kylehalladay.com/blog/tutorial/2014/06/27/Compute-Shaders-Are-Nifty.html(就是它,你使劲戳它秒进),至于然后呢我就直接洗洗睡吧。

  • 立方体原始外貌
    这里写图片描述

    我当时有进过微软官网的,因为这毕竟是DX!!,所以进了官网溜达了一转,然后又不小心出来了,”出来了”!。。。对!。。当时就是这么出来的,因为笔记本触摸板真TMD的机智,机智的触摸到了这里写图片描述 ← 它。最后,我就趟了睡了。

  • 立方体疯狂的移动?
    这里写图片描述

我开始有点不淡定了,为嘛这样子,ComputeShader为嘛这么欺负人,因为我对这张图这里写图片描述看了不下5遍/day的节奏,这道坎卡死了,当然我最后看懂了,因为我始终是以应试教育的思想把它作为单纯的数字坐标,于是我想微软有那么傻B吗,弄一坨数学翔,他其实就是在欧几里坐标空间内分了许多小方块(线程组),再加上自身的SV_GroupThreadID不就是每个线程的空间坐标吗!!!?? (应试教育牛逼啊,本来都是TMD简单的东西却也能让一个自以为数学好的人拉翔)


关键技术实现

  1. 立方体的颜色

    这里写图片描述

    你猜这是几维的UV坐标?(就是这个o.uv)
    这里写图片描述,如果前面都理解,那么64意义是把UV定在(0,1)区间。

    这个嘛!就是传说中的UV坐标颜色。
    这里写图片描述

  2. 立方体的点位置

    这里写图片描述

    如果前面你都理解了,那么点的位置不就是欧几里坐标吗?
    关键是,你得像数组一样把数组每个元素都存有坐标到buffer才是,,,,
    那怎么一个一个的元素遍历?
    如果你把它理解了,那 这里写图片描述就对了,不过SV_GroupIndex是在一个组内的点编号。
    问题是,我们这儿要的是权威的所有点的编号,哈哈哈,我不告诉你。
    不过,如果你的Dispatch为(1,1,1),那么SV_GroupIndex就相当于所有点的唯一编号。

  3. 移动立方体?能姨妈?
    这里写图片描述

我就这么移动,就这么任性!

 C#中的任性

这里写图片描述

 Compute Shader中的任性

这里写图片描述

当然,一定要随性子来,想怎么移就怎么移。

留给喜欢看疯骚的代码的伙伴

  1. Use in C#
    这里写图片描述
  2. Use in ComputeShader
    这里写图片描述
  3. Use in Shader
    这里写图片描述
  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值