推广

Unity Shader 能量罩效果

iseeyu2年前 (2025-01-05)推广106

这次用能量罩继续Shader效果的练习。

分析能量罩的结构:

  1. 能量罩球体边缘高光
  2. 和物体相交的边缘高光
  3. 能量罩的纹理

能量罩球体边缘高光

能量罩本身其实应该是个半透明光球,但为了能够展示内部的角色或者物体,正对摄像机的部分要变全透明让内部被清晰的看到,直接用RIM边缘光渲染就可以。因为是透明的,所以要两面都渲染,将视向量和法线的点积结果取绝对值来保证背面的正确渲染。

Tags{ "RenderType"="Transparent" "Queue" = "Transparent" "IgnoreProjector" = "True"}
Blend One One
ZWrite Off
Cull Off

fixed4 frag(...) : SV_Target
{
...
half rim = pow(1 - abs(dot(normalDir,viewDir)) , _RimNum);
...
}

和物体相交的边缘高光

在游戏中看到的能量罩可以发现,在和地面、物体相交的部分也是会高亮显示的,也算是能量罩的边缘。所以需要正确得到相交的信息,可以通过当前片元能量罩的深度和场景中的深度做对比,如果两个深度是相等,那么就说明能量罩和物体是相交的。

主相机的深度图可以获取场景中的深度信息。但是能量罩因为是透明渲染,没有影子的部分,所以也就没有ShadowCaster的Pass,也就不会出现在主相机的深度图中。但是通过Clip空间获取到能量罩当前片元的深度值,使用ComputeScreenPos函数可以将Clip空间的坐标转换为屏幕坐标,函数内对xy分量做了转换处理,zw分量直接使用了原值。Clip空间的z分量是从-Near到Far的,而深度图中的LinearEyeDepth后的范围是Near到Far,所以通过COMPUTE_EYEDEPTH函数将深度转化到Near到Far。




Unity ComputeScreenPos函数源码

那么我已经通过相机深度图获取到了场景深度信息,Clip空间z分量获取到了能量球的深度信息,接着通过比较计算得到相交的信息。

float diff = pow(1-saturate((sceneZ - partZ)), _EdgePow);

像RIM一样,通过_EdgePow来控制相交高亮的范围。




能量罩一个一个Cube相交

能量罩的纹理

直接给一个纹理贴图就可以展示出想要的纹理效果,如果加上一个时间偏移就可以做出动画的效果。

fixed4 frag(...) : SV_Target
{
fixed4 col = fixed4(0,0,0,0);
...
fixed main = tex2D(_MainTex, i.uv + _Time.y * 0.02).r;
fixed4 mainColor = _TintColor * pow(1 - main, 3);
...
col = lerp(col, _TintColor, diff);
col = lerp(col, mainColor, rim);
}

我的主纹理是一张噪波图,所以只取了一个通道并做了处理。


Unity Shader 能量罩效果


基本的效果都完成了,但是看着有点暗淡,能量罩显得有点能量不足,所以做个简单的处理。

col = lerp(col, mainColor, rim) * 4;

这样看起来就好多了,但是还是感觉少了点什么,作为一个带能量的发光球体有点Bloom的效果会更好一点。



能量罩的展开

能量罩开启其实就是一个定向消融效果,还是使用了我之前的消融效果文章里的方法。

然后就可以从各个方向来实现能量罩的开启和关闭:


下一步会尝试加上能量罩被击中后的能量涟漪效果,做完之后再做文章的更新。

参考:

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/130169.html

相关文章

西安企业做百度推广,一个月花三千和花三万到底差在哪?

4|最近跟几个西安的老板聊天,发现一个挺有意思的现象:同样做百度推广,有人一个月花三千块,询盘不断;有人一个月砸三万,水花都没见着。问他们区别在哪,大多数人说不清楚,只知道'钱花了,没效果'。 5| 6|百度推广这东西,说复杂也复杂,说简单也简单。核心就一件事:让你的潜在客户搜某个词的时候,你的信息...

我想当策划,大学应该选什么专业?

我想当策划,大学应该选什么专业?

学,广告,传播,公关,这些专业其实都可以。另外也可以学像汉语言文学,以及一些跟文学相关的一些专业,会对你找工作有帮助。但是,你想从事这个这份职业,除了专业的学习之外,更多的是,你要在上学的时候积极参与一些更营销策划相关的社会实践。比如说你可以做一些兼职,比如说帮别人去写稿,...

服装市场营销策略分析,“定位不慎满盘皆输”

服装市场营销策略分析,“定位不慎满盘皆输”

不同的区域需要不同的策略,而不同的营销策略需要不同的销售思路来配合。因此,在研究女装产品销售思路之前,最好先对于市场与营销策略做一次深入地了解。1.市场区域化(market segmentation):目标营销的第一步,是将整个市场拆分成若干个同性质的小市场。2.目标市场的...

晚间悦读丨你的思维方式,决定你的人生高度!

晚间悦读丨你的思维方式,决定你的人生高度!

越长大,越发现,能够决定你人生高度的,往往是你的认知层次。 你的认知在哪个层级,你的人生就处在什么状态。你认知的高度,决定了你人生的高度。 那如何才能升级方式、提升认知能力呢?可以从这三个方面做出改变。 NO. 1 改变态度 有人...

编写项目营销策划方案六大要点

编写项目营销策划方案六大要点

现在商业发展非常迅速,的需求非常的大,但是要做好营销策划是有一定难度的,我把自己做营销策划的一些体会在这里分享给朋友们。营销策划方案六大要点我们先说项目营销策划方案这个话题。大部分的营销策划人都是在企业里工作,大部分项目之初都是来源于一个想法,创始人、老板或者创始团队的一个...

【商场营销策划】如何进行商场营销策划?

【商场营销策划】如何进行商场营销策划?

商场是策划者们关注的永恒话题,那么究竟该如何作好商场营销策划呢?掌握以下这几点营销策略设计原则,至关重要!1.义利兼顾的原则。商场在获取利润的同时要充分考虑到消费者的合法利益和商场的长远利益。在作商场活动营销策略方案的时候应该将这一点作为首要的原则。对商场有利而对顾客不利的...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片