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

模板建站难度大美图秀秀网页版

模板建站难度大,美图秀秀网页版,网站开发与,一个做网站编程的条件文章目录 前言一、使用一张法线纹理#xff0c;作为水下扭曲的纹理1、在属性面板定义一个纹理#xff0c;用于传入法线贴图2、在Pass中#xff0c;定义对应的纹理和采样器3、在常量缓冲区#xff0c;申明修改 Tilling 和 Offset 的ST4、在顶点着色器#xff0c;计算得到 应… 文章目录 前言一、使用一张法线纹理作为水下扭曲的纹理1、在属性面板定义一个纹理用于传入法线贴图2、在Pass中定义对应的纹理和采样器3、在常量缓冲区申明修改 Tilling 和 Offset 的ST4、在顶点着色器计算得到 应用了 ST 和 随时间流动的UV用于纹理采样(_WaterSpeed是上篇文章中用到的)5、在片元着色器中对其进行法线纹理进行采样 二、实现水下扭曲的效果1、定义一个扰度值控制扭曲水下的扭曲程度2、在URP设置中开启抓屏3、在Pass中定义抓屏的 纹理 和 采样器4、使用线性插值后的结果进行抓屏的纹理采样5、最后与上篇文章计算得到的水的颜色混合请添加图片描述 三、最终代码 前言 在上篇文章中我们实现了水体中 和 物体接触时产生泡沫的效果。 Unity中URP实现水体效果泡沫 在这篇文章中我们在上一篇文章的基础上来实现水下扭曲的效果。 一、使用一张法线纹理作为水下扭曲的纹理 原理 Unity中Shader的UV扭曲效果的实现 1、在属性面板定义一个纹理用于传入法线贴图 _DistortTex(“DistortNormalTex”,2D) “white”{} 2、在Pass中定义对应的纹理和采样器 TEXTURE2D(_DistortTex);SAMPLER(sampler_DistortTex); 3、在常量缓冲区申明修改 Tilling 和 Offset 的ST half4 _DistortTex_ST; 4、在顶点着色器计算得到 应用了 ST 和 随时间流动的UV用于纹理采样(_WaterSpeed是上篇文章中用到的) o.uv.xy TRANSFORM_TEX(v.uv,_DistortTex)_Time.y * _WaterSpeed; 5、在片元着色器中对其进行法线纹理进行采样 half4 distortTex SAMPLE_TEXTURE2D(_DistortTex,sampler_DistortTex,i.uv.xy); 二、实现水下扭曲的效果 原理把抓取到的屏幕纹理使用进行流动扭曲 Unity中URP下抓屏的 开启 和 使用 1、定义一个扰度值控制扭曲水下的扭曲程度 屏幕UV 和 法线纹理扭曲之间线性插值 float2 distortUV lerp(screenUV,distortTex,_Distort); 2、在URP设置中开启抓屏 3、在Pass中定义抓屏的 纹理 和 采样器 TEXTURE2D(_CameraOpaqueTexture);SAMPLER(sampler_CameraOpaqueTexture); 4、使用线性插值后的结果进行抓屏的纹理采样 half4 cameraOpaqueTex SAMPLE_TEXTURE2D(_CameraOpaqueTexture,sampler_CameraOpaqueTexture,distortUV); 5、最后与上篇文章计算得到的水的颜色混合 col * cameraOpaqueTex; 三、最终代码 //水的深度 Shader MyShader/URP/P4_8 {Properties {[Header(Base)]_WaterColor1(WaterColor1,Color) (1,1,1,1)_WaterColor2(WaterColor2,Color) (1,1,1,1)_WaterSpeed(WaterSpeed,Range(0,1)) 0.1[Header(Foam)]_FoamTex(FoamTex,2D) white{} _FoamColor(FoamColor,Color) (1,1,1,1)_FoamRange(FoamRange,Range(0,5)) 1_FoamNoise(FoamNoise,Range(0,3)) 1[Header(Distort)]_DistortTex(DistortNormalTex,2D) white{}[PowerSlider(3)]_Distort(Distort,Range(0,0.5)) 0}SubShader{Tags{//告诉引擎该Shader只用于 URP 渲染管线RenderPipelineUniversalPipeline//渲染类型RenderTypeTransparent//渲染队列QueueTransparent}//Blend SrcAlpha OneMinusSrcAlphaZWrite OffPass{Name UnlitHLSLPROGRAM#pragma vertex vert#pragma fragment frag// 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)half4 _WaterColor1;half4 _WaterColor2;half _FoamRange;half _WaterSpeed;half4 _FoamColor;half _FoamNoise;half4 _FoamTex_ST;half _Distort;half4 _DistortTex_ST;CBUFFER_ENDTEXTURE2D(_CameraDepthTexture);SAMPLER(sampler_CameraDepthTexture);TEXTURE2D(_FoamTex);SAMPLER(sampler_FoamTex);TEXTURE2D(_CameraOpaqueTexture);SAMPLER(sampler_CameraOpaqueTexture);TEXTURE2D(_DistortTex);SAMPLER(sampler_DistortTex);//struct appdata//顶点着色器的输入struct Attributes{float3 positionOS : POSITION;float2 uv : TEXCOORD0;};//struct v2f//片元着色器的输入struct Varyings{float4 positionCS : SV_POSITION;float4 uv : TEXCOORD0;// xy distortUV,zw foamUVfloat4 screenPos : TEXCOORD1;float3 positionVS : TEXCOORD2;float3 positionWS : TEXCOORD3;};//v2f vert(Attributes v)//顶点着色器Varyings vert(Attributes v){Varyings o (Varyings)0;o.positionWS TransformObjectToWorld(v.positionOS);o.positionVS TransformWorldToView(o.positionWS);o.positionCS TransformWViewToHClip(o.positionVS);o.screenPos ComputeScreenPos(o.positionCS);//计算得到泡沫纹理采样需要的顶点世界空间下的坐标值的流动效果o.uv.zw o.positionWS.xz *_FoamTex_ST.xy _Time.y * _WaterSpeed;//计算得到水下扭曲纹理的流动UVo.uv.xy TRANSFORM_TEX(v.uv,_DistortTex)_Time.y * _WaterSpeed;return o;}//fixed4 frag(v2f i) : SV_TARGET//片元着色器half4 frag(Varyings i) : SV_TARGET{//1、水的深度//获取屏幕空间下的 UV 坐标float2 screenUV i.positionCS.xy / _ScreenParams.xy;half depthTex SAMPLE_TEXTURE2D(_CameraDepthTexture,sampler_CameraDepthTexture,screenUV).x;//深度图转化到观察空间下float depthScene LinearEyeDepth(depthTex,_ZBufferParams);//获取水面模型顶点在观察空间下的Z值可以在顶点着色器中对其直接进行转化得到顶点观察空间下的坐标float4 depthWater depthScene i.positionVS.z;//2、水的颜色线性插值得到水 和 接触物体的水的 颜色的过度half4 waterColor lerp(_WaterColor1,_WaterColor2,depthWater);//3、水面泡沫//对泡沫纹理进行采样(这里使用顶点世界空间下的坐标进行纹理采样防止水体缩放影响泡沫的平铺和重复方式)half4 foamTex SAMPLE_TEXTURE2D(_FoamTex,sampler_FoamTex,i.uv.zw);foamTex pow(foamTex,_FoamNoise);//这里增加一个调整深度图范围的功能half4 foamRange depthWater * _FoamRange;//使用泡沫纹理 和 泡沫范围 比较得到泡沫遮罩half4 foamMask step(foamRange,foamTex);//给泡沫加上颜色half4 foamColor foamMask * _FoamColor;half4 col foamColor waterColor;//4、水下的扭曲half4 distortTex SAMPLE_TEXTURE2D(_DistortTex,sampler_DistortTex,i.uv.xy);float2 distortUV lerp(screenUV,distortTex,_Distort);half4 cameraOpaqueTex SAMPLE_TEXTURE2D(_CameraOpaqueTexture,sampler_CameraOpaqueTexture,distortUV);col * cameraOpaqueTex;//水的高光//水的反射//水的焦散return col;}ENDHLSL}}FallBack Hidden/Shader Graph/FallbackError }
http://www.hkea.cn/news/14522193/

