东莞网站优化建设团队,php网站开发有前景吗,华为认证网络工程师,多模室内设计网站实现思路#xff1a;取屏幕像素的RGB值#xff0c;将三个通道的值相加#xff0c;除以一个大于值使颜色值在0-1内#xff0c;再乘上一个强度值调节黑白强度。
在URP中实现需要开启Opaque Texture ShaderGraph实现#xff1a; ShaderLab实现#xff1a;
Shader Bl…实现思路取屏幕像素的RGB值将三个通道的值相加除以一个大于值使颜色值在0-1内再乘上一个强度值调节黑白强度。
在URP中实现需要开启Opaque Texture ShaderGraph实现 ShaderLab实现
Shader BlackAndWhite
{Properties{}SubShader{Tags { RenderTypeTransprent QueueGeometry }Pass{HLSLPROGRAM#pragma vertex vert#pragma fragment frag#include Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlslTEXTURE2D_X(_CameraOpaqueTexture);SAMPLER(sampler_CameraOpaqueTexture);float3 SampleSceneColor(float2 uv){return SAMPLE_TEXTURE2D_X(_CameraOpaqueTexture, sampler_CameraOpaqueTexture, UnityStereoTransformScreenSpaceTex(uv)).rgb;}float4 ComputeScreenPos (float4 pos, float projectionSign){float4 o pos * 0.5f;o.xy float2(o.x, o.y * projectionSign) o.w;o.zw pos.zw;return o;}struct appdata{float4 vertex : POSITION;};struct v2f{float4 vertex : SV_POSITION;float4 ScreenPosition : TEXCOORD0;};v2f vert (appdata v){v2f o;o.vertex mul(UNITY_MATRIX_MVP,v.vertex);o.ScreenPosition ComputeScreenPos(TransformWorldToHClip(mul(unity_ObjectToWorld, v.vertex)),_ProjectionParams.x);return o;}float4 frag (v2f i) : SV_Target{float4 _ScreenPosition_Out_0 float4(i.ScreenPosition.xy / i.ScreenPosition.w, 0, 0);float3 col SampleSceneColor(_ScreenPosition_Out_0.xy);float c (col.x col.y col.z) / 3;return float4(c,c,c,1);}ENDHLSL}}
}
实现效果 对比将物体只变成透明 参考链接
Black White Shader - Unity (URP/HDRP) Shader Graph (youtube.com)