Unity URP ShaderGraph 基本设置

先简单了解一下各种渲染管线之间的区别

Unity 从 2019.3 版本开始正式支持通用渲染管线(URP,Universal Render Pipeline)。URP 是轻量渲染管线(LWRP,Lightweight Render Pipeline)的升级和重命名版本,它提供了更高的性能和可扩展性,并且支持更多的功能,如更高级的光照、阴影和后处理效果。

Unity 提供了三种主要的渲染管线:内置渲染管线(Built-in Render Pipeline)、通用渲染管线(URP,Universal Render Pipeline)和高清渲染管线(HDRP,High Definition Render Pipeline)。它们在性能、图形质量和使用场景上各有侧重。

1. 内置渲染管线(Built-in Render Pipeline)

  • 渲染模式:传统的前向渲染(Forward Rendering)和延迟渲染(Deferred Rendering)。
  • 性能:比较灵活,但由于没有深度优化,可能在高负载场景下性能不佳。
  • 可扩展性:无法像 URP 和 HDRP 一样通过 SRP(Scriptable Render Pipeline)轻松定制。
  • 适用场景:虽然老旧,但兼容性好,适用于中小型项目,特别是对图形效果没有太高要求的项目。

2. 通用渲染管线(URP,Universal Render Pipeline)

  • 渲染模式:前向+自定义渲染路径(支持前向渲染、延迟渲染和更多优化技术)。
  • 性能:相对于内置渲染管线,URP 针对性能做了优化,特别适用于移动设备、VR、AR 和需要跨平台支持的项目。渲染效率更高,降低了性能开销。
  • 图形质量:提供了现代渲染特性,比如 PBR(基于物理的渲染)、更优化的阴影、光照和后处理效果,但不如 HDRP 提供的高端效果。
  • 可扩展性:URP 是基于 SRP 架构的,可通过 Shader Graph 和自定义 Pass 扩展和定制渲染效果。
  • 适用场景:适用于需要兼顾性能和视觉效果的项目,特别是移动游戏、独立游戏、以及需要在多个平台上发布的项目。

3. 高清渲染管线(HDRP,High Definition Render Pipeline)

  • 渲染模式:延迟渲染(Deferred Rendering),支持复杂的光照、反射和后处理效果。
  • 性能:HDRP 主要面向高性能平台,如高端 PC 和次世代主机,追求画面质量优先,因此性能开销较大,不适合低性能设备(如移动设备或低端硬件)。
  • 图形质量:提供了顶级的视觉效果,包括复杂的光照模型、体积光照、反射、次表面散射、全局照明、细节阴影等。非常适合 AAA 级别的项目。
  • 可扩展性:同样基于 SRP,HDRP 提供了非常高的灵活性,允许开发者定制几乎所有的渲染过程。
  • 适用场景:适用于追求极高画质的 AAA 游戏、电影制作、建筑可视化等,主要面向高端硬件和高分辨率显示器。

总结:

  • 内置渲染管线:兼容性好,适合中小型项目,但图形性能和效果较弱,难以定制。
  • URP:性能和质量平衡,适合需要跨平台支持的项目,如移动游戏和独立游戏,提供了现代的渲染特性和定制化能力。
  • HDRP:追求顶级画质,适用于高端设备和高要求的视觉项目,但性能要求高,不适合低端设备。

Shader Graph

Shader Graph 是 Unity 提供的一种可视化工具,允许开发者通过节点编辑器创建着色器,而不需要直接编写代码。这种方式大大降低了开发复杂着色器的难度,特别适合没有深厚编程背景的艺术家和设计师。

我们接下来了解一下在2019.3版本以后,我们怎么打开ShaderGraph的操作界面

选择SRP模板工程

首先在UnityHub界面,我们在创建项目工程的时候,需要选择前面有SRP的模板

 Scriptable Render Pipeline(可编程渲染管线)里面包含了两个主要的预设管线(URP、HDRP)

URP基础设置 

在我们创建好URP工程后,在PlayerSetting中,Graphics里面已经默认设置好了渲染管线为URP

确认好这个设置之后,就可以创建一个ShaderGraph文件

创建

在URP栏,先选择一个最基础的Shader模板,LitShaderGraph

界面布局

  • 全局设置和节点设置属性面板
    • GraphSettings:是对Shader整体的一个设置面板。NodeSettings:对添加的节点进行设置。
  • 公开参数列表
    • 对外开放参数,支持使用者编辑
  • 预览窗口
    • Shader编辑的效果,会展示在这里
  • 节点编辑窗口
    • 用于显示当前ShaderGraph的节点及其连接关系,并支持拖拽、缩放等操作进行对Shader的编辑
  • 菜单栏和工具栏:提供了创建、保存、导出等操作的功能按钮,以及常用的工具和快捷键。

之后的Shader编辑,就在这个页面中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/900714.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【解决】使用Hypermark将Markdown文件转化为HTML文件

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 文章目录 一、文件准备(一)HTML模板文件(二)MD文件夹和储存文件夹 二、文件转…

COSCon'24 志愿者招募令:共创开源新生活!

亲爱的开源爱好者们, 第九届中国开源年会(COSCon24)即将在北京中关村国家自主创新示范区会议中心于2024年11月2日至3日隆重举行。今年的主题是“Open Source, Open Life|开源新生活”,旨在探索开源技术如何在各个领域推…

日常记录,使用springboot,vue2,easyexcel使实现字段的匹配导入

目前的需求是数据库字段固定,而excel的字段不固定,需要实现excel导入到一个数据库内。 首先是前端的字段匹配,显示数据库字段和表头字段 读取表头字段: 我这里实现的是监听器导入,需要新建一个listen类。 读Excel …

