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

网站开发 实名认证需要备案吗网站建设主机

网站开发 实名认证需要备案吗,网站建设主机,如何申请个人企业邮箱,互联网小项目可编程渲染管线使用教程 SRP 可以处理Canvas为Screen Space - Overlay的渲染 安装插件 首先进入package manager,下载Core RP Lib组件 创建渲染管线 编写渲染管线逻辑脚本 新建脚本取名为MPipeLine,该脚本用于实现渲染管线的处理逻辑 using Unity…

可编程渲染管线使用教程
SRP 可以处理Canvas为Screen Space - Overlay的渲染

安装插件

首先进入package manager,下载Core RP Lib组件
在这里插入图片描述

创建渲染管线

编写渲染管线逻辑脚本

新建脚本取名为MPipeLine,该脚本用于实现渲染管线的处理逻辑

using UnityEngine;
using UnityEngine.Rendering;public class MPipeLine : RenderPipeline
{public MPipeLine() { }protected override void Render(ScriptableRenderContext context, Camera[] cameras){// 创建渲染指令,默认填充白色var cmd = new CommandBuffer();cmd.ClearRenderTarget(true, true, Color.white);context.ExecuteCommandBuffer(cmd);cmd.Release();// 提交渲染指令context.Submit();}
}

编写渲染管线与编辑器关联

创建脚本MPipelineAsset,用于与unity编辑器建立关联,允许将工程与自定义渲染管线进行绑定

using UnityEngine;
using UnityEngine.Rendering;[CreateAssetMenu(menuName = "Rendering/MPipelineAsset")]
public class MPipelineAsset : RenderPipelineAsset
{protected override RenderPipeline CreatePipeline(){// 渲染逻辑脚本return new MPipeLine();}
}

创建并配置PipeLine Asset

首先创建Asset文件
在这里插入图片描述
在这里插入图片描述
点击Edit > projectsettings > graphics,设置asset为我们刚才新建的那个管线资源
在这里插入图片描述
在这里插入图片描述

编辑渲染管线逻辑

渲染逻辑有两种写法,一种是直接创建指令

    //var cmd = new CommandBuffer() { name = "clear" };//cmd.ClearRenderTarget(true, true, Color.white);//context.ExecuteCommandBuffer(cmd);//cmd.Release();//context.Submit();

另一种是调用渲染api来实现,所有的逻辑要包在Begin、end之间

    RenderPipeline.BeginFrameRendering(context, cameras);// 要渲染的相机Camera camera = cameras[0];// 相机渲染   不透明RenderCamera(context, camera, "shader1", SortingCriteria.CommonOpaque, RenderQueueRange.opaque);RenderCamera(context, camera, "shader2", SortingCriteria.CommonTransparent, RenderQueueRange.transparent);// 结束帧渲染你RenderPipeline.EndFrameRendering(context, cameras);

我们这里使用后者来分别创建透明、不透明、及天空盒的渲染逻辑

  protected override void Render(ScriptableRenderContext context, Camera[] cameras){// 开始帧渲染RenderPipeline.BeginFrameRendering(context, cameras);// 要渲染的相机Camera camera = cameras[0];// 相机渲染   不透明, shader1是自建shader,代码在后面RenderCamera(context, camera, "shader1", SortingCriteria.CommonOpaque, RenderQueueRange.opaque);// 相机渲染   不透明, shader2是自建shader,代码在后面RenderCamera(context, camera, "shader2", SortingCriteria.CommonTransparent, RenderQueueRange.transparent);// 结束帧渲染RenderPipeline.EndFrameRendering(context, cameras);}private void RenderCamera(ScriptableRenderContext context, Camera camera, string TagId, SortingCriteria criteria, RenderQueueRange queue){// 开始渲染摄像机RenderPipeline.BeginCameraRendering(context, camera);// Camera 区域剔除ScriptableCullingParameters cullingParameters = new ScriptableCullingParameters();cullingParameters.cullingOptions |= CullingOptions.OcclusionCull;// 剔除除了default layer之外的layercullingParameters.cullingMask = 1 << 0;camera.TryGetCullingParameters(out cullingParameters);var cullingResults = context.Cull(ref cullingParameters);// 更新当前摄像机内置着色器变量值context.SetupCameraProperties(camera);// DrawingSettings用来描述可见物体的排序方式,以及绘制使用的Shader PassShaderTagId shaderTagId = new ShaderTagId(TagId);var sortingSettings = new SortingSettings(camera) {criteria = criteria };DrawingSettings drawingSettings = new DrawingSettings(shaderTagId, sortingSettings);// 过滤  FilteringSettings用来描述渲染时如何过滤可见物体FilteringSettings filteringSettings = new FilteringSettings(queue);// 绘制图形context.DrawRenderers(cullingResults, ref drawingSettings, ref filteringSettings);// 绘制天空盒if (camera.clearFlags == CameraClearFlags.Skybox && RenderSettings.skybox != null && queue != RenderQueueRange.transparent){context.DrawSkybox(camera);}// 提交渲染按 context.Submit();// 结束渲染摄像机RenderPipeline.EndCameraRendering(context, camera);}

创建着色器

分别创建shader1.shader, shader2.shader两个着色器资源,并将下列代码填入
shader1:

Shader "Custom/mShader1"
{Properties{_MainTex ("Texture", 2D) = "white" {}}SubShader{Blend One OneMinusSrcAlphaPass{Tags { "LightMode"="shader1" }CGPROGRAM#pragma vertex vert#pragma fragment frag// make fog work#pragma multi_compile_fog#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;UNITY_FOG_COORDS(1)float4 vertex : SV_POSITION;};sampler2D _MainTex;float4 _MainTex_ST;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);UNITY_TRANSFER_FOG(o,o.vertex);return o;}fixed4 frag (v2f i) : SV_Target{// sample the texturefixed4 col = tex2D(_MainTex, i.uv);// apply fogUNITY_APPLY_FOG(i.fogCoord, col);return col;}ENDCG}}
}

shader2:

Shader "Custom/mShader2"
{Properties{_MainTex ("Texture", 2D) = "#A84242" {}_MainColor("color", Color) = (1,1,1,1)}SubShader{Tags{"Queue" = "Transparent""RenderType"="Transparent""PreviewType"="Plane"}Cull Off//Lighting On //ZWrite OnBlend One OneMinusSrcAlphaPass{Tags { "LightMode"="shader2" }CGPROGRAM#pragma vertex vert#pragma fragment frag// make fog work#pragma multi_compile_fog#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;UNITY_FOG_COORDS(1)float4 vertex : SV_POSITION;};sampler2D _MainTex;float4 _MainTex_ST;fixed4 _MainColor;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);UNITY_TRANSFER_FOG(o,o.vertex);return o;}fixed4 frag (v2f i) : SV_Target{// sample the texturefixed4 col = tex2D(_MainTex, i.uv) * _MainColor;// apply fog//UNITY_APPLY_FOG(i.fogCoord, col);col.a = _MainColor.a;return col;}ENDCG}}
}

测试效果

然后创建材质mat1.materil、mat2.materil。 mat1关联shader1,mat2关联shader2,将mat2的color透明度调到100
在这里插入图片描述

在场景中创建cube1和cube2两个方形物体,这时我们是什么都看不到的。
在这里插入图片描述

拖动cube2,一部分挡在cube1前面,并将mat1赋给cube1,mat2赋给cube2。此时我们就能看到自定义渲染管线生效了
在这里插入图片描述

http://www.yayakq.cn/news/736849/

相关文章:

  • 在哪里做马可波罗网站私人为别人做网站违法问题
  • 深圳制作网站建设的企业前端登陆页面设计模板
  • 做网站的任务书app线下推广怎么做
  • 做网站如何提需求软件工程名词解释
  • 怎么做移动端的网站推广公司服务内容
  • 郴州网站建设制作网站名称如何设置
  • 网站开发能怎么赚钱网站建设 微盘下载
  • 网站SEO优化实训wordpress深度优化主题
  • 广东省住房与城乡建设厅网站网站域名做301
  • 建设公司网站的必要性wordpress 载入特别慢
  • 做网站行业如何跟客户交流广州网站设计公司招聘
  • 做外汇的人一般看什么网站金乡县网站开发
  • 网站表单及商品列表详情模板建设工程司法解释(二)
  • 吉林建设厅网站seo实战技巧
  • 广州网站seo公司图片外链
  • 旧货交易网站开发的背景建站市场
  • 用视频做网站背景ppt制作免费模板
  • 如何选择网站空间wordpress 数据喵
  • 建站之星最新版本网站换了域名还被k站不
  • 淘宝买模板注浆做网站网上商城开发价格
  • 青岛做网站的公司哪个好自建设网站
  • 北京网站建设哪家公司好比赛网站开发
  • 网站备份和备案的区别杭州知名网页设计服务商
  • 手机模板的网站四川建设厅证件查询网站
  • 如何在国外网站开发新客人小程序源码怎么运行
  • 为什么要找对做网站的公司广州注册公司费用
  • 怎么建立一个网站广告彩票网站维护会跑路吗
  • 电子商务网站开发需求文档苏州高端网站设计
  • 不用编程做网站晋江市建设局网站
  • 怎么做网站xml地图网站电脑速成培训班