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

海淀区网站搭建网站建设翻译英文是什么

海淀区网站搭建,网站建设翻译英文是什么,我想做网站,seo网站内容优化有哪些文章目录 前言一、我们对 Standard 的 PBR 的 GI 进行解析1、我们先创建一个PBR的.cginc文件#xff0c;用于整理用到的函数2、然后在Standard的Shader中引用该cginc文件 二、依次整理函数到该cginc文件中我们来看一下PBR中GI的镜面反射做了些什么 二、最终代码.cginc代码用于整理用到的函数2、然后在Standard的Shader中引用该cginc文件 二、依次整理函数到该cginc文件中我们来看一下PBR中GI的镜面反射做了些什么 二、最终代码.cginc代码Shader代码 前言 Unity中Shader的Standard材质解析二对 Standard 的 PBR 的 GI 进行解析 Unity中Shader的Standard材质解析一 一、我们对 Standard 的 PBR 的 GI 进行解析 1、我们先创建一个PBR的.cginc文件用于整理用到的函数 2、然后在Standard的Shader中引用该cginc文件 #include “CGInclude/MyPhysicallyBasedRendering.cginc” 二、依次整理函数到该cginc文件中 整理 LightingStandard_GI1(o, giInput, gi); 中的数据 Unity_GlossyEnvironmentData表示GI中的反射准备数据 准备好反射数据后计算得出GI中的 漫反射 和 镜面反射 输出漫反射看看效果 输出镜面反射看看效果 我们可以自定义一下Cubemap,看看不同的反射效果 这就是PBR的优点可以根据不同的环境直接呈现效果不用再根据环境调节参数 我们来看一下PBR中GI的镜面反射做了些什么 这个程序块只会在反射探针中开启Box Projection时才会运行 这选项的作用是使用反射探针的物体在移动时效果不会变只有在摄像机方向变时效果才会变化。那么要让物体动时反射效果同时改变的话就需要开启该选项。 在取消了材质的Reflection后会运行该程序块反之运行之后的部分 在开启反射效果后对于感性粗糙度的计算。在Unity中的粗糙度使用分级贴图来模拟粗糙度节省性能 由于粗糙度与反射探针的mip变化不呈现线性正比所以需要一个公式来改变 //r r * (1.7 - 0.7r) perceptualRoughness perceptualRoughness(1.7 - 0.7*perceptualRoughness); 在Blender中粗糙度是按数值改变的 在Unity中反射探针是按贴图分级来模拟的粗糙度 二、最终代码 .cginc代码 #ifndef MYPHYSICALLYBASERENDERING_INCLUDE#define MYPHYSICALLYBASERENDERING_INCLUDEhalf3 Unity_GlossyEnvironment1 (UNITY_ARGS_TEXCUBE(tex), half4 hdr, Unity_GlossyEnvironmentData glossIn){half perceptualRoughness glossIn.roughness /* perceptualRoughness */ ;// TODO: CAUTION: remap from Morten may work only with offline convolution, see impact with runtime convolution!// For now disabled#if 0float m PerceptualRoughnessToRoughness(perceptualRoughness); // m is the real roughness parameterconst float fEps 1.192092896e-07F; // smallest such that 1.0FLT_EPSILON ! 1.0 (1e-4h is NOT good here. is visibly very wrong)float n (2.0/max(fEps, m*m))-2.0; // remap to spec power. See eq. 21 in -- https://dl.dropboxusercontent.com/u/55891920/papers/mm_brdf.pdfn / 4; // remap from n_dot_h formulatino to n_dot_r. See section Pre-convolved Cube Maps vs Path Tracers -- https://s3.amazonaws.com/docs.knaldtech.com/knald/1.0.0/lys_power_drops.htmlperceptualRoughness pow( 2/(n2), 0.25); // remap back to square root of real roughness (0.25 include both the sqrt root of the conversion and sqrt for going from roughness to perceptualRoughness)#else// MM: came up with a surprisingly close approximation to what the #if 0ed out code above does.//r r * (1.7 - 0.7*r)//由于粗糙度与反射探针的mip变化不呈现线性正比所以需要一个公式来改变perceptualRoughness perceptualRoughness*(1.7 - 0.7*perceptualRoughness);#endif//UNITY_SPECCUBE_LOD_STEPS 6,表示反射探针的mip级别有 6 档。粗糙度X6得到最终得mip级别half mip perceptualRoughnessToMipmapLevel(perceptualRoughness);half3 R glossIn.reflUVW;half4 rgbm UNITY_SAMPLE_TEXCUBE_LOD(tex, R, mip);return DecodeHDR(rgbm, hdr);}//GI中的镜面反射inline half3 UnityGI_IndirectSpecular1(UnityGIInput data, half occlusion, Unity_GlossyEnvironmentData glossIn){half3 specular;//如果开启了反射探针的Box Projection#ifdef UNITY_SPECCUBE_BOX_PROJECTION// we will tweak reflUVW in glossIn directly (as we pass it to Unity_GlossyEnvironment twice for probe0 and probe1), so keep original to pass into BoxProjectedCubemapDirectionhalf3 originalReflUVW glossIn.reflUVW;glossIn.reflUVW BoxProjectedCubemapDirection (originalReflUVW, data.worldPos, data.probePosition[0], data.boxMin[0], data.boxMax[0]);#endif#ifdef _GLOSSYREFLECTIONS_OFFspecular unity_IndirectSpecColor.rgb;#elsehalf3 env0 Unity_GlossyEnvironment1 (UNITY_PASS_TEXCUBE(unity_SpecCube0), data.probeHDR[0], glossIn);//如果开启了反射探针混合#ifdef UNITY_SPECCUBE_BLENDINGconst float kBlendFactor 0.99999;float blendLerp data.boxMin[0].w;UNITY_BRANCHif (blendLerp kBlendFactor){#ifdef UNITY_SPECCUBE_BOX_PROJECTIONglossIn.reflUVW BoxProjectedCubemapDirection (originalReflUVW, data.worldPos, data.probePosition[1], data.boxMin[1], data.boxMax[1]);#endifhalf3 env1 Unity_GlossyEnvironment (UNITY_PASS_TEXCUBE_SAMPLER(unity_SpecCube1,unity_SpecCube0), data.probeHDR[1], glossIn);specular lerp(env1, env0, blendLerp);}else{specular env0;}#elsespecular env0;#endif#endifreturn specular * occlusion;}inline UnityGI UnityGlobalIllumination1 (UnityGIInput data, half occlusion, half3 normalWorld){return UnityGI_Base(data, occlusion, normalWorld);}//GI计算inline UnityGI UnityGlobalIllumination1 (UnityGIInput data, half occlusion, half3 normalWorld, Unity_GlossyEnvironmentData glossIn){//计算得出GI中的漫反射UnityGI o_gi UnityGI_Base(data, occlusion, normalWorld);//计算得出GI中的镜面反射o_gi.indirect.specular UnityGI_IndirectSpecular1(data, occlusion, glossIn);return o_gi;}float SmoothnessToPerceptualRoughness1(float smoothness){return (1 - smoothness);}Unity_GlossyEnvironmentData UnityGlossyEnvironmentSetup1(half Smoothness, half3 worldViewDir, half3 Normal, half3 fresnel0){Unity_GlossyEnvironmentData g;//粗糙度g.roughness /* perceptualRoughness */ SmoothnessToPerceptualRoughness1(Smoothness);//反射球的采样坐标g.reflUVW reflect(-worldViewDir, Normal);return g;}//PBR光照模型的GI计算inline void LightingStandard_GI1(SurfaceOutputStandard s,UnityGIInput data,inout UnityGI gi){//如果是延迟渲染PASS并且开启了延迟渲染反射探针的话#if defined(UNITY_PASS_DEFERRED) UNITY_ENABLE_REFLECTION_BUFFERSgi UnityGlobalIllumination1(data, s.Occlusion, s.Normal);#else//Unity_GlossyEnvironmentData表示GI中的反射准备数据Unity_GlossyEnvironmentData g UnityGlossyEnvironmentSetup1(s.Smoothness, data.worldViewDir, s.Normal,lerp(unity_ColorSpaceDielectricSpec.rgb, s.Albedo,s.Metallic));//进行GI计算并返回输出gigi UnityGlobalIllumination1(data, s.Occlusion, s.Normal, g);#endif}#endif Shader代码 //Standard材质 Shader MyShader/P2_2_5 {Properties{_Color (Color, Color) (1,1,1,1)_MainTex (Albedo (RGB), 2D) white {}[NoScaleOffset]_MetallicTex(Metallic(R) Smoothness(G) AO(B),2D) white {}[NoScaleOffset][Normal]_NormalTex(NormalTex,2D) bump {}_Glossiness (Smoothness, Range(0,1)) 0.0_Metallic (Metallic, Range(0,1)) 0.0_AO(AO,Range(0,1)) 1.0}SubShader{Tags{RenderTypeOpaque}LOD 200// ---- forward rendering base pass:Pass{Name FORWARDTags{LightMode ForwardBase}CGPROGRAM// compile directives#pragma vertex vert#pragma fragment frag#pragma target 3.0#pragma multi_compile_instancing#pragma multi_compile_fog#pragma multi_compile_fwdbase#include UnityCG.cginc#include Lighting.cginc#include UnityPBSLighting.cginc#include AutoLight.cginc#include CGInclude/MyPhysicallyBasedRendering.cgincsampler2D _MainTex;float4 _MainTex_ST;half _Glossiness;half _Metallic;fixed4 _Color;sampler2D _MetallicTex;half _AO;sampler2D _NormalTex;struct appdata{float4 vertex : POSITION;float4 tangent : TANGENT;float3 normal : NORMAL;float4 texcoord : TEXCOORD0;float4 texcoord1 : TEXCOORD1;float4 texcoord2 : TEXCOORD2;float4 texcoord3 : TEXCOORD3;fixed4 color : COLOR;UNITY_VERTEX_INPUT_INSTANCE_ID};// vertex-to-fragment interpolation data// no lightmaps:struct v2f{float4 pos : SV_POSITION;float2 uv : TEXCOORD0; // _MainTexfloat3 worldNormal : TEXCOORD1;float3 worldPos : TEXCOORD2;#if UNITY_SHOULD_SAMPLE_SHhalf3 sh : TEXCOORD3; // SH#endif//切线空间需要使用的矩阵float3 tSpace0 : TEXCOORD4;float3 tSpace1 : TEXCOORD5;float3 tSpace2 : TEXCOORD6;UNITY_FOG_COORDS(7)UNITY_SHADOW_COORDS(8)};// vertex shaderv2f vert(appdata v){v2f o;o.pos UnityObjectToClipPos(v.vertex);o.uv.xy TRANSFORM_TEX(v.texcoord, _MainTex);float3 worldPos mul(unity_ObjectToWorld, v.vertex).xyz;float3 worldNormal UnityObjectToWorldNormal(v.normal);//世界空间下的切线half3 worldTangent UnityObjectToWorldDir(v.tangent);//切线方向half tangentSign v.tangent.w * unity_WorldTransformParams.w;//世界空间下的副切线half3 worldBinormal cross(worldNormal, worldTangent) * tangentSign;//切线矩阵o.tSpace0 float3(worldTangent.x, worldBinormal.x, worldNormal.x);o.tSpace1 float3(worldTangent.y, worldBinormal.y, worldNormal.y);o.tSpace2 float3(worldTangent.z, worldBinormal.z, worldNormal.z);o.worldPos.xyz worldPos;o.worldNormal worldNormal;// SH/ambient and vertex lights#if UNITY_SHOULD_SAMPLE_SH !UNITY_SAMPLE_FULL_SH_PER_PIXELo.sh 0;// Approximated illumination from non-important point lights#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, worldPos, worldNormal);#endifo.sh ShadeSHPerVertex (worldNormal, o.sh);#endifUNITY_TRANSFER_LIGHTING(o, v.texcoord1.xy);UNITY_TRANSFER_FOG(o, o.pos); // pass fog coordinates to pixel shaderreturn o;}// fragment shaderfixed4 frag(v2f i) : SV_Target{UNITY_EXTRACT_FOG(i);float3 worldPos i.worldPos.xyz;float3 worldViewDir normalize(UnityWorldSpaceViewDir(worldPos));SurfaceOutputStandard o;UNITY_INITIALIZE_OUTPUT(SurfaceOutputStandard, o);fixed4 mainTex tex2D(_MainTex, i.uv);o.Albedo mainTex.rgb * _Color;o.Emission 0.0;fixed4 metallicTex tex2D(_MetallicTex, i.uv);o.Metallic metallicTex.r * _Metallic;o.Smoothness metallicTex.g * _Glossiness;o.Occlusion metallicTex.b * _AO;o.Alpha 1;half3 normalTex UnpackNormal(tex2D(_NormalTex,i.uv));half3 worldNormal half3(dot(i.tSpace0,normalTex),dot(i.tSpace1,normalTex),dot(i.tSpace2,normalTex));o.Normal worldNormal;// compute lighting shadowing factorUNITY_LIGHT_ATTENUATION(atten, i, worldPos)// Setup lighting environmentUnityGI gi;UNITY_INITIALIZE_OUTPUT(UnityGI, gi);gi.indirect.diffuse 0;gi.indirect.specular 0;gi.light.color _LightColor0.rgb;gi.light.dir _WorldSpaceLightPos0.xyz;// Call GI (lightmaps/SH/reflections) lighting functionUnityGIInput giInput;UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput);giInput.light gi.light;giInput.worldPos worldPos;giInput.worldViewDir worldViewDir;giInput.atten atten;#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)giInput.lightmapUV IN.lmap;#elsegiInput.lightmapUV 0.0;#endif#if UNITY_SHOULD_SAMPLE_SH !UNITY_SAMPLE_FULL_SH_PER_PIXELgiInput.ambient i.sh;#elsegiInput.ambient.rgb 0.0;#endifgiInput.probeHDR[0] unity_SpecCube0_HDR;giInput.probeHDR[1] unity_SpecCube1_HDR;#if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION)giInput.boxMin[0] unity_SpecCube0_BoxMin; // .w holds lerp value for blending#endif#ifdef UNITY_SPECCUBE_BOX_PROJECTIONgiInput.boxMax[0] unity_SpecCube0_BoxMax;giInput.probePosition[0] unity_SpecCube0_ProbePosition;giInput.boxMax[1] unity_SpecCube1_BoxMax;giInput.boxMin[1] unity_SpecCube1_BoxMin;giInput.probePosition[1] unity_SpecCube1_ProbePosition;#endifLightingStandard_GI1(o, giInput, gi);//return fixed4(gi.indirect.specular,1);// PBS的核心计算fixed4 c LightingStandard(o, worldViewDir, gi);UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fogUNITY_OPAQUE_ALPHA(c.a); //把c的Alpha置1return c;}ENDCG}}}
http://www.zqtcl.cn/news/950741/