uniApp 加载google地图 并规划路线

uniApp 加载google地图 并规划路线 备注:核心代码实例 备注: 打开谷歌地图失败的话 参考google开发文档 https://developers.google.com/maps/documentation/urls/ios-urlscheme?hlzh-cn#swift核心代码 mounted() {this.loadGoogleMapsScript(); }, methods: {//加载loadGo…

AI服务器HBA卡的国产PCIe4.0/5.0 switch信号完整性设计与实现,支持定制(二)

表 2 展示了 PCB 板所选介质材料 PSR4000AUS703 , &#xff3…

解决Redis缓存穿透(缓存空对象、布隆过滤器)

文章目录 背景代码实现前置实体类常量类工具类结果返回类控制层 缓存空对象布隆过滤器结合两种方法 背景 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库 常见的解决方案有两种,分别…

使用DolphinScheduler接口实现批量导入工作流并上线

使用DS接口实现批量导入工作量并上线脚本 前面实现了批量生成DS的任务,当导入时发现只能逐个导入,因此通过接口实现会更方便。 DS接口文档 DS是有接口文档的地址是 http://IP:12345/dolphinscheduler/swagger-ui/index.html?languagezh_CN&lang…

安全见闻---清风

注:本文章源于泷羽SEC,如有侵权请联系我,违规必删 学习请认准泷羽SEC学习视频:https://space.bilibili.com/350329294 安全见闻1 泷哥语录:安全领域什么都有,不要被表象所迷惑,无论技术也好还是其他方面…

网站建设中需要注意哪些安全问题?----雷池社区版

服务器与应用安全指南 1. 服务器安全 1.1 操作系统安全 及时更新补丁:确保操作系统始终安装最新补丁,以防范系统漏洞。例如,Windows Server 定期推送安全更新,修复如远程代码执行等潜在威胁。优化系统服务配置:关闭不…

PoissonRecon学习笔记

1. Screened Poisson Reconstruction (SPR) 源码:https://github.com/mkazhdan/PoissonRecon However, as noted by several researchers, it suffers from a tendency to over-smooth the data. 泊松重建存在过度平滑的现象。 方法:position and gradi…

【C++】一文带你深入理解C++异常机制

⭐️个人主页:小羊 ⭐️所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言一、C语言处理错误的方式二、C异常三、异常的使用3.1 异常的抛出和捕获3.2 异常的重新抛出3.3 异常安全3.4 异常规范 四、自定义异…

擎创科技声明

近日,我司陆续接到求职者反映,有自称是擎创科技招聘人员,冒用“上海擎创信息技术有限公司”名义,用“126.com”的邮箱向求职者发布招聘信息,要求用户下载注册APP,进行在线测评。 对此,我司郑重…

7、哈希表

7、哈希表 哈希表最主要的作用就是把一个比较庞大的空间或者值域 映射到比较小的值域 (0-n) 就是将-10^9 ~10^9 映射到 0 ~10^5 一、存储结构 映射的方法可以是 h(x) x mod 10^5 但是这样映射会出现一个问题 可能会有重复的数字出现 所以就引出了两个方法 开放寻址法 和…

【Javaee】网络原理—TCP协议的核心机制

前言 TCP/IP五层协议是互联网中的主流模型,为网络通信提供了一个稳固的框架。 主要包含了应用层,传输层,网络层,数据链路层,物理层。 本篇主要介绍传输层的TCP协议的核心机制 一. 确认应答(ack&#xf…

SQL 干货 | SQL 半连接

大多数数据库开发人员和管理员都熟悉标准的内、外、左和右连接类型。虽然可以使用 ANSI SQL 编写这些连接类型,但还有一些连接类型是基于关系代数运算符的,在 SQL 中没有语法表示。今天我们将学习一种这样的连接类型:半连接(Semi …

内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)

内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)-含详细原理配置说明介绍 前言 远程桌面协议(RDP, Remote Desktop Protocol)可用于远程桌面连接,Windows系统(家庭版除外)也是支持这种协议的,无需安装…

[RK3566-Android11] 使用SPI方式点LED灯带-JE2815/WS2812,实现呼吸/渐变/随音量变化等效果

问题描述 之前写了一篇使用GPIO方式点亮LED灯带的文章 https://blog.csdn.net/jay547063443/article/details/134688745?fromshareblogdetail&sharetypeblogdetail&sharerId134688745&sharereferPC&sharesourcejay547063443&sharefromfrom_link 使用GPIO…

C++20中头文件ranges的使用

<ranges>是C20中新增加的头文件&#xff0c;提供了一组与范围(ranges)相关的功能&#xff0c;此头文件是ranges库的一部分。包括&#xff1a; 1.concepts: (1).std::ranges::range:指定类型为range&#xff0c;即它提供开始迭代器和结束标记(it provides a begin iterato…

博弈论 C++

前置知识 若一个游戏满足&#xff1a; 由两名玩家交替行动在游戏进行的任意时刻&#xff0c;可以执行的合法行动与轮到哪位玩家无关不能行动的玩家判负 则称该游戏为一个公平组合游戏。 尼姆游戏&#xff08;NIM&#xff09;属于公平组合游戏&#xff0c;但常见的棋类游戏&…

idea(2017版)创建项目的搭建方式

目录 一、普通Java项目 二、普通JavaWeb项目 三、maven的Java项目 四、maven的JavaWeb项目 一、普通Java项目 1.创建新项目 2.因为是普通的java项目&#xff0c;所以先点最上面的Java&#xff0c;然后确定jdk&#xff0c;然后next 3.这里直接点next 4.写好项目名称和路径…