相关文章:

  • 简单网站的制作wordpress 产品报价系统
  • phpmysql网站开发wordpress 关闭伪静态
  • 建设网站最好的网络营销服务有限公司
  • 深圳做网站哪家公司专业成都本地宝新闻动态
  • 深圳品牌月饼排名seo刷关键词排名软件
  • 大型网站 网站建设深圳哪些公司需要做网站
  • 做网站需要了解什么软件拓客网站建设
  • 旧衣收购哪个网站做的好企业管理咨询的工作主体
  • 网站留言板制作临淄信息网招聘最新信息
  • 河南做网站企起网站建设链接怎么加上去
  • 网站开发代码交接文档书优秀网页设计作品案例欣赏
  • 外贸零售网站建设网站 加域名
  • 旅游网站html模板做pc网站软件
  • 可以在什么网站做二建题目吉林seo刷关键词排名优化
  • h5页面版式设计有哪些方法南宁怎么做seo团队
  • 可以做 描文本链接的网站网站产品展示代码
  • 重庆建网站公司关于域名用于接入境外网站说明书
  • 网站首页做30个关键词apache 建立网站
  • 江苏路街道网站建设网站关键词优化排名外包
  • 在线黑科技网站2003 iis网站发布
  • 找网站建设公司哪家好大型购物网站开发
  • 上海网网站建网页制作与设计用什么软件
  • 注册域名之后如何建设网站哈尔滨网络科技公司做网站
  • 服装行业网站建设规划界面设计案例分析
  • 阿里网站导航怎么做的系统管理在哪里
  • 可以做私募股权投资的网站怎么做百度联盟网站
  • 安庆市网站建设公司怎样自己做电影网站
  • 编程网站入门公共资源中心网站建设
  • 图片网站 代码焦作建设厅网站
  • 智冠宝企业网站管理系统石家庄互联网开发