此篇文章接上次一的平面热力图,有粉丝提出需要一个点状的,这个需求在平面热力图上更新即可。
《平面热力图》博文
微信号:ITComputerGraph
更多精彩内容,关注公众号《IT木子李》
只是在原来的基础上加了一小部分代码,在每一个mesh顶点处生成box,这里需要注意的是box的顶点信息,傻傻分不清楚有没有
g2f o;
o.uv = inPoint[0].uv;
float4 v0 = float4( 1, 1, 1,0)*_Size + float4(inPoint[0].pos);
float4 v1 = float4( 1, 1,-1,0)*_Size + float4(inPoint[0].pos);
float4 v2 = float4( 1,-1, 1,0)*_Size + float4(inPoint[0].pos);
float4 v3 = float4( 1,-1,-1,0)*_Size + float4(inPoint[0].pos);
float4 v4 = float4(-1, 1, 1,0)*_Size + float4(inPoint[0].pos);
float4 v5 = float4(-1, 1,-1,0)*_Size + float4(inPoint[0].pos);
float4 v6 = float4(-1,-1, 1,0)*_Size + float4(inPoint[0].pos);
float4 v7 = float4(-1,-1,-1,0)*_Size + float4(inPoint[0].pos);
ADD_TRI(v0, v2, v3);
ADD_TRI(v3, v1, v0);
ADD_TRI(v5, v7, v6);
ADD_TRI(v6, v4, v5);
ADD_TRI(v4, v0, v1);
ADD_TRI(v1, v5, v4);
ADD_TRI(v7, v3, v2);
ADD_TRI(v2, v6, v7);
ADD_TRI(v6, v2, v0);
ADD_TRI(v0, v4, v6);
ADD_TRI(v5, v1, v3);
ADD_TRI(v3, v7, v5);
这个shader有个麻烦点就是我们要提前创建好一个mesh面片,多分一些顶点,当顶点多的时候你会发现,频繁改变box大小的时候卡成球了,所以box大小最好用小面片提前调试好,运行效率还是扛扛的,GPU在编辑器里 5%以下,后绪博主修改一版粒子的,相信应该有出色的表现!