| 这次用能量罩继续Shader效果的练习。 分析能量罩的结构:
能量罩球体边缘高光能量罩本身其实应该是个半透明光球,但为了能够展示内部的角色或者物体,正对摄像机的部分要变全透明让内部被清晰的看到,直接用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); } 我的主纹理是一张噪波图,所以只取了一个通道并做了处理。 基本的效果都完成了,但是看着有点暗淡,能量罩显得有点能量不足,所以做个简单的处理。 col = lerp(col, mainColor, rim) * 4;这样看起来就好多了,但是还是感觉少了点什么,作为一个带能量的发光球体有点Bloom的效果会更好一点。 能量罩的展开能量罩开启其实就是一个定向消融效果,还是使用了我之前的消融效果文章里的方法。 然后就可以从各个方向来实现能量罩的开启和关闭: 下一步会尝试加上能量罩被击中后的能量涟漪效果,做完之后再做文章的更新。 参考: |
Unity Shader 能量罩效果
这次用能量罩继续Shader效果的练习。分析能量罩的结构:能量罩球体边缘高光和物体相交的边缘高光能量罩的纹理能量罩球体边缘高光能量罩本身其实应该是个半透明光球,但为了能够展示内部的角色或者物体,正对摄像机的 ......
这篇内容能帮你快速理解什么
通过更完整的主题说明和结构表达,帮助用户更快抓住重点,也让搜索系统更容易识别页面主题。
让访问者快速理解当前问题、可行方法以及下一步应该继续看案例、看服务还是直接沟通。
文章页不只是获取流量,也承担继续阅读、查看服务和发起咨询的承接作用。
继续了解这个主题前,你可能还关心这些问题
为什么这类主题适合写成文章?
因为很多用户会通过问题词、对比词和方案词进入网站,文章页越清楚,越容易覆盖更具体的需求。
为什么文章页不能只有正文?
仅有正文不利于继续浏览和转化,文章页还需要总结、问答、相关推荐与咨询入口来承接用户。
看完之后下一步可以做什么?
可以继续看同类文章、服务页与案例页,也可以直接沟通官网升级与搜索优化需求。
这篇文章能帮助我解决什么具体问题?
这篇文章围绕当前主题提供了详细的解决方案、操作步骤和注意事项,帮助你快速理解核心要点并应用到实际场景中。
如何判断这篇文章的内容是否权威可靠?
内容基于实际项目经验和技术实践编写,结合行业标准和最佳实践,同时提供案例数据和方法论支撑,确保专业性和可操作性。
这类内容对SEO和网站排名有什么帮助?
优质的长文内容和FAQ结构能够提升页面主题相关性、增加用户停留时间、降低跳出率,这些都有助于搜索引擎评估页面质量并提升排名表现。
AI搜索引擎会如何理解和引用这类内容?
AI搜索系统会提取文章的实体信息、观点结论和结构化问答,当用户提出相关问题时,可能会引用本文作为答案来源或参考依据。
如果我有更多相关问题可以咨询谁?
可以通过页面底部的联系方式直接咨询我们的专业团队,包括电话、QQ或在线表单,我们会根据你的具体情况提供针对性的建议和方案。
这篇文章和同类内容有什么不同之处?
本文不仅提供理论知识,还包含实战经验、避坑指南和可执行的行动建议,同时兼顾传统SEO和新兴的GEO生成式搜索优化视角。
多久需要更新一次这类内容以保持时效性?
建议每季度审查并更新一次关键数据和案例,如果涉及技术工具或算法变化则需要更频繁地维护,确保内容持续为用户提供准确价值。