当前位置: 首页 > news >正文

东莞网站优化专家怎样做自己的 优惠卷网站

东莞网站优化专家,怎样做自己的 优惠卷网站,公司网站建设组织架构,网站制作设计报价【Unity】简单的深度虚化shader 实现效果 可以用于对地图场景边界的白模处理 实现方法 1.关键方法 UnityObjectToClipPos:将物体坐标转换为屏幕坐标 LinearEyeDepth:将屏幕坐标中的z值转换为实际的深度值 saturate:将值规范到0~1之间&a…

【Unity】简单的深度虚化shader

实现效果
在这里插入图片描述

可以用于对地图场景边界的白模处理

实现方法

1.关键方法

UnityObjectToClipPos:将物体坐标转换为屏幕坐标

LinearEyeDepth:将屏幕坐标中的z值转换为实际的深度值

saturate:将值规范到0~1之间,小于0,则返回值为0,大于1,则返回值为1。

2.实现原理

通过LinearEyeDepth转换的深度值是的区间,只和相机的裁剪的远近截面有关。

这里将深度值除去远截面值(far)归一化的值赋给透明度,得到下图效果

float depth = LinearEyeDepth(i.depth);	
float depth_normal =depth/47;

从图上看,虚化的值是从近截面一值到远截面,所以需要设置参数,控制虚化的范围和虚化的位置

用一个简单是数学公式
y = a x + b y=ax+b\\ y=ax+b
其中, a > 0 a>0 a>0; 0 < y < 1 0<y<1 0<y<1

a a a控制虚化的范围,也就是斜率

b b b控制虚化的位置

得到上图,发现近处的透明。再用1-值取反,完成效果。

3.完整shader
方法一

Shader "Custom/DepthShader" {Properties{_MainTex("Texture", 2D) = "white" {}_Color("Color",Color) = (1,1,1,1)_Blur("Blur", Range(0, 40)) = 32_Dis("Dis", Range(-40, 40)) = -32}SubShader{Tags { "Queue" = "Transparent"  "RenderType" = "Opaque"  }LOD 100Pass{Cull Back      //剔除后面//Blend SrcAlpha OneMinusSrcAlphaBlend One OneMinusSrcAlphaCGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;float depth : TEXCOORD1;};sampler2D _MainTex;float _Blur;float _Dis;fixed4 _Color;float4 _MainTex_ST;v2f vert(appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.depth = UnityObjectToClipPos(v.vertex).z;o.uv = TRANSFORM_TEX(v.uv, _MainTex);return o;}fixed4 frag(v2f i) : SV_Target{float depth = LinearEyeDepth(i.depth);float depth_normal = 1 - saturate((depth * _Blur) + _Dis);clip(depth_normal);float4 col_Blur = depth_normal;fixed4 col = tex2D(_MainTex, i.uv) * col_Blur * _Color;return col;}ENDCG}
}
}

方法二

Shader "Custom/DepthCameraShader" {Properties{_MainTex("Texture", 2D) = "white" {}_Color("Color",Color) = (1,1,1,1)_Blur("Blur", Range(0, 40)) = 32_Dis("Dis", Range(-40, 40)) = -32}SubShader{Tags { "Queue" = "Transparent"  "RenderType" = "Opaque"  }LOD 100Pass{Cull Back      //剔除后面Blend SrcAlpha OneMinusSrcAlphaCGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;float3 worldPos:TEXCOORD2;};sampler2D _MainTex;float _Blur;float _Dis;fixed4 _Color;float4 _MainTex_ST;v2f vert(appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);o.worldPos = mul(unity_ObjectToWorld, v.vertex);return o;}fixed4 frag(v2f i) : SV_Target{float dis = distance(_WorldSpaceCameraPos.xyz ,i.worldPos);float depth_normal =1- saturate((dis * _Blur) + _Dis);float4 col_Blur = depth_normal;fixed4 col = tex2D(_MainTex, i.uv) * col_Blur * _Color;return col;}ENDCG}}
}

4.Shader Graphs实现方法

ShaderGraphs深度虚化资源

http://www.sczhlp.com/news/148703/

相关文章:

  • 做it行业招标网站有哪些西安小程序定制
  • 做一手房开什么网站比较好呢做网站建设的名声很差吗
  • 延安网站设计APP网站开发私人订制
  • 延吉 网站开发铜陵网站建设费用
  • 外贸网站制作设计临河 网站建设
  • 做网站的模仿还要去量宽高吗营销型网站建设-深圳信科
  • 如何在百度提交自己的网站分析网站推广和优化的原因
  • 开个网站做做网站还是博客
  • 网站产品使用说明书怎么做做网站设计都做些什么
  • 高端网站建设公司哪家更专业网站源代码怎么生成网页
  • .net网站开发实验报告如何建设网站接收数据
  • 免费网站打包appvscode 网站开发教程
  • 房地产类型的网站建设东营 微信网站建设
  • 8469网站十大计算机培训机构排名
  • 聊城市建设局网站首页wordpress英文下主题怎么换
  • 百度做个公司网站要多少钱网站建设 流程
  • 站长工具流量统计专门做微信小程序的公司
  • AT_abc314_f [ABC314F] A Certain Game
  • 免费发布信息的网站平台有哪些房地产官网
  • wordpress建好本地站怎么上传山东关键词优化联系电话
  • 网站制作介绍仿织梦长沙网站公司
  • 网站后台密码重置室内设计软件推荐
  • 网站开发费计入什么科目合适我有域名有服务器怎么建设网站
  • 网站开发中点赞怎么做到的wordpress调整侧边栏的高度
  • 威海好的网站建设公司哪家好h5作品
  • 深圳外贸网站建设服务商wordpress 高并发
  • 个人网站样式app网站建设哪家好
  • 网站建设规划中国最有名的建设网站
  • seo推广培训学费福州网站seo推广优化
  • 网站用后台更换图片网页布局类型有哪些