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

建设银行梅州分行网站怎么可以自己做网站

建设银行梅州分行网站,怎么可以自己做网站,wordpress精简版,服务器搭建网站软件文章目录 前言一、光照探针用在哪怎么用1、光照探针的应用场景2、我们按照以上条件#xff0c;在Unity中搭建一个相同的环境3、创建光照探针 二、在我们自己的Shader中#xff0c;实现支持光照探针1、使用常用的 cginc2、在 v2f 中#xff0c;准备如下变量3、在顶点着色器中… 文章目录 前言一、光照探针用在哪怎么用1、光照探针的应用场景2、我们按照以上条件在Unity中搭建一个相同的环境3、创建光照探针 二、在我们自己的Shader中实现支持光照探针1、使用常用的 cginc2、在 v2f 中准备如下变量3、在顶点着色器中进行顶点和法线世界空间的转化后使用如下代码4、在片元着色器中使用如下代码计算最终代码 前言 主要写全局照明中光照探针的支持 一、光照探针用在哪怎么用 1、光照探针的应用场景 在一个只有 Backed 模式灯光的场景中有一个非静态的物体 即该物体在烘焙时不会被烘焙不会受到烘焙灯光的影响。 但是我们此时不能修改灯光的模式 也不能修改该物体为静态物体 却需要给该动态物体受到烘焙灯光的影响 此时就需要使用光照探针了 2、我们按照以上条件在Unity中搭建一个相同的环境 我们会发现小球在烘焙后是不受烘焙光的影响的 3、创建光照探针 可以直接在一个空物体添加 Light Probe Group也按下图直接添加光照探针 添加后把光照探针的范围设置到要让动态小球接收到烘焙光影响的范围 在光照探针中黄色小点点在空间内越密集越多动态物体接收到的烘焙光越精致细腻 然后我们烘焙后就可以看见小球能接收烘焙光的效果了 二、在我们自己的Shader中实现支持光照探针 我们继续使用之前的文章作为测试 Unity中Shader再议ATTENUATION 我们会发现我们的 Shader在使用后是全黑的 因为我们关闭了主平行光两个点光源又是Backed类 1、使用常用的 cginc #include “AutoLight.cginc” #include “Lighting.cginc” 2、在 v2f 中准备如下变量 float4 worldPos : TEXCOORD; half3 worldNormal : NORMAL; half3 sh : TEXCOORD2; 3、在顶点着色器中进行顶点和法线世界空间的转化后使用如下代码 //实现 球谐 或者 环境色 和 顶点照明 的计算 //SH/ambient and vertex lights #ifndef LIGHTMAP_ON //当此对象没有开启静态烘焙时 #if UNITY_SHOULD_SAMPLE_SH !UNITY_SAMPLE_FULL_SH_PER_PIXELo.sh 0;//近似模拟非重要级别的点光在逐顶点上的光照效果#ifdef VERTEXLIGHT_ONo.sh Shade4PointLights(unity_4LightPosX0,unity_4LightPosY0,unity_4LightPosZ0,unity_LightColor[0].rgb,unity_LightColor[1].rgb,unity_LightColor[2].rgb,unity_LightColor[3].rgb,unity_4LightAtten0,o.worldPos,o.worldNormal);#endifo.sh ShadeSHPerVertex(o.worldNormal,o.sh); #endif #endif4、在片元着色器中使用如下代码计算 #if UNITY_SHOULD_SAMPLE_SH !UNITY_SAMPLE_FULL_SH_PER_PIXELgiInput.ambient i.sh; #elsegiInput.ambient 0.0; #endif然后我们就可以看见我们的Shader也有光照探针的效果了 同时也有了逐顶点光照的效果 最终代码 //在这里里面使用 自定义的 cginc 来实现全局GI //GI数据的准备 //烘培分支的判断 //GI的直接光实现 //GI的间接光实现 //再议ATTENUATION //光照探针的支持 Shader MyShader/P1_8_8 {SubShader{Tags { RenderTypeOpaque }Pass{Tags{LightModeForwardBase}CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma multi_compile_fwdbase#include UnityCG.cginc#include AutoLight.cginc#include Lighting.cginc#include CGIncludes/MyGlobalIllumination.cgincstruct appdata{float4 vertex : POSITION;//定义第二套 UV appdata 对应的固定语义为 TEXCOORD1#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)float4 texcoord1 : TEXCOORD1;#endifhalf3 normal : NORMAL;};struct v2f{float4 pos : SV_POSITION;float4 worldPos : TEXCOORD;//定义第二套UV#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)float4 lightmapUV : TEXCOORD1;#endifhalf3 worldNormal : NORMAL;half3 sh : TEXCOORD2;//1、使用 阴影采样 和 光照衰减的方案的 第一步//同时定义灯光衰减以及实时阴影采样所需的插值器UNITY_LIGHTING_COORDS(3,4)//UNITY_SHADOW_COORDS(2)};v2f vert (appdata v){v2f o;o.pos UnityObjectToClipPos(v.vertex);o.worldPos mul(unity_ObjectToWorld,v.vertex);o.worldNormal UnityObjectToWorldNormal(v.normal);//对第二套UV进行纹理采样#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)o.lightmapUV.xy v.texcoord1 * unity_LightmapST.xy unity_LightmapST.zw;#endif//实现 球谐 或者 环境色 和 顶点照明 的计算//SH/ambient and vertex lights#ifndef LIGHTMAP_ON //当此对象没有开启静态烘焙时#if UNITY_SHOULD_SAMPLE_SH !UNITY_SAMPLE_FULL_SH_PER_PIXELo.sh 0;//近似模拟非重要级别的点光在逐顶点上的光照效果#ifdef VERTEXLIGHT_ONo.sh Shade4PointLights(unity_4LightPosX0,unity_4LightPosY0,unity_4LightPosZ0,unity_LightColor[0].rgb,unity_LightColor[1].rgb,unity_LightColor[2].rgb,unity_LightColor[3].rgb,unity_4LightAtten0,o.worldPos,o.worldNormal);#endifo.sh ShadeSHPerVertex(o.worldNormal,o.sh);#endif#endif//2、使用 阴影采样 和 光照衰减的方案的 第二步UNITY_TRANSFER_LIGHTING(o,v.texcoord1.xy)//TRANSFER_SHADOW(o)return o;}fixed4 frag (v2f i) : SV_Target{//1、准备 SurfaceOutput 的数据SurfaceOutput o;//目前先初始化为0使用Unity自带的方法把结构体中的内容初始化为0UNITY_INITIALIZE_OUTPUT(SurfaceOutput,o)o.Albedo 1;o.Normal i.worldNormal;//1、代表灯光的衰减效果//2、实时阴影的采样UNITY_LIGHT_ATTENUATION(atten,i,i.worldPos);//2、准备 UnityGIInput 的数据UnityGIInput giInput;//初始化UNITY_INITIALIZE_OUTPUT(UnityGIInput,giInput);//修改用到的数据giInput.light.color _LightColor0;giInput.light.dir _WorldSpaceLightPos0;giInput.worldPos i.worldPos;giInput.worldViewDir normalize(_WorldSpaceCameraPos - i.worldPos);giInput.atten atten;giInput.ambient 0;#if UNITY_SHOULD_SAMPLE_SH !UNITY_SAMPLE_FULL_SH_PER_PIXELgiInput.ambient i.sh;#elsegiInput.ambient 0.0;#endif#if defined(DYNAMICLIGHTMAP_ON) || defined(LIGHTMAP_ON)giInput.lightmapUV i.lightmapUV;#endif//3、准备 UnityGI 的数据UnityGI gi;//直接光照数据主平行光gi.light.color _LightColor0;gi.light.dir _WorldSpaceLightPos0;//间接光照数据(目前先给0)gi.indirect.diffuse 0;gi.indirect.specular 0;//GI的间接光照的计算 LightingLambert_GI1(o,giInput,gi);//查看Unity源码可知计算间接光照最主要的函数就是//inline UnityGI UnityGI_Base1(UnityGIInput data, half occlusion, half3 normalWorld)//所以我们直接给 gi 赋值可以不使用 LightingLambert_GI1gi UnityGI_Base1(giInput,1,o.Normal);//GI的直接光照的计算//我们在得到GI的数据后对其进行Lambert光照模型计算即可得到结果fixed4 c LightingLambert1(o,gi);return c;//return fixed4(gi.indirect.diffuse,1);//return 1;}ENDCG}//阴影的投射Pass{//1、设置 LightMode ShadowCasterTags{LightMode ShadowCaster}CGPROGRAM#pragma vertex vert#pragma fragment frag//需要添加一个 Unity变体#pragma multi_compile_shadowcaster#include UnityCG.cginc//声明消融使用的变量float _Clip;sampler2D _DissolveTex;float4 _DissolveTex_ST;//2、appdata中声明float4 vertex:POSITION;和half3 normal:NORMAL;这是生成阴影所需要的语义.//注意在appdata部分我们几乎不要去修改名字 和 对应的类型。//因为在Unity中封装好的很多方法都是使用这些标准的名字struct appdata{float4 vertex:POSITION;half3 normal:NORMAL;float4 uv:TEXCOORD;};//3、v2f中添加V2F_SHADOW_CASTER;用于声明需要传送到片断的数据.struct v2f{float4 uv : TEXCOORD;V2F_SHADOW_CASTER;};//4、在顶点着色器中添加TRANSFER_SHADOW_CASTER_NORMALOFFSET(o)主要是计算阴影的偏移以解决不正确的Shadow Acne和Peter Panning现象.v2f vert(appdata v){v2f o;o.uv.zw TRANSFORM_TEX(v.uv,_DissolveTex);TRANSFER_SHADOW_CASTER_NORMALOFFSET(o);return o;}//5、在片断着色器中添加SHADOW_CASTER_FRAGMENT(i)fixed4 frag(v2f i) : SV_Target{//外部获取的 纹理 使用前都需要采样fixed4 dissolveTex tex2D(_DissolveTex,i.uv.zw);//片段的取舍clip(dissolveTex.r - _Clip);SHADOW_CASTER_FRAGMENT(i);}ENDCG}} }
http://www.sadfv.cn/news/15321/

