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

公司网站建设费计入什么科目网站seo具体怎么做

公司网站建设费计入什么科目,网站seo具体怎么做,软件公司名称大全查询,建站哪家好 phpwind文章目录 前言一、解决 Pass 复用的方案方案一:使用之前的UsePass方案,把ShadowCaster的Pass提出来到一个单独的Shader中,在使用的时候直接使用 UsePass方案二:使用Fallback功能 前言 Unity中Shader的Fallback,我们在…

文章目录

  • 前言
  • 一、解决 Pass 复用的方案
    • 方案一:使用之前的UsePass方案,把ShadowCaster的Pass提出来到一个单独的Shader中,在使用的时候直接使用 UsePass
    • 方案二:使用Fallback功能


前言

Unity中Shader的Fallback,我们在上一篇中写的Shader中,ShadowCaster的Pass在很多Shader中都会用到,那么我们可以使用一些方法来使这个阴影相关的Pass直接复用

  • Unity中Shader阴影的投射
  • Unity中Shader阴影的接收

一、解决 Pass 复用的方案

方案一:使用之前的UsePass方案,把ShadowCaster的Pass提出来到一个单独的Shader中,在使用的时候直接使用 UsePass

  • Unity中Shader的Pass的复用

方案二:使用Fallback功能

使用Unity默认Fallback的Shader : Legacy Shaders/VertexLit ,其中包含了基本的光照和阴影功能(当然我们也可以自己写一个这样的Shader)

原因是:Unity在Shader中找不到正确对应的Pass时,会去Fallback的Shader中寻找对应正确的Pass来使用

我们把之前的 ShadowCaster部分删除后,Fallback该Shader看看效果(发现影子还是存在)
请添加图片描述
最终代码:

//Fallback
Shader "MyShader/P1_7_4"
{Properties{[Enum(Off,0,On,1)]_ZWrite("ZWrite",int) = 0[Enum(UnityEngine.Rendering.CompareFunction)]_ZTest("ZTest",int) = 0//使用这个标签,可以使外部暴露属性,有标题[Header(Base)][NoScaleOffset]_MainTex ("Texture", 2D) = "white" {}_Clip("Clip",Range(0,1)) = 0//使用这个标签可以 在两行暴露属性之间加 间隙[Space(10)][Header(Dissolve)]_DissolveTex("DissolveTex",2D) = "black"{}[NoScaleOffset]_RampTex("RampTex(RGB)",2D) = "black" {}}SubShader{Tags{"Queue" = "Geometry"}Blend OffCull Back/*ZWrite [_ZWrite]ZTest [_ZTest]*/Offset -1,-1UsePass "MyShader/P1_6_4/XRay"Pass{//Tags{"LightMode"="ForwardBase"}CGPROGRAM#pragma vertex vert#pragma fragment frag//#pragma multi_compile_fwdbase//剔除无用的变体//#pragma skip_variants DIRLIGHTMAP_COMBINED DYNAMICLIGHTMAP_ON LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING LIGHTPROBE_SH SHADOWS_SHADOWMASK VERTEXLIGHT_ON//自己定义,阴影需要使用的变体#pragma multi_compile DIRECTIONAL SHADOWS_SCREEN#include "UnityCG.cginc"#include "AutoLight.cginc"sampler2D _MainTex;float _Clip;sampler2D _DissolveTex; //这个四维向量,xyzw分别表示 Tilling 和 Offset 的 xy ,命名方式 在纹理名 后加 _STfloat4 _DissolveTex_ST;//因为 在使用渐变纹理时,只使用了 渐变纹理的 u 坐标,所以把  sampler2D 换为 samplersampler _RampTex;struct appdata{float4 vertex : POSITION;float4 uv : TEXCOORD0;};//1.在v2f中添加UNITY_SHADOW_COORDS(idx),unity会自动声明一个叫_ShadowCoord的float4变量,用作阴影的采样坐标.struct v2f{float4 uv : TEXCOORD0;float4 pos : SV_POSITION;UNITY_SHADOW_COORDS(1)float4 worldPos :TEXCOORD2;};//2.在顶点着色器中添加TRANSFER_SHADOW(o),用于将上面定义的_ShadowCoord纹理采样坐标变换到相应的屏幕空间纹理坐标,为采样阴影纹理使用.v2f vert (appdata v){v2f o;o.pos = UnityObjectToClipPos(v.vertex);//为了减少传入的值 ,所以就不创建新变量来存储,而是把 uv 改为  四维向量 来用//使用 o.uv 的 xy 来存放 原人物贴图//使用 o.uv 的 zw 来存放 噪波贴图缩放 和 偏移 后的值o.uv.xy = v.uv.xy;//o.uv.zw = v.uv * _DissolveTex_ST.xy + _DissolveTex_ST.zw;o.uv.zw = TRANSFORM_TEX(v.uv,_DissolveTex);TRANSFER_SHADOW(o)//把顶点转化到世界空间下o.worldPos = mul(unity_ObjectToWorld,v.vertex);return o;}//3.在片断着色器中添加UNITY_LIGHT_ATTENUATION(atten, i, i.worldPos),其中atten即存储了采样后的阴影.fixed4 frag (v2f i) : SV_Target{UNITY_LIGHT_ATTENUATION(atten, i, i.worldPos)fixed4 col = tex2D(_MainTex, i.uv.xy);//把阴影 和 纹理相乘col *= atten;//外部获取的 纹理 ,使用前都需要采样fixed4 dissolveTex = tex2D(_DissolveTex,i.uv.zw);//片段的取舍clip(dissolveTex.r -  _Clip);//进行归一化fixed4 dissolveValue = saturate((dissolveTex.r - _Clip) / (_Clip + 0.1 - _Clip));fixed4 rampTex = tex1D(_RampTex,dissolveValue.r);//col += rampTex;return col;}ENDCG}}Fallback "Legacy Shaders/VertexLit"
}
http://www.shuangfujiaoyu.com/news/8543.html

相关文章:

  • 如何给网站做提升附子seo
  • 做一个小说阅读网站怎么做百度指数官网入口
  • 推广赚钱项目话术seo培训讲师招聘
  • 网站开发商外包自己怎么做百度推广
  • 出国劳务信息网网站及搜索引擎优化建议
  • 网站如何做网站名称免费网站制作平台
  • 博客网站源码seo关键词排名如何
  • 手机营销网站推广员是干什么的
  • wordpress批量扫描弱口令工具群排名优化软件
  • 企业如何做网站建站刚刚刚刚刚刚刚刚刚刚刚刚刚刚刚
  • 一家专做有机蔬菜的网站seo站长工具 论坛
  • 做盗版小说网站 风险微营销推广软件
  • 做招聘网站赚钱吗网站产品推广
  • 企业网站建设技数据分析师证书
  • 中职国示范建设网站站长之家最新网站
  • 静安微信手机网站制作平台广告推广
  • 厦门哪里有做网站江苏seo哪家好
  • 广州个人做网站免费关键词排名优化
  • asp.net mvc 做网站seo 怎么做到百度首页
  • php网站支付宝接口深圳网络推广专员
  • wordpress中博客砌体 网格seo建站工具
  • 大网站制作公司百度seo优化方案
  • 长沙网站创建营销培训心得体会
  • 云南移动和生活app安装竞价托管优化公司
  • 雄县有做网站的吗百度精准营销获客平台
  • 济南网站推广优化外包一站式营销推广
  • 上海外贸网站建设沈阳网络优化培训
  • wordpress花园网站网站怎么优化推广
  • 网站建设方案前言网站网络营销
  • 购物网站设计开题报告百度区域代理