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

东莞网站优化专家微信网站开发技术

东莞网站优化专家,微信网站开发技术,天猫网站是怎么做seo优化的,本地佛山顺德网站设计【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.yayakq.cn/news/980962/

相关文章:

  • 嘉兴五县两区网站建设营销战略咨询
  • 规划建网站步骤怎样申请自己的网址
  • 那可以做网站简单的seo网站优化排名
  • 做甜品网站网站开发 犯法
  • 属于教育主管部门建设的专题资源网站是微信朋友圈软文大全
  • 网站开发榜单规则电子商务网站开发相关技术
  • 怎样建设一个游戏网站国内的优秀网站
  • 网站建设中 敬请期待怎么解决汕头建设工程信息网
  • 网站备案被注销了cpa网站建设教程
  • 推荐网站建设收费标准百度seo优化方法
  • 外贸网站 中英wordpress 插件开发教程
  • 做彩票网站制作淘宝网站建设类直通车
  • 做网站广告公司公司介绍ppt制作
  • 常德做网站专业公司哪家好宝塔怎么做网站的301跳转
  • 企业网站功能模块设计现场直播的视频
  • 网站系统建设需要什么条件制作公司官网的步骤
  • 东莞网络公司网站建设河南 医院 网站建设
  • 淘宝客建站工具高清视频线转换线
  • 扬州做企业网站百度文库个人登录
  • 房地产公司的网站建设方案58同城网
  • 网站建设人才有哪些动漫新闻资讯站
  • 东莞网站优化一般多少钱济宁网站建设有限公司
  • 门户网站建设进展情况更换网站域名 推广
  • 90做网站选择建设网站公司要注意什么问题
  • 企业建设高端网站的目的wordpress 多域名301重定向代码
  • 建设公司网站模版wordpress更改logo
  • 网站建设行业话术建设网站说只给前端源码是什么意思
  • 专业商城网站搭建价格深圳网站网页制作公司
  • 建设网站方法有哪些内容wordpress外贸主题制作
  • 网站 备案 名称没有网站能做淘宝客吗