相关文章:

  • 下载网站怎么下载个人备案能建立企业网站吗
  • 做购物平台网站需要注意什么铜山网站开发
  • 重庆九龙坡营销型网站建设公司哪家好android下载软件
  • 建站行业分析网站开发相关知识
  • 中盛浩瀚建设有限公司网站软件开发前端
  • 可以免费建立网站吗跨境电商自建站是什么意思
  • 重庆市建设信息网站设计签名免费网站
  • 企业网站管理系统下载什么是网络营销环境
  • 淮安做网站杨凯网络营销与直播电商学什么
  • 清华紫光是可以做网站的吗php网站开发个人职责
  • 南通电子商务网站建设济南网站建设v芯企优互联不错
  • 下载类网站 前置备案靳刘高设计公司官网
  • 专业做网站哪家好wordpress主题的连接函数
  • 儿童网站网页设计微信上做网站怎么做
  • 保定 网站建设牡丹江网站seo
  • 该去哪里购买网站域名和空间天津网页制作网页报价
  • 昆山做网站找文博虚拟机安装 wordpress
  • 龙华做棋牌网站建设哪家好企业外贸网站建设方案
  • 女装网站欣赏北京诚通新新建设有限公司网站
  • 青浦郑州阳网站建设访问wordpress时失败
  • 丹阳网站建设效果简单的手机网页制作
  • 山东网站建设维护网站建设开发综合实训小结
  • 网站鼠标特效建筑工地新型材料模板
  • 常州转化率网站建设公司怎么样肇庆seo霸屏
  • 天津网站建设优选企业网站策划书的内容
  • 重庆招聘网站有哪些济南建站服务商
  • 网站套餐到期什么意思网站模板 站长之家
  • 昆明做网站建设找谁网页设计图片之间空隙
  • 什么是wap网站广东省公共资源交易中心平台
  • 质监站网址修改wordpress登录背景图