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

为网站开发新媒体运营培训班

为网站开发,新媒体运营培训班,成都网站的建设,给别人做的网站要复杂做安全扫描文章目录 前言一、搭建预备场景1、新建一个面片#xff0c;使其倾斜一个角度#xff0c;来模拟水底和岸边的效果2、随便创建几个物体#xff0c;作为与水面接触的物体3、再新建一个面片#xff0c;作为水面 二、开始编写水体的Shader效果1、新建一个URP基础Shader2、把水体… 文章目录 前言一、搭建预备场景1、新建一个面片使其倾斜一个角度来模拟水底和岸边的效果2、随便创建几个物体作为与水面接触的物体3、再新建一个面片作为水面 二、开始编写水体的Shader效果1、新建一个URP基础Shader2、把水体Shader分解为以下几个部分 三、实现水的深度效果1、在URP管线设置下打开深度图2、在SubShader中申明深度图纹理和采样器3、修改水体渲染为半透明队列4、在Pass中关闭深度写入5、获取水体顶点在观察空间下的坐标6、把采样到的深度图转化到观察空间下7、最后用观察空间下的 深度图 和 水体顶点坐标的Z值相加即可 四、最终代码 及 效果1、最终效果2、最终代码 前言 在之后的文章中我们在URP下实现水面的效果。 在该文章中我们来看一下水的深度是怎么实现的。 一、搭建预备场景 1、新建一个面片使其倾斜一个角度来模拟水底和岸边的效果 2、随便创建几个物体作为与水面接触的物体 3、再新建一个面片作为水面 二、开始编写水体的Shader效果 1、新建一个URP基础Shader //水的深度 Shader MyShader/URP/P4_7_2 {Properties {}SubShader{Tags{//告诉引擎该Shader只用于 URP 渲染管线RenderPipelineUniversalPipeline//渲染类型RenderTypeOpaque//渲染队列QueueGeometry}Pass{Name Universal ForwardTags{// LightMode: None}Cull BackBlend One ZeroZTest LEqualZWrite OnHLSLPROGRAM#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/Input.hlsl//struct appdata//顶点着色器的输入struct Attributes{float3 positionOS : POSITION;};//struct v2f//片元着色器的输入struct Varyings{float4 positionCS : SV_POSITION;};//v2f vert(Attributes v)//顶点着色器Varyings vert(Attributes v){Varyings o (Varyings)0;float3 positionWS TransformObjectToWorld(v.positionOS);o.positionCS TransformWorldToHClip(positionWS);return o;}//fixed4 frag(v2f i) : SV_TARGET//片元着色器half4 frag(Varyings i) : SV_TARGET{//水的深度//水的高光//水的反射//水的焦散//水下的扭曲half4 c;c.rgb 0.5;c.a 1;return c;}ENDHLSL}}FallBack Hidden/Shader Graph/FallbackError }2、把水体Shader分解为以下几个部分 水的深度水的高光水的反射水的焦散水下的扭曲水面泡沫 三、实现水的深度效果 这个可以利用深度图仿照之前能量罩交接处高光的效果来做 Unity中URP下实现能量罩交接处高亮 1、在URP管线设置下打开深度图 2、在SubShader中申明深度图纹理和采样器 //申明深度图的 纹理 和 采样器 TEXTURE2D(_CameraDepthTexture);SAMPLER(sampler_CameraDepthTexture); 3、修改水体渲染为半透明队列 Tags { //告诉引擎该Shader只用于 URP 渲染管线 “RenderPipeline”“UniversalPipeline” //渲染类型 “RenderType”“Transparent” //渲染队列 “Queue”“Transparent” } 4、在Pass中关闭深度写入 ZWrite Off 5、获取水体顶点在观察空间下的坐标 在Varyings结构体定义positionVS变量用于存储顶点在观察空间下的坐标 struct Varyings { float4 positionCS : SV_POSITION; float2 uv : TEXCOORD0; float3 positionVS : TEXCOORD1; }; 在顶点着色器中对把顶点转化到观察空间下 o.positionVS TransformWorldToView(positionWS); 6、把采样到的深度图转化到观察空间下 float depthScene LinearEyeDepth(depthTex,_ZBufferParams); 7、最后用观察空间下的 深度图 和 水体顶点坐标的Z值相加即可 float4 depthWater depthhScene i.positionVS.z; 四、最终代码 及 效果 1、最终效果 2、最终代码 //水的深度 Shader MyShader/URP/P4_8_2 {Properties {}SubShader{Tags{//告诉引擎该Shader只用于 URP 渲染管线RenderPipelineUniversalPipeline//渲染类型RenderTypeTransparent//渲染队列QueueTransparent}//Blend One OneZWrite 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)CBUFFER_ENDTEXTURE2D(_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;float4 screenPos : TEXCOORD1;float3 positionVS : TEXCOORD2;};//v2f vert(Attributes v)//顶点着色器Varyings vert(Attributes v){Varyings o (Varyings)0;float3 positionWS TransformObjectToWorld(v.positionOS);o.positionVS TransformWorldToView(positionWS);o.positionCS TransformWViewToHClip(o.positionVS);o.screenPos ComputeScreenPos(o.positionCS);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);float4 depthWater depthScene i.positionVS.z;//获取水面模型顶点在观察空间下的Z值可以在顶点着色器中对其直接进行转化得到顶点观察空间下的坐标//2、水的高光//3、水的反射//4、水的焦散//5、水下的扭曲//6、水面泡沫return depthWater;}ENDHLSL}}FallBack Hidden/Shader Graph/FallbackError }
http://www.zqtcl.cn/news/664770/

相关文章:

  • php做网站特效wordpress开启xmlrppc
  • 顺义重庆网站建设纪检监察网站建设
  • 网站制作源码企业品牌推广方式有哪些
  • 简述制作网站的流程网站开发后端用什么
  • 长沙好的网站建设公司厦门建网站多少钱
  • wordpress id清0中山网站的优化
  • 泰州网站制作维护服务器调用wordpress
  • 网站建设飠金手指下拉c 网站开发 环境配置
  • 派点网站建设物流公司做网站哪家好
  • 最便宜的外贸自建站平台wordpress 主题 mip
  • wordpress动漫视频网站黄冈网站推广策略
  • 做推广的网站带宽需要多少钱asp网站防攻击
  • 网站企业wordpress需要php几
  • 广州微信网站制作icp备案号查询官网
  • 网站建设 搜狐网络游戏排行榜2020
  • 比较好的做简历的网站更换网站模板
  • 网站如何兼容大多浏览器怎么做运营网站
  • 企业网站首页flash口红机网站怎么做的
  • 建网站算法制作网页软件手机版
  • vr技术在网站建设的应用营销内容包括哪些方面
  • 网站规划与开发技术专业优化措施二十条
  • 通州区网站快速排名方案视频网站视频预览怎么做
  • 同创企业网站源码建筑行业公司排名
  • 温州网站建设服务建设商务网站公司
  • 导视设计网站推荐创业平台的选择
  • 营销网站建设设计义乌 网站制作
  • 南通企业网站建设公司庆阳网站建设与制作
  • 做k12网站wordpress调用第一张图片不显示
  • 网站建设和维护要点网站建设完提交百度
  • app开发人员网站上海保洁服务网站建设