您的位置:首页 > 房产 > 家装 > 乐陵森_网页推广怎么做的_社群营销平台有哪些_搜索引擎排名机制

乐陵森_网页推广怎么做的_社群营销平台有哪些_搜索引擎排名机制

2025/4/19 5:26:24 来源:https://blog.csdn.net/m0_49721415/article/details/146412069  浏览:    关键词:乐陵森_网页推广怎么做的_社群营销平台有哪些_搜索引擎排名机制
乐陵森_网页推广怎么做的_社群营销平台有哪些_搜索引擎排名机制

需求描述:实现指定摄像机的热扭曲效果,并且半透明效果也是可以被扭曲的。

步骤

1.制作扭曲shader:

Shader "Unlit/HeatDistortion"
{Properties {_NoiseTex ("噪声贴图", 2D) = "white" {}_DistortStrength ("扭曲强度", Range(0, 0.1)) = 0.05_Speed ("速度", Float) = 1.0}SubShader {Tags { "RenderType" = "Transparent" "Queue" = "Transparent"  // 确保在透明物体后渲染}Pass {HLSLPROGRAM#pragma vertex vert#pragma fragment frag#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"TEXTURE2D(_NoiseTex);SAMPLER(sampler_NoiseTex);TEXTURE2D(_CameraOpaqueTexture);SAMPLER(sampler_CameraOpaqueTexture);float _DistortStrength, _Speed;struct Attributes {float4 positionOS : POSITION;float2 uv : TEXCOORD0;};struct Varyings {float4 positionCS : SV_POSITION;float2 uv : TEXCOORD0;float4 screenPos : TEXCOORD1;};Varyings vert(Attributes input) {Varyings output;VertexPositionInputs vertexInput = GetVertexPositionInputs(input.positionOS.xyz);output.positionCS = vertexInput.positionCS;output.uv = input.uv;output.screenPos = ComputeScreenPos(output.positionCS);return output;}half4 frag(Varyings input) : SV_Target {// 动态采样噪声贴图float2 noiseUV = input.uv + _Time.y * _Speed * 0.1;float2 noise = SAMPLE_TEXTURE2D(_NoiseTex, sampler_NoiseTex, noiseUV).rg;// 计算 UV 偏移float2 distort = (noise * 2 - 1) * _DistortStrength;float2 screenUV = (input.screenPos.xy / input.screenPos.w) + distort;// 采样屏幕纹理half4 color = SAMPLE_TEXTURE2D(_CameraOpaqueTexture, sampler_CameraOpaqueTexture, screenUV);return color;}ENDHLSL}}
}

2.制作shader对应的材质

选择材质的shader为刚创建的shader,并且拖入噪声图片。

3. 制作并设置quad

在Hierarchy面板右键->3D Object->quad,将新建材质拖入quad中

3.拖拽quad

将面板拖拽到摄像机前方,此时会发现摄像机拍摄的 render texture  已经发生扭曲,但是半透明物体(比如粒子和VFX)都看不到了

4. 新建并且设置layer

 新建一个layer为DistortionLayer,并且将半透明物体的layer设置为DistortionLayer

5.设置摄像机的renderer

先找到摄像机使用的renderer,如果是Default,那么真实使用的就是0号renderer data

在Project面板中搜索这个renderer data(应该是在settings文件夹中)。

找到后点击Add Renderer Feature 添加一个render object,并且按照图所示去配置。命名为VFX Transparent(啥名字都可以,无所谓)

我们会发现game视图中已经可以看到被扭曲的半透明物体了。搞定!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com