URP

2024/4/13 5:01:05

URP源码学习(一)整体框架理解

2021.12.2更新。源码基于URP12,最新的URP已经是13,但是功能上没有大的改动,还是以12为基础理解URP。 开篇 unity新出的SRP功能,可能是渲染的未来(希望是),但是资料比较少,做手游开…

URP/LWRP学习入门

要了解什么是URP,首先得先了解什么是SRP.而要了解什么是SRP,又得先了解什么是RenderPipeline.我们先来看看RenderPipeline究竟是什么. RenderPipeline 在游戏场景中,有很多的模型效果需要绘制,如有不透明的(Opaque Object)、透明的(Transparencies)物体,有时候又需要使用屏幕…

URP源码学习(七)一些细节和理解

RT理解 RT是什么,用在哪 首先rt是一张特殊贴图,这张贴图对应的是GPU上的FrameBuffer,一般用到的是颜色和深度,从这张图取数据用于计算,或是直接对这张图进行修改,以得到想要的效果。 FrameBuffer就是gpu里…

在URP管线中添加ShaderMaterial自定义GUI的方法

编写GUI面板 1. 新建GUI子面板 using UnityEngine; using UnityEngine.Rendering;namespace UnityEditor.Rendering.Universal.ShaderGUI {internal class CP_XXXOutLineGUI{public static class Styles{}public struct LitProperties{public LitProperties(MaterialProperty…

URP从原理到应用——进阶篇

上周我们推出了《URP从原理到应用》的基础篇,本期进阶篇来袭,教你如何对URP代码级进行定制化的性能优化。 1.1 前言 在SRP中C提供了最底层的渲染接口,URP和HDRP根据底层渲染接口构建出各自的渲染管线。如下图所示,整个帧渲染的每个…

使用ScriptableObject代替部分配置表的坑点

1)使用ScriptableObject代替部分配置表的坑点 ​2)加载配置内存过大问题 3)URP的UI在Android模型器下比在真机上暗 4)Unity在Windows上第一次运行Play启动很慢 5)如何正确卸载UnityWebRequest下载的图片资源 这是第231…

Unity之Hololens如何升级MRTK内置shader支持URP

一.前言 什么是Hololens? Hololens是由微软开发的一款混合现实头戴式设备,它将虚拟内容与现实世界相结合,为用户提供了沉浸式的AR体验。Hololens通过内置的传感器和摄像头,能够感知用户的环境,并在用户的视野中显示虚拟对象。这使得用户可以与虚拟内容进行互动,将数字信…

Unity之ShaderGraph如何实现旋涡效果

