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

自己建个网站做优化公司邮箱申请注册

自己建个网站做优化,公司邮箱申请注册,wordpress 图片调用API,手机百度下载文章目录 前言一、场景设置二、实现思路1、通过深度图求出像素所在视图空间的Z值2、通过模型面片的求出像素在观察空间下的坐标值3、结合两者求出 深度图中像素的 XYZ值4、再将此坐标转换到模型的本地空间#xff0c;把XY作为UV来进行纹理采样 三、URP下实现1、通过深度图求出… 文章目录 前言一、场景设置二、实现思路1、通过深度图求出像素所在视图空间的Z值2、通过模型面片的求出像素在观察空间下的坐标值3、结合两者求出 深度图中像素的 XYZ值4、再将此坐标转换到模型的本地空间把XY作为UV来进行纹理采样 三、URP下实现1、通过深度图求出像素所在视图空间的Z值2、通过模型面片的求出像素在观察空间下的坐标值3、结合两者求出 深度图中像素的 XYZ值4、再将此坐标转换到模型的本地空间把XY作为UV来进行纹理采样 四、最终效果 前言 在游戏中有很多用到贴画的地方。比如地面污渍、地面喷漆、地面血迹、魔法阵、地裂等效果。 我们在这篇文章中来用深度图实现一下贴画的效果。 一、场景设置 使用之前的棋盘格设置一个场景且在场景中增加一些物体来给贴花吸附。然后我们创建一个面片用于承载贴花Shader我们要实现的贴花效果是会吸附在物体上的。但是我们目前的面片没有这个功能我们接下来就需要来实现贴花的吸附功能。 二、实现思路 1、通过深度图求出像素所在视图空间的Z值 2、通过模型面片的求出像素在观察空间下的坐标值 3、结合两者求出 深度图中像素的 XYZ值 4、再将此坐标转换到模型的本地空间把XY作为UV来进行纹理采样 三、URP下实现 1、通过深度图求出像素所在视图空间的Z值 在URP设置中开启深度图 申明 纹理 和 采样器 TEXTURE2D(_CameraDepthTexture);SAMPLER(sampler_CameraDepthTexture); 在片元着色器得到观察空间下的深度图Z值 float4 depthVS 1; float2 screenUV i.positionCS.xy / _ScreenParams.xy; half depthTex SAMPLE_TEXTURE2D(_CameraDepthTexture,sampler_CameraDepthTexture,screenUV); half depthZ LinearEyeDepth(depthTex,_ZBufferParams); depthVS.z depthZ; 2、通过模型面片的求出像素在观察空间下的坐标值 这步需要在 顶点着色器中完成在 片元着色器输入结构体 中,增加一条用于存储 模型观察空间坐标值 float3 positionVS : TEXCOORD3; 在片元着色器中将模型顶点 本地空间 转化为 观察空间 o.positionVS TransformWorldToView(TransformObjectToWorld(o.positionOS)); 3、结合两者求出 深度图中像素的 XYZ值 我们来推导一下公式 点 P P P 是模型上的点在观察空间下的值 W z W_z Wz​ 是深度图在观察空间下的Z值 我们先在 X o Z XoZ XoZ 平面下求出我们的 W x W_x Wx​ 值 P z W z P x W x \frac{P_z}{W_z}\frac{P_x}{W_x} Wz​Pz​​Wx​Px​​ W x P x W z P z W_x \frac{P_xW_z}{P_z} Wx​Pz​Px​Wz​​ P z P_z Pz​ 为负数 W z W_z Wz​为正数 我们需要的比值只是一个长度关系。所以需要乘以一个 − 1 -1 −1 W x P x W z − P z W_x \frac{P_xW_z}{-P_z} Wx​−Pz​Px​Wz​​ 然后在 Y o Z YoZ YoZ 平面下求出我们的 W y W_y Wy​ 值 W y P y W z − P z W_y \frac{P_yW_z}{-P_z} Wy​−Pz​Py​Wz​​ depthVS.xy i.positionVS.xy*depthZ/-i.positionVS.z; 4、再将此坐标转换到模型的本地空间把XY作为UV来进行纹理采样 float4 depthWS mul(unity_CameraToWorld,depthVS); float4 depthOS mul(unity_WorldToObject,depthWS); float2 uv depthOS.xy0.5; half4 mainTex SAMPLE_TEXTURE2D(_MainTex,sampler_MainTex,uv); 四、最终效果 //深度贴花 Shader MyShader/URP/P4_4_2 {Properties{[Header(MainTex)]_MainTex(MainTex,2D) white{}}SubShader{Tags{//告诉引擎该Shader只用于 URP 渲染管线RenderPipelineUniversalPipeline//渲染类型RenderTypeTransparent//渲染队列QueueTransparent}Pass{Blend One OneZWrite OffName UnlitHLSLPROGRAM#pragma vertex vert#pragma fragment frag#pragma multi_compile_fog// Pragmas#pragma target 2.0// Includes#include Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl#include Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl#include Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlslCBUFFER_START(UnityPerMaterial)float4 _MainTex_ST;CBUFFER_ENDTEXTURE2D(_MainTex);SAMPLER(sampler_MainTex);TEXTURE2D(_CameraDepthTexture);SAMPLER(sampler_CameraDepthTexture);//struct appdata//顶点着色器的输入struct Attributes{float3 positionOS : POSITION;float2 uv : TEXCOORD0;};//struct v2f//片元着色器的输入struct Varyings{float4 positionCS : SV_POSITION;float2 uv : TEXCOORD0;float fogCoord : TEXCOORD1;float3 positionOS : TEXCOORD2;float3 positionVS : TEXCOORD3;};//v2f vert(Attributes v)//顶点着色器Varyings vert(Attributes v){Varyings o (Varyings)0;o.positionCS TransformObjectToHClip(v.positionOS);o.uv TRANSFORM_TEX(v.uv, _MainTex);o.fogCoord ComputeFogFactor(o.positionCS.z);o.positionOS v.positionOS;//2、通过模型面片的求出像素在观察空间下的坐标值o.positionVS TransformWorldToView(TransformObjectToWorld(o.positionOS));return o;}//fixed4 frag(v2f i) : SV_TARGET//片元着色器half4 frag(Varyings i) : SV_TARGET{//思路float4 depthVS 1;//1、通过深度图求出像素所在视图空间的Z值float2 screenUV i.positionCS.xy / _ScreenParams.xy;half4 depthTex SAMPLE_TEXTURE2D(_CameraDepthTexture, sampler_CameraDepthTexture, screenUV);half depthZ LinearEyeDepth(depthTex.r, _ZBufferParams);//2、通过模型面片的求出像素在观察空间下的坐标值//这个在顶点着色器中完成//3、结合两者求出 深度图中像素的 XYZ值depthVS.z depthZ;depthVS.xy i.positionVS.xy * depthZ / -i.positionVS.z;//4、再将此坐标转换到模型的本地空间把XY作为UV来进行纹理采样float4 depthWS mul(unity_CameraToWorld, depthVS);float4 depthOS mul(unity_WorldToObject, depthWS);float2 uv depthOS.xy 0.5;half4 col 0;half4 mainTex SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, uv);col mainTex;return col;}ENDHLSL}} }
http://www.w-s-a.com/news/550181/