相关文章:

  • 国外免费网站服务器链接cpa自己做网站
  • 手机网站的优缺点2024中国企业500强
  • 黄河道网站建设网站设计标语
  • 企业网站建设范文wordpress 5.1
  • 网站 河北 备案 慢设计一个营销方案
  • 网站建设培训合肥品牌设计案例
  • 建网站注册免费云服务器
  • 可以做网站的公司有哪些聊天软件开发厂家有哪些
  • 正规网站建设公司一般要多少钱婚纱网站有哪些
  • 企业网站开发目的和意义住房和城乡建设厅官网查询
  • 直播一级a做爰片免费网站wordpress 模板 使用
  • 网站开发中期检查优质的菏泽网站建设
  • 建设网站号码在线html编辑
  • 品牌型网站制作有哪些公司石家庄广告制作公司
  • 做网站赚几百万网站效果图怎么做的
  • 哪些网站做企业招聘不要花钱wordpress底部导航代码
  • 怎么用链接进自己做的网站企业组织架构
  • 建设新网站征求意见网站设计佛山
  • 重庆建设造价工程信息网站东莞电商页面设计公司
  • 乔拓云智能建站官网登录入口怎么样做网站卖农产品
  • 怎么维护好网站网站的域名每年都要续费
  • 运动网站模板佛山三水区有没有网站建设公司
  • 申请微官网的网站国外域名注册商网站
  • 集团公司网站建设建设中学校园网站的来源
  • 产品展示网站含后台网站模板下载网站开发什么语言好
  • 做知乎网站的图片如何设计好网站
  • 广州企业网站推广织梦学校网站模板
  • 国内响应式网站案例深圳住房和城乡建设局网站
  • 网页制作网站首页中国建筑论坛网
  • 众创空间网站建设少年宫网站建设模块