穿越电流的‘红绿灯’:双向可控硅在交流电路中的交通管制哲学

核心内容摘要

告别HEIC格式困扰:浏览器端图像转换工具深度解析
基于java的在线教育系统毕业论文+PPT(附源代码+演示视频)

锦上添花的温柔旅程

(

(

把 Scene_12_6另存为 Scene_13_3(

(

(

(

https://github.com/candycat1992/Unity_Shaders_Book/blob/master/Assets/Scripts/Chapter13/FogWithDepthTexture.csusing UnityEngine; using System.Collections; public class FogWithDepthTexture : PostEffectsBase { public Shader fogShader; public Material fogMaterial null; public Material material { get { fogMaterial CheckShaderAndCreateMaterial(fogShader, fogMaterial); return fogMaterial; } } private Camera myCamera; public Camera camera { get { if (myCamera null) { myCamera GetComponentCamera(); } return myCamera; } } private Transform myCameraTransform; public Transform cameraTransform { get { if (myCameraTransform null ) { myCameraTransform camera.transform; } return myCameraTransform; } } [Range(

0f,

0f)] public float fogDensity

0f; //控制雾的浓度 public Color fogColor Color.white; //控制雾的颜色 public float fogStart

0f; //控制雾效的起始高度 public float fogEnd

0f; //控制雾效的终止高度 void OnEnable() { camera.depthTextureMode | DepthTextureMode.Depth; } //获取摄像机的深度纹理 void OnRenderImage (RenderTexture src, RenderTexture dest) { if (material ! null) { Matrix4x4 frustumCorners Matrix4x

identity; float fov camera.fieldOfView; float near camera.nearClipPlane; float aspect camera.aspect; float halfHeight near * Mathf.Tan(fov *

5f * Mathf.D

Rad); Vector3 toRight cameraTransform.right * halfHeight * aspect; Vector3 toTop cameraTransform.up * halfHeight; Vector3 topLeft cameraTransform.forward * near toTop - toRight; float scale topLeft.magnitude / near; topLeft.Normalize(); topLeft * scale; Vector3 topRight cameraTransform.forward * near toRight toTop; topRight.Normalize(); topRight * scale; Vector3 bottomLeft cameraTransform.forward * near - toTop - toRight; bottomLeft.Normalize(); bottomLeft * scale; Vector3 bottomRight cameraTransform.forward * near toRight - toTop; bottomRight.Normalize(); bottomRight * scale; frustumCorners.SetRow(0, bottomLeft); frustumCorners.SetRow(1, bottomRight); frustumCorners.SetRow(2, topRight); frustumCorners.SetRow(3, topLeft); material.SetMatrix(_FrustumCornersRay, frustumCorners); material.SetFloat(_FogDensity, fogDensity); material.SetColor(_FogColor, fogColor); material.SetFloat(_FogStart, fogStart); material.SetFloat(_FogEnd, fogEnd); Graphics.Blit (src, dest, material); } else { Graphics.Blit(src, dest); } } }Shader Custom/Chapter13-FogWithDepthTexture { Properties { _MainTex (Base (RGB), 2D) white {} _FogDensity (Fog Density, Float)

0 _FogColor (Fog Color, Color) (1, 1, 1,

_FogStart (Fog Start, Float)

0 _FogEnd (Fog End, Float)

0 } SubShader { CGINCLUDE #include UnityCG.cginc float4x4 _FrustumCornersRay; sampler2D _MainTex; half4 _MainTex_TexelSize; sampler2D _CameraDepthTexture; half _FogDensity; fixed4 _FogColor; float _FogStart; float _FogEnd; struct v2f { float4 pos : SV_POSITION; half2 uv : TEXCOORD0; half2 uv_depth : TEXCOORD1; float4 interpolatedRay : TEXCOORD2; }; v2f vert(appdata_img v) { v2f o; o.pos mul(UNITY_MATRIX_MVP, v.vertex); o.uv v.texcoord; o.uv_depth v.texcoord; #if UNITY_UV_STARTS_AT_TOP if (_MainTex_TexelSize.y

o.uv_depth.y 1 - o.uv_depth.y; #endif int index 0; if (v.texcoord.x

5 v.texcoord.y

0.

{ index 0; } else if (v.texcoord.x

5 v.texcoord.y

0.

{ index 1; } else if (v.texcoord.x

5 v.texcoord.y

0.

{ index 2; } else { index 3; } #if UNITY_UV_STARTS_AT_TOP if (_MainTex_TexelSize.y

index 3 - index; #endif o.interpolatedRay _FrustumCornersRay[index]; return o; } fixed4 frag(v2f i) : SV_Target { float linearDepth LinearEyeDepth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv_depth)); float3 worldPos _WorldSpaceCameraPos linearDepth * i.interpolatedRay.xyz; float fogDensity (_FogEnd - worldPos.y) / (_FogEnd - _FogStart); fogDensity saturate(fogDensity * _FogDensity); fixed4 finalColor tex2D(_MainTex, i.uv); finalColor.rgb lerp(finalColor.rgb, _FogColor.rgb, fogDensity); return finalColor; } ENDCG Pass { ZTest Always Cull Off ZWrite Off CGPROGRAM #pragma vertex vert #pragma fragment frag ENDCG } } FallBack Off }(

《Unity Shader》

1

3 雾效

91破解版下载官方版-91破解版下载官方版应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123