前言 今天我们来通过ShaderGraph来实现一个旋涡的效果 如下图所示: 主要节点 Distance:返回输入 A 和输入 B 的值之间的欧几里德距离。除了其他方面的用途,这对于计算空间中两点之间的距离很有用,通常用于计算有符号距离函数 (…

在2023年使用Unity2021从Built-in升级到Urp可行么

因为最近在做WEbgl平台,所以某些不可抗力原因,需要使用Unity2021开发,又由于不可明说原因,想用Urp,怎么办? 目录 创建RenderAsset 关联Asset 暴力转换(Menu->Edit) 单个文件…

Unity2D-URP基于ShaderGraph创建带粒子特效的激光光束

文章目录 创建Shader新建Node: UV新建Node: Split......参数说明 基于Shader创建Material创建Line创建粒子系统StartVFX创建粒子材质更改粒子系统的材质设置透明模式设置粒子效果创建一个Beam设置EndVFX效果预览激光光束管理脚本最终预览 创建Shader Create --> Shader Gra…

URP内置Lit.Shader文件ForwardLit Pass解析

文章目录 Lit 主文件PropertiesSubShader代码块FormardLit标签编译命令声明关键字材质属性关键字 Material Keywords渲染流水线关键词 Universal Pipeline keywordsUnity定义的关键词 Unity defined keywords 包含指令 1. LitInput.hlsl(1)属性变量&…

Unity SRP 管线【第四讲:URP 阴影】

URP 全文源码解析参照 引入 在UniversalRenderer.cs/ line 505行处 此处已经准备好了所有渲染数据(所有数据全部存储在了renderingData中) 我们只用renderingData中的数据初设置mainLightShadows bool mainLightShadows m_MainLightShadowCasterPass…

Shader基础的简单实现(基于URP渲染)

一个模型是很多个顶点组成,顶点数据中包含坐标、法线、切线、UV坐标、顶点颜色等等组成。 URP(Universal Render Pipeline)通用渲染管线,是Unity在2019.3版本之后推出的一种新的渲染管线。传统的渲染管线在渲染多光源的情况,是把每一个主要光…

深入URP之Shader篇14: GPU Instancing

GPU Instancing 必须是同一个模型,材质也必须相同,但材质的参数可以不同(使用MaterialPropertyBlock指定),然后基于一个Instanced Draw Call,一次性绘制多个模型。 参考:https://docs.unity3d.…

Unity URP的四种shader model

https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal10.3/manual/shading-model.html https://gist.github.com/phi-lira/225cd7c5e8545be602dca4eb5ed111ba 模板 本例 用了一个Point Light 加 DirectionLight, Bakedlit这个模型需要设置物体为static 并…

Unity之ShaderGraph如何实现积雪效果

前言 我们在一些特殊场景,比如冰雪天,经常会对周围物体添加一些积雪效果,如果我们直接把积雪做到模型上,就无法更加灵活的表现其他天气的环境了,比如春夏秋冬切换。所以一般这种需求我们都是使用Shader来表现。 入下图…

Unity RenderFeature架构分析

自定义RenderFeature接口流程 URP内部ScriptableRenderPass分析 public、protected属性 renderPassEvent :渲染事件发生的时刻colorAttachments :渲染的颜色纹理列表 m_ColorAttachmentscolorAttachment :m_ColorAttachments[0];depthAttac…

URP源码学习(二)管线,pipeline

对管线的理解 首先这里的管线,指的是图形学上的管线,渲染一帧需要的所有逻辑,要和后边说的前向渲染管线做个区分。 简单来说,分成几个部分,首先是管线的配置,也就是之前内置管线Quality Setting里的各种数…

URP自定义后处理(相机滤镜)

前言 之前做游戏一直想弄个可以实时触发相机滤镜的效果,自处找了教程和资料,想要做到自定义效果的话最好办法是在unity 内部实现,这个办法比较硬核,其实不适合我这样的小白,所以我在实现的过程中非常痛苦,…

项目升级到URP遇到的问题

Untiy 推出SRP 已经接近一年了,其中官方宣称 LWRP 在2018年年底时已经处于 production ready 既随时可以做产品了,于是改名为URP, 不过 HDRP 还需要2019.4 的到来才能到达完整版。 不过在我看来 URP 还不能说是 production ready 还处于玩具过渡到产品阶…

Unity里URP项目的介绍和创建

大家好,我是阿赵,接下来会介绍一下URP的使用 一、URP的介绍 URP(Universal Render Pipeline)通用渲染管线,是Unity在2019.3版本之后推出的一种新的渲染管线。 对比起默认的渲染管线,他的使用上会产生了一些变化,包括…

URP下与Built-in的Light Color不一致

1)URP下与Built-in的Light Color不一致 ​2)开启MSAA的RenderTarget会对没开启MSAA的RenderTarget造成影响 3)角色Mesh合并的优点与缺点 4)NGUI渲染层级的原理 5)Unity上App图标安装到设备上图标模糊,设置上…

Unity之ShaderGraph如何实现马赛克效果

前言 今天我们来实现一个马赛克的效果 如下所示: 关键节点 Posterize:色调分离节点 图像的色调分离或色调分离需要将色调的连续渐变转换为色调较少的几个区域,并从一种色调突然改变为另一种色调。 原理 原理就是通过色调分离节点&…

URP——后期处理特效

通用渲染管道(URP)包括一个后处理效果的集成实现。如果使用URP,则不需要为后期处理效果安装额外的包。URP与Post Processing Stack v2包不兼容。 URP使用体积框架进行后期处理效果。 下面的图片显示了一个URP场景有没有后期处理的区别。 没有后期处理特效&#x…

