试着把unity的一个特效搬到这边来, 但表现差别很大, 看起来很白, 不通透
上图是我的, 下图是原版, 有没有大佬知道怎么达到原版效果

素材是复制他的
上图效果发出来看下,下图大概思路可以用shader实现
上图已经是在cocos有的效果了, 只是设置了一下叠加模式
原版的没看太懂, 猜也没特别处理
void surf( Input i , inout SurfaceOutput o ) { float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw; float4 ase_screenPos = float4( i.screenPos.xyz , i.screenPos.w + 0.00000000001 ); float4 ase_screenPosNorm = ase_screenPos / ase_screenPos.w; ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5; float screenDepth7 = LinearEyeDepth(UNITY_SAMPLE_DEPTH(tex2Dproj(_CameraDepthTexture,UNITY_PROJ_COORD( ase_screenPos )))); float distanceDepth7 = abs( ( screenDepth7 - LinearEyeDepth( ase_screenPosNorm.z ) ) / ( _InvFade ) ); o.Emission = ( ( tex2D( _MainTex, uv_MainTex ) * _TintColor * i.vertexColor * i.vertexColor.a * _Boost ) * saturate( distanceDepth7 ) ).rgb; // o.Emission = ( ( tex2D( _MainTex, uv_MainTex ) ) ).rgb; o.Alpha = 1; }
原版shader内容在楼下
叠加模式的吸色了吧
原版叠加模式是one one
这边试了one one, srcalpha one都是过曝不通透的效果
感觉是发射炮不同造成的。
原素材的_tintColor和顶点颜色你都调成一样了吗?
瞄了下 都是默认的白色
又瞄了下在cocos这边黑色背景的时候看起来确实好了些 感觉还不够 这个也没法控制. 总不能要求背景都黑的吧 应该还是有别的原因在
好吧破案了 把背景变成全黑就很像了

请问下有办法在不改变背景保持这种效果吗
把图片的亮度调低一点,是不是就对等了呢。。。。
材质改成透明的
混合 模式 dst 不吸不就好了…
试过了, 不能从根本上解决问题
大佬 creator这种特效是怎么做的呢