相关文章:

  • 网站建设执招标评分表微信代理网站模板
  • ps做网站分辨率自适应地方网站盈利
  • 免费自助小型网站专业网站建设组织
  • 猎聘网网站建设目标查看别人wordpress主题
  • 免费建设网站入驻网站备案不能更新吗
  • 个人网站制作代码西安建筑类公司
  • 网站备案要营业执照吗网站建设如何记账
  • 新手学做网站难吗外包服务商
  • 公司网站建设的项目工作分解结构wordpress插件后端页面
  • 四川省建设人才网站2018南京专业建站
  • ppt制作网站推荐seo教程百度网盘
  • 网站建设多少钱一平米网上商城网站开发报告
  • 福州网站建设招聘信息哈尔滨中企动力科技股份有限公司
  • 军事新闻最新seo关键词查询排名软件
  • 免费网站建设官网项目建设表态发言
  • 平谷建站推广广告投放平台主要有哪些
  • 网站备案掉了什么原因步骤怎么读
  • 徐州市建设监理协会网站做一个公司官网需要多少钱
  • 网站开发学什么数据库做公司网站注意事项
  • 游戏开发网站建设国际战事最新消息
  • 达州+网站建设网站里自己怎么做推广
  • 看网站建设公司的网站案例熊掌号接入wordpress
  • 黄石下陆区建设局网站wordpress如何拖移小工具
  • 宁波网站建设信息网站开发看书
  • 网站建设优化价格北京优化seo排名
  • 微信网站建设公司费用高端网站建设 炫酷
  • 北京网站假设销售找客户最好的app
  • 做外贸需要关注的网站有什么好处宜州设计公司
  • 公司最近想做个网站怎么办陕西科强建设工程有限公司官方网站
  • 生态城门户网站 建设动态it外包收费