关于_CameraDepthTexture的疑惑

1)关于_CameraDepthTexture的疑惑 ​2)贴图Alpha通道对图片大小的影响 3)URP要怎么实现GrabPass的效果 4)如何获取AssetDatabase加载失败的Asset的Instance ID 5)如何判断Bundle文件加载进内存的时机 这是第226篇UWA技…

URP学习--LitShader

我们来看一下URP下的LitShader。LitShader也是基于物理渲染的,很多方法和属性看过默认管线PBR代码的应该都会很熟悉,我们现在再过一遍,加深一下印象,同时疏通一下以前可能没有掌握的地方。 先看Shader的Properties: …

URP源码学习(三)UniversalRenderer渲染管线

整体理解 这部分算是URP的核心了,可编程管线,说的就是这个,有能力的项目,可以根据需要,做出更适合项目的管线。 unity提供了两个默认实现,一个是Universal(内部封装了forward和deferred&#…

Unity的URP下各种光照模型实现

大家好,我是阿赵 之前介绍过几种常见的光照模型的写法,可以回顾一下 各种光照模型的shader实现 这里再用HLSL写一遍 一、完整的Shader Shader "azhao/HLSLLight" {Properties{_MainTex ("Texture", 2D) "white" {}_mainColor(&qu…

Unity之ShaderGraph如何实现无贴图水球效果

前言 我们今天来实现一个无贴图水球效果,如下图所示: 主要节点 UVSplit:可以获得UV在RGB三个颜色分别的分量 Remap:重映射节点 基于输入 In 值在输入In Min Max的 x 和 y 分量之间的线性插值,返回输入Out Min Max…

Unity - 通用渲染管线(URP)1.渲染、后处理

简介 URP是一种预置的可编程渲染管线。可以实现快速的渲染而不需要shader技术。URP使用简化的基于物理的光照和材质。 URP继承自’RenderPipelineAsset’,当我们将URP设置到Graphics Setting时,Unity将内置的渲染管线转换到URP。 在URP中可以对下面一些…

一图流梳理URP Lit.Shader结构

共包含Lit.Shader LitInput.hlsl LitForwardPass.hlsl UniversalFragmentPBR()四个部分 话不多说 ,直接上图。

3D RPG Course | Core 学习日记一:初识URP

前言 最近开始学习Unity中文课堂M_Studio(麦大)的3D RPG Course,学习一下3D RPG游戏核心功能的实现,第一课我们学习到的是地图场景的编辑,其中涉及到了URP渲染。 我们首先进入Unity资源商店把地图素材和人物素材导入好…

Unity里面CG和HLSL在写法上的一些区别

大家好,我是阿赵。这里继续讲URP相关的内容。 这次想讲的是CG和HLSL在写法上的一些区别。 一、为什么开始用HLSL 首先,基本上大家都知道的事情再说一遍。 三种Shader编程语言: 1、基于OpenGL的OpenGL Shading Language,缩写GLSL…

URP学习第五章 记一下源码在哪查看

这是我的项目路径 D:\Unity\Project\My project 然后经过寻找 D:\Unity\Project\My project\Library\PackageCache就是大部分shader了 比如这个 com.unity.render-pipelines.core14.0.9 再比如这个 com.unity.render-pipelines.universal14.0.9\ShaderLibrary 可以在这里看见l…

URP学习第三章使用instance

背景 Instance绘制是比较优化的一种操作,这个后面可以搭配indirectdraw的 先来学习一下URP里如何朴素的使用他 大致概括 1 properties里加上他的type和name 2 UNITY_INSTANCING_BUFFER_START UNITY_DEFINE_INSTANCED_PROP UNITY_INSTANCING_BUFFER_END这里三连之…

URP自定义屏幕后处理

回到目录 大家好,我是阿赵。这次来说一下URP渲染管线里面怎样使用后处理效果,还有怎样去自定义后处理效果。 一、使用URP自带的后处理效果 要使用URP自带的后处理效果,方法很简单,和Unity内置渲染管线的PostProcessing后处理很…

Unity URP下阴影锯齿

1.概述 在Unity开发的URP项目中出现阴影有明显锯齿。如下图所示: 并且在主光源的Shadow Type已经是Soft Shadows模式了。 2.URP Asset 阴影出现锯齿说明阴影质量不高,所以要先找到URP Asset文件进行阴影质量参数的设置。 1.打开PlayerSetting找到Graph…

URP学习第二章,如何使用shadergraph

用过blender节点和UE蓝图,这个也就不那么陌生了 以这个为例 这里按一下加号就能多一个变量,这就是外部输入,你在这写了,材质球那就看得见了 有的材质需要透明,比如水 然后这个shader graph顺序是从左边连到右边去 …

Unity之ShaderGraph如何实现全息投影效果

前言 今天我们来实现一个全息投影的效果,如下所示: 主要节点 Position:提供对网格顶点或片段的Position 的访问,具体取决于节点所属图形部分的有效着色器阶段。使用Space下拉参数选择输出值的坐标空间。 Time:提…

Unity 渲染管线自动转换的实现 支持HDRP转URP,URP转HDRP

HDRP和URP无法平滑切换,因为属性、功能差异巨大。 本脚本仅对可对应的默认脚本和属性做了转换处理。细节调整还需自己搞。 自动转换可以节省手动更换shader、texture、通用属性的劳动成本。 操作步骤 使用前确保当前项目中存在HDRP和URP的包,没有请到p…

Unity 基础之 URP 项目创建\项目转URP Pipline

Unity 基础之 URP 项目创建\项目转URP Pipline 目录 Unity 基础之 URP 项目创建\项目转URP Pipline 一、简单介绍 二、创建 URP 项目 三、工程项目转 URP 一、简单介绍 Unity中的一些基础知识点,方便日后查阅。 Unity游戏开发中,这里简单介绍如何创…

Unity之ShaderGraph如何实现边缘光效果

前言 游戏中最常用的一个效果就是边缘光了,既可以做物体的高亮效果,也可以给人物皮肤表面添加光泽。如下图所示: 实现原理 边缘光的原理就是Fresnel节点的底层逻辑。 Fresnel:菲涅尔效应是根据视角不同表面上反射率不同的效应…

Unity之ShaderGraph如何实现水波纹效果

前言 今天我们来实现一个水波纹的效果 如下图所示: 主要节点 Normalize :返回输入 In 的标准化值。输出矢量与输入 In 具有相同的方向,但长度为 1。 Length:返回输入 In 的长度。这也称为大小 (magnitude)。矢量的长度是使用毕达哥拉斯定理 (Pythagorean Theorum) 计算…

URP从原理到应用——基础篇

文章简介 自Unity 2018推出了SRP(可编程渲染管线)以来,基于SRP的基础又推出了URP和HDRP。SRP的出现具有跨时代的意义,内置渲染管线无法对开发者提供一些定制化修改接口,普通开发者无法去学习渲染管线,导致…

Unity SRP 管线【第三讲:URP 光照】

3.2.3 以前属于Shader部分,Shader部分不进行讲解。 这里只涉及Unity内部管线的设置问题。 文章目录 3.2.3 向GPU发送灯光数据设置光源数据设置主光源设置额外点光源 Shader中的数据 3.2.3 向GPU发送灯光数据 在UniversalRenderPipeline.cs > RenderSingleCamera…

Unity之ShaderGraph如何实现飘动的红旗

前言 今天我们来实现一个飘动的红旗 如图所示: 关键节点 SimpleNoise:根据输入UV生成简单噪声或Value噪声。生成的噪声的大小由输入Scale控制。 Split:将输入向量In拆分为四个Float输出R、G、B和A。这些输出向量由输入In的各个通道定义&…

Unity URP 获取Camera Stack

URP 获取Camera Stack 1.using UnityEngine.Rendering.Universal; 2.Camera.main.GetUniversalAdditionalCameraData().cameraStack