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

html5 微网站模版中国万网官网登录

html5 微网站模版,中国万网官网登录,十字绣网站开发,做网店哪个网站好最终效果 文章目录 最终效果前言unity2022版本 Fullscreen shader graph首先#xff0c;请注意你的Inity版本#xff0c;是不是2022.2以上#xff0c;并且项目是URP项且基本配置 修改shader graph边缘效果动起来优化科幻风制作一些变量最终效果最终节点图代码控制 2022之前版…最终效果 文章目录 最终效果前言unity2022版本 Fullscreen shader graph首先请注意你的Inity版本是不是2022.2以上并且项目是URP项且基本配置 修改shader graph边缘效果动起来优化科幻风制作一些变量最终效果最终节点图代码控制 2022之前版本下载 Blit Render Feature 脚本 不使用shader graph参考完结 前言 今天和大家一起来学习一下unity2022版本新出的全屏shader graph如果在2022之前想要实现全屏shader,可能还需要自己写脚本但是在2022.2的版本之后unity将它纳入了进来。 unity2022版本 Fullscreen shader graph 首先请注意你的Inity版本是不是2022.2以上并且项目是URP项且 基本配置 紧接着我们创建一个Fullscreen shader graph 下面我们就要使用它了修改URP配置添加Full Screen Pass Renderer Feature 将我们shader相关的全屏材质给到Pass Material 这时你会发现Game视图变成了灰色 修改shader graph 创建极坐标节点分离他的输出输出的R就是中间黑四周白的渐变然后将它通过乘幂函数进行调整让黑色区域更大 我们需要将shader的Blend Mode设置为Alpha不然看不到效果 效果 边缘效果 现在我们来创建一个泰森多边形也叫沃洛诺伊图将它和我们的透明度遮罩相乘得到一个新的遮罩然后再连接给最终的透明度通道 效果 动起来 然后我们让他动起来这无疑用到了移动套装时间节点乘以一个速度然后进行偏移之后连接给Angle offset这样泰森多边形就动起来了 效果 优化 我们将最终的输出用Clamp节点限制一下范围0到1避免不必要的显示错误 黑白过渡这里太明显了我们先乘以一个较小的值处理 这里我乘以0.8然后Power指数改为5感觉这样还不错 效果 科幻风 有趣的是如果我们将泰森多边形的Cells作为输出那么我们就会得到一个科幻风的效果 效果 制作一些变量 你可以根据自己的喜好调整这些参数但为了更加方便的进行控制下面我们将制作一些变量跟着我做 颜色 接下来是指数部分他影响遮罩的范围所以定义一个float类型的变量就叫range,默认值5 乘幂之前的这个相乘的数值控制透明的力度就叫他strength 泰森多边形的大小也做一个变量就叫他Size 移动速度做一个变量叫Speed 接下来是泰森多边形的输出我们需要一个Branch分支节点来控制不同的输出这样控制Predicate是否为True,就可以控制输出了。我们也个他做成一个布尔类型的变量就叫Cells 最终效果 最终节点图 代码控制 挂载 2022之前版本 正如前面所说2022之前版本需要自己写脚本好在github上已经有大佬帮我们写好了我们不用关心怎么做的只要会用就行。 下载 Blit Render Feature 脚本 github地址https://github.com/Cyanilux/URP_BlitRenderFeature 复制Blit.cs脚本到我们本地 打不开或者嫌麻烦的复制我下面的代码就行了我已经复制过来了 using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal;/** Blit Renderer Feature https://github.com/Cyanilux/URP_BlitRenderFeature* ------------------------------------------------------------------------------------------------------------------------* Based on the Blit from the UniversalRenderingExamples* https://github.com/Unity-Technologies/UniversalRenderingExamples/tree/master/Assets/Scripts/Runtime/RenderPasses* * Extended to allow for :* - Specific access to selecting a source and destination (via current cameras color / texture id / render texture object* - (Pre-2021.2/v12) Automatic switching to using _AfterPostProcessTexture for After Rendering event, in order to correctly handle the blit after post processing is applied* - Setting a _InverseView matrix (cameraToWorldMatrix), for shaders that might need it to handle calculations from screen space to world.* e.g. Reconstruct world pos from depth : https://www.cyanilux.com/tutorials/depth/#blit-perspective * - (2020.2/v10 ) Enabling generation of DepthNormals (_CameraNormalsTexture)* This will only include shaders who have a DepthNormals pass (mostly Lit Shaders / Graphs)(workaround for Unlit Shaders / Graphs: https://gist.github.com/Cyanilux/be5a796cf6ddb20f20a586b94be93f2b)* ------------------------------------------------------------------------------------------------------------------------* Cyanilux */namespace Cyan { /* CreateAssetMenu here allows creating the ScriptableObject without being attached to a Renderer Asset Can then Enqueue the pass manually via https://gist.github.com/Cyanilux/8fb3353529887e4184159841b8cad208 as a workaround for 2D Renderer not supporting features (prior to 2021.2). Uncomment if needed. */ // [CreateAssetMenu(menuName Cyan/Blit)] public class Blit : ScriptableRendererFeature {public class BlitPass : ScriptableRenderPass {public Material blitMaterial null;public FilterMode filterMode { get; set; }private BlitSettings settings;private RenderTargetIdentifier source { get; set; }private RenderTargetIdentifier destination { get; set; }RenderTargetHandle m_TemporaryColorTexture;RenderTargetHandle m_DestinationTexture;string m_ProfilerTag;#if !UNITY_2020_2_OR_NEWER // v8private ScriptableRenderer renderer; #endifpublic BlitPass(RenderPassEvent renderPassEvent, BlitSettings settings, string tag) {this.renderPassEvent renderPassEvent;this.settings settings;blitMaterial settings.blitMaterial;m_ProfilerTag tag;m_TemporaryColorTexture.Init(_TemporaryColorTexture);if (settings.dstType Target.TextureID) {m_DestinationTexture.Init(settings.dstTextureId);}}public void Setup(ScriptableRenderer renderer) { #if UNITY_2020_2_OR_NEWER // v10if (settings.requireDepthNormals)ConfigureInput(ScriptableRenderPassInput.Normal); #else // v8this.renderer renderer; #endif}public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) {CommandBuffer cmd CommandBufferPool.Get(m_ProfilerTag);RenderTextureDescriptor opaqueDesc renderingData.cameraData.cameraTargetDescriptor;opaqueDesc.depthBufferBits 0;// Set Source / Destination #if UNITY_2020_2_OR_NEWER // v10var renderer renderingData.cameraData.renderer; #else // v8// For older versions, cameraData.renderer is internal so cant be accessed. Will pass it through from AddRenderPasses insteadvar renderer this.renderer; #endif// note : Seems this has to be done in here rather than in AddRenderPasses to work correctly in 2021.2if (settings.srcType Target.CameraColor) {source renderer.cameraColorTarget;} else if (settings.srcType Target.TextureID) {source new RenderTargetIdentifier(settings.srcTextureId);} else if (settings.srcType Target.RenderTextureObject) {source new RenderTargetIdentifier(settings.srcTextureObject);}if (settings.dstType Target.CameraColor) {destination renderer.cameraColorTarget;} else if (settings.dstType Target.TextureID) {destination new RenderTargetIdentifier(settings.dstTextureId);} else if (settings.dstType Target.RenderTextureObject) {destination new RenderTargetIdentifier(settings.dstTextureObject);}if (settings.setInverseViewMatrix) {Shader.SetGlobalMatrix(_InverseView, renderingData.cameraData.camera.cameraToWorldMatrix);}if (settings.dstType Target.TextureID) {if (settings.overrideGraphicsFormat) {opaqueDesc.graphicsFormat settings.graphicsFormat;}cmd.GetTemporaryRT(m_DestinationTexture.id, opaqueDesc, filterMode);}//Debug.Log($src {source}, dst {destination} );// Cant read and write to same color target, use a TemporaryRTif (source destination || (settings.srcType settings.dstType settings.srcType Target.CameraColor)) {cmd.GetTemporaryRT(m_TemporaryColorTexture.id, opaqueDesc, filterMode);Blit(cmd, source, m_TemporaryColorTexture.Identifier(), blitMaterial, settings.blitMaterialPassIndex);Blit(cmd, m_TemporaryColorTexture.Identifier(), destination);} else {Blit(cmd, source, destination, blitMaterial, settings.blitMaterialPassIndex);}context.ExecuteCommandBuffer(cmd);CommandBufferPool.Release(cmd);}public override void FrameCleanup(CommandBuffer cmd) {if (settings.dstType Target.TextureID) {cmd.ReleaseTemporaryRT(m_DestinationTexture.id);}if (source destination || (settings.srcType settings.dstType settings.srcType Target.CameraColor)) {cmd.ReleaseTemporaryRT(m_TemporaryColorTexture.id);}}}[System.Serializable]public class BlitSettings {public RenderPassEvent Event RenderPassEvent.AfterRenderingOpaques;public Material blitMaterial null;public int blitMaterialPassIndex 0;public bool setInverseViewMatrix false;public bool requireDepthNormals false;public Target srcType Target.CameraColor;public string srcTextureId _CameraColorTexture;public RenderTexture srcTextureObject;public Target dstType Target.CameraColor;public string dstTextureId _BlitPassTexture;public RenderTexture dstTextureObject;public bool overrideGraphicsFormat false;public UnityEngine.Experimental.Rendering.GraphicsFormat graphicsFormat;public bool canShowInSceneView true;}public enum Target {CameraColor,TextureID,RenderTextureObject}public BlitSettings settings new BlitSettings();public BlitPass blitPass;public override void Create() {var passIndex settings.blitMaterial ! null ? settings.blitMaterial.passCount - 1 : 1;settings.blitMaterialPassIndex Mathf.Clamp(settings.blitMaterialPassIndex, -1, passIndex);blitPass new BlitPass(settings.Event, settings, name);#if !UNITY_2021_2_OR_NEWERif (settings.Event RenderPassEvent.AfterRenderingPostProcessing) {Debug.LogWarning(Note that the \After Rendering Post Processing\s Color target doesnt seem to work? (or might work, but doesnt contain the post processing) :( -- Use \After Rendering\ instead!);} #endifif (settings.graphicsFormat UnityEngine.Experimental.Rendering.GraphicsFormat.None) {settings.graphicsFormat SystemInfo.GetGraphicsFormat(UnityEngine.Experimental.Rendering.DefaultFormat.LDR);}}public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) {if (renderingData.cameraData.isPreviewCamera) return;if (!settings.canShowInSceneView renderingData.cameraData.isSceneViewCamera) return;if (settings.blitMaterial null) {Debug.LogWarningFormat(Missing Blit Material. {0} blit pass will not execute. Check for missing reference in the assigned renderer., GetType().Name);return;}#if !UNITY_2021_2_OR_NEWER// AfterRenderingPostProcessing event is fixed in 2021.2 so this workaround is no longer requiredif (settings.Event RenderPassEvent.AfterRenderingPostProcessing) {} else if (settings.Event RenderPassEvent.AfterRendering renderingData.postProcessingEnabled) {// If event is AfterRendering, and src/dst is using CameraColor, switch to _AfterPostProcessTexture instead.if (settings.srcType Target.CameraColor) {settings.srcType Target.TextureID;settings.srcTextureId _AfterPostProcessTexture;}if (settings.dstType Target.CameraColor) {settings.dstType Target.TextureID;settings.dstTextureId _AfterPostProcessTexture;}} else {// If src/dst is using _AfterPostProcessTexture, switch back to CameraColorif (settings.srcType Target.TextureID settings.srcTextureId _AfterPostProcessTexture) {settings.srcType Target.CameraColor;settings.srcTextureId ;}if (settings.dstType Target.TextureID settings.dstTextureId _AfterPostProcessTexture) {settings.dstType Target.CameraColor;settings.dstTextureId ;}} #endifblitPass.Setup(renderer);renderer.EnqueuePass(blitPass);}} }新增或空白阴影图Blank Shader Graph或者lit Shader Graph其实都可以 其实这一步跟前面类似不过这里只是添加我们自己定义了URP配置脚本 配置材质 如果我们想要全屏效果不希望它受处理效果的影响您可以选择After Rendering Transparents在渲染后处理效果后 但我们这里选择After Rendering Opaques 渲染不透明后因为我希望它受到后处理效果影响 修改配置shader graph 连线参考和前面一样即可 不使用shader graph 当然如果你不想使用shader graph实现全屏效果也是可以的可以参考我之前的文章 【unity小技巧】受伤屏幕闪红、死亡动画、死亡黑屏效果 参考 https://www.bilibili.com/video/BV1gX4y1q72t/ https://www.youtube.com/watch?vmCpRxFP2J1c https://www.youtube.com/watch?vhqz4TnvC3fQ 完结 赠人玫瑰手有余香如果文章内容对你有所帮助请不要吝啬你的点赞评论和关注你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法也欢迎评论私信告诉我哦 好了我是向宇https://xiangyu.blog.csdn.net 一位在小公司默默奋斗的开发者闲暇之余边学习边记录分享站在巨人的肩膀上通过学习前辈们的经验总是会给我很多帮助和启发如果你遇到任何问题也欢迎你评论私信找我 虽然有些问题我也不一定会但是我会查阅各方资料争取给出最好的建议希望可以帮助更多想学编程的人共勉~
http://www.hkea.cn/news/14574158/

相关文章:

  • 免费手机网站模板下载口碑好的网站建设
  • 个人做医疗类网站违法vs2008做网站
  • 自助建站网站平台汽车网站建设工作室
  • 浙江台州网站制作智慧团建如何在手机上登录
  • wordpress适合做大型网站吗wordpress主题集成插件
  • 做网站应达到什么效果网站建设在马来西亚
  • 培训机构一般在什么网站做推广模具设计与制造
  • 建设银行网站会员怎么注册桂林市区面积
  • 网站提示404error旅游网站建设的建议
  • 校园网站建设素材网站备案查询主办单位性质为个人
  • 网站优化主要优化哪些地方wordpress加侧边栏
  • 网站建设一般多钱华强北 网站建设
  • 高端网站建设北京火车头采集器wordpress
  • 品牌型网站设计推荐网站恶意刷
  • 重庆工业网站建设杭州千锋教育地址
  • txt网站推荐自己能做网站吗
  • 网站域名如何注册建网站软件有哪些
  • 建设网站 软件推荐好口碑关键词优化地址
  • 做网站还需要续费河南企业网站推广
  • 网站后台数据库设计wordpress 斜杠结尾
  • 做网站平台公司哪家好搜索引擎优化简历
  • 免费做网站网站域名空间费一年多少钱
  • 人和兽做的网站视频冀州市网站建设
  • 上海嘉定区网站建设公司如何用dw做旅游网站目录
  • 贵州省住房城乡建设网站邯郸经济技术开发区
  • 广州网站制作公司做网站导航能赚钱吗
  • 舟山建设信息港网站服装公司网站策划书
  • 单位门户网站建设谷歌网站推广排名工具
  • 宁波网站关键词排名提升做网站 服务器多少钱一年
  • 网站建设走无形资产一站建设个人网站