Unity3D Compute Shader 晋级 网格模拟与奶茶泡泡【四】

Unity3D Compute Shader 晋级 网格模拟与特效【四】

1.每一个不曾舞蹈的日子,都是对生命的辜负…. 2.Compute Shader对于她自己来说,所有能实现的效果只是冰山一角

by 恬纳微晰 研究Compute Shader仅此而已,是该你做点something by yourself……..

Compute Shader Show

难以信服的网格拼凑的图片

以前是点拼凑的图片,现在是网格了,信不信拉倒。。。

扭曲网格,让你信一信

哟!这就不好意思了,我不是恶意的,,,哟,你看,还能笑。。。 (不知有没有恶意,图片来自猎豹wifi软件中的)

奶茶泡泡,我反正是信以为真了

喝完了奶茶,就要吹个奶茶泡泡啊!快吹一个,你看真的变大了。。。

最后吹成这样了,你们猜,它是爆了,还是干嘛了。。。

让眼见成为现实的秘密网格实现起来是朵么难

实验到这儿,说明已经成功了,说明每个网格的确是一个网格一张图。

怎么画网格,,就是那个小方块 就是这个,Vertor3[]包含了方块点的位置

不过,你注意没有,里面有两个点重复了,如果把它们按照顺序在纸上连起来,你就知道这画方块的原理了,其实就是2个三角形的组合。

当然,你得这样保存到buffer中,我要绘制它。。。。、、、、

这是画的效果,这儿其实一看画了一张图,其实所有的图都重叠在一起了,

如果你不信,那么在你尝试的时候,如果你在camera离图近的时候会有卡顿,如果你又有充分的经验的话,那是face的重叠造成的,这儿很关键,重叠是非常耗性能的。

画出其他效果 这儿是我的发挥了,其他神马的效果都可以做出来

技术的革新保存每个像素到每个网格

如果你做过vertex fragment shader的话,发现能轻松从模型数据中获得uv坐标, 但那个问题就来了,这儿没有任何神马模型数据,而是存世界坐标??????

如果你的第一想法是,虚拟模型空间,像这样的话:

你会发现,这是多么痛苦的事情。。。。。

所以这儿我采用了一种我自己发明的Compute Shader 模型UV绑定法 就是这样

能够顺利在世界坐标中绑定,其理由是,我喜欢在ComputeShader中计算物理效果。。。

不过你可以改为UNITY_MATRIX_MVP,这样虽然感觉UNITY_MATRIX_MVP做了虚拟模型空间,但以后你就知道了,做其它复杂效果就会闹出翔。。。。

最后Compute Shader 模型UV绑定法的效果

特别技术

Instance 实例化 说起实例化,其实是个非常棒的革新,让GPU省了许多重复操作的事情。。

上图中的number 即为实例化的数据。。。。可想而知你自己试了才知道,同时对比性能分析

如果前面都知道了,网格的重叠,那么这儿的红线处就是为了什么???

我当时就没有数过来,你可以算啊,不是有计算器么

可想而知,这之前得重复了多少张。。。。

物理效果之奶茶泡泡

估计最神奇之处就是这儿的奶茶泡泡,如果是这样的话,那么前面的技术都是百搭了???

不是说过了么?Compute Shader中做运算才是发挥GPGPU的魅力之处

不过这种魅力是基于矩阵级思想,有时不能以CPU的思想来玩代码。。不然那一坨管线都不知重复了同一种指令。

代码是最诚实的,也是最有权威的

Use in C#

Use in Compute Shader

Use in Shader

我们说说话吧有的旅行是为了拓宽眼界,浏览风景名胜。

Unity3D Compute Shader 晋级 网格模拟与奶茶泡泡【四】

相关文章:

你感兴趣的文章:

标签云: