团结引擎 Shader Graph:解锁图形创作新高度
Shader Graph 始终致力于为开发者提供直观且高效的着色器构建工具,持续推动图形渲染创作的创新与便捷。在团结引擎1.4.0中,Shader Graph 迎来了重大更新,新增多项强大功能并优化操作体验,助力开发者更轻松地实现高质量的渲染效果与出色的性能优化。
更新亮点
Shader Graph 本次更新聚焦功能扩展和使用体验提升,有以下核心亮点:
Local Variable(局部变量)
我们首次引入局部变量功能,在 Shader Graph 中实现模块化布局,成功打破原有网格化编辑的局限性。开发者可以更加清晰地组织节点逻辑,显著提升了着色器的可读性与灵活性。此功能尤其适用于复杂着色器的开发,后文将为您提供详细的使用指南。
*原有网格化结构
*引入 Local Variable 后的模块化布局
渲染优化工具包
新增 Keywords 和 Passes 的自定义剔除功能,有效减少渲染性能开销,为开发者提供高效的渲染优化手段。
详情请参阅 Shader Graph 包文档 | 渲染优化工具包:https://docs.unity.cn/cn/Packages-cn/com.unity.shadergraph@14.0/manual/RenderingOptimization.html
*渲染优化工具包
Scalable Lit 与 Fabric Shader
新增两种 Shader,详情请查看 Shader Graph 包文档着色器与材质部分,目前仅支持 URP。
○ Scalable Lit:开发者可根据需求灵活调整渲染质量,自行选择需要用到的特性,平衡性能与视觉表现。
○ Fabric Shader:模拟棉毛、丝绸等织物,带来真实材质效果。
*Fabric Type = CottonWool
*Fabric Type = Silk
三十余个新节点
本次更新新增了 30+ 实用节点,涵盖动态模型、光照渲染等核心领域。这些节点将大幅简化复杂着色器的开发流程,加速开发者的创意实现。
*新增节点展示
优化 LOD 预览
团结引擎优化了 Shader Graph 的预览工具,提供更直观的调试体验,便于开发者快速预览并进行整体调整。
*优化 LOD 体验,便于快速预览和调整
优化颜色分类模式
更新默认颜色分类模式,提升节点类型识别度;同时新增热力图颜色模式(Heatmap),通过颜色直观呈现节点的 GPU 性能消耗,帮助开发者快速识别并优化着色器中的性能瓶颈。
详情请参阅 Shader Graph 包文档 | 颜色模式:https://docs.unity.cn/cn/Packages-cn/com.unity.shadergraph@14.0/manual/Color-Modes.html
*优化颜色分类模式,新增 Heatmap 模式
Local Variable: 高效管理 Shader Graph 的复杂节点布局
团结引擎 Shader Graph 迎来了全新的 Local Variable(局部变量) 功能,首次实现模块化设计,优化节点布局,打破 Shader Graph 长期以来的网格化编辑局限。通过这一功能,开发者可以更加灵活、高效地构建复杂的 Shader 结构,同时大幅提升图表的可读性和维护性。
*使用 Local Variable 配合本次其他新功能实现的模块化设计,整体结构更清晰、更易读。
快速创建 Local Variable
只需右击任意连线并选择 Add Portal Nodes,即可自动生成一组对应的 Local Variable Register 和 Get Local Variable 节点。
*创建 Local Variable 上手操作
智能关联操作
Local Variable 功能还特别强化了节点间的关联操作:
○ 当光标悬停在 Get Local Variable 节点上时,其对应的 Register 节点会自动高亮显示,方便快速定位。
○ 同样地,悬浮在 Register 节点上时,其关联的所有 Get Local Variable 节点也会同步高亮。
○ 如果需要寻找 Register 注册节点,只需双击 Get 节点,即可在复杂的 Shader Graph 中实现高效导航。
*Local Variable 节点间关联
团结引擎的每一项更新都旨在为开发者提供更强大的工具和更灵活的选择。我们期待各位将这些全新功能与优化融入您的项目中,实现更出色的视觉表现与性能优化。立即下载体验,加入全球创作者的行列,共同见证 Shader Graph 的更多可能性!
以上就是此次团结引擎 1.4.0 版本中对 Shader Graph 的更新。团结引擎将倾听国内开发者的声音,为大家带来更多大家想要的功能,并且始终保持引擎的高性能、高画质,以及稳定性。非常期待得到你的反馈,与我们一起共建中国版的实时 3D 引擎。
[1] 团结引擎官网: https://unity.cn/tuanjie/tuanjieyinqing
[2] 团结引擎问答专区: https://developer.unity.cn/plate/tuanjie-engine?tab=ask
[3] 团结引擎 Shader Graph 包文档: https://docs.unity.cn/cn/Packages-cn/com.unity.shadergraph@14.0/manual/index.html
相关文章:
团结引擎 Shader Graph:解锁图形创作新高度
Shader Graph 始终致力于为开发者提供直观且高效的着色器构建工具,持续推动图形渲染创作的创新与便捷。在团结引擎1.4.0中,Shader Graph 迎来了重大更新,新增多项强大功能并优化操作体验,助力开发者更轻松地实现高质量的渲染效果与…...
Spring Boot 配置 Mybatis 读写分离
JPA 的读写分离配置不能应用在 Mybatis 上, 所以 Mybatis 要单独处理 为了不影响原有代码, 使用了增加拦截器的方式, 在拦截器里根据 SQL 的 CRUD 来路由到不同的数据源 需要单独增加Mybatis的配置 Configuration public class MyBatisConfig {Beanpublic SqlSessionFactory…...
Redis 数据类型 List 列表
列表类型是⽤来存储多个有序的字符串,如下图所⽰,a、b、c、d、e 五个元素从左到右组成了⼀个有序的列表,列表中的每个字符串称为元素(element),⼀个列表最多可以存储 2^32 - 1个元素。在 Redis 中ÿ…...
Hello Robot 推出Stretch 3移动操作机器人,赋能研究与商业应用
Hello Robot公司近日发布了其新一代开源移动操作机器人Stretch 3,这是一款高度灵活的机器人平台,专为机器人研究、教育实验和商业自动化设计。Stretch 3 结合了先进的移动机器人技术、灵巧操作能力和开源软件生态系统,为用户提供了一个功能强…...
有滚动条的时候,设置盒子的位置
<div class"AIBox mt-24" id"AIBox"><div v-for"(v, i) in AIs" :key"i" :class"v.role assistant ? mb-24 : "><div :class"v.role user ? fc-ac42f3 fw-600 font-16 : ">{{ v.content }}…...
律所录音证据归集工具:基于PyQt6与多线程的自动化音频管理解决方案
在律所日常工作中,音频证据的整理与归集是一个高频且复杂的任务。面对大量的案件录音文件,如何实现快速且准确的分类与存档,成为了律所提高效率、降低出错率的关键。本文将通过技术角度解析一款名为律所录音证据归集工具的项目,详…...
LogicFlow自定义节点:矩形、HTML(vue3)
效果: LogicFlow 内部是基于MVVM模式进行开发的,分别使用preact和mobx来处理 view 和 model,所以当我们自定义节点的时候,需要为这个节点定义view和model。 参考官方文档:节点 | LogicFlow 1、自定义矩形节点 custo…...
软件工程教育的革命:AI辅助学习与实践
软件工程教育正面临着巨大的挑战。传统的教学模式往往以理论讲解为主,实践机会不足,导致学生难以将理论知识转化为实际技能。此外,繁琐的代码编写和项目搭建过程也常常耗费学生大量时间和精力,影响学习效率。为了解决这些问题&…...
Office hour 1
涉及Python环境配置、深度学习框架安装、常用数据处理和分析库、以及Python IDE的选择等内容。 1. Anaconda 安装与配置 • Anaconda Individual Edition:Anaconda 是一个开源平台,旨在简化数据科学的工作流程,提供了 Python 和超过 150 个科…...
【魔法阵——广义Dijkstra,DP】
题目 代码 #include <bits/stdc.h> using namespace std; const int N 1010; const int inf 0x3f3f3f3f; int g[N][N], d[N][N]; bool st[N][N]; int n, k, m; struct Node {int v, c, i;bool operator < (const Node &y) const{return v > y.v;} }; priori…...
使用epoll与sqlite3进行注册登录
将 epoll 服务器 客户端拿来用 客户端:写一个界面,里面有注册登录 服务器:处理注册和登录逻辑,注册的话将注册的账号密码写入数据库,登录的话查询数据库中是否存在账号,并验证密码是否正确 额外功能&…...
vue3-01-初识vue3相对于vue2的提升与比较,使用vue-cli创建项目,使用vite构建工具创建项目
1.相对于vue2的提升 2.创建vue3项目-使用vue-cli创建 2.1 cmd查看版本号 vue-V 2.2进入创建项目 切换D盘 D: 指定自定义创建的项目 cd 文件名 创建项目 vue create 项目名称 成功创建项目 运行项目 3.使用vite(构建工具)创建前端项目 3.1创建项目 3.1.1 npm init vite-ap…...
持久性HTTPVS.非持久性HTTP
1. HTTP协议基础 HTTP(HyperText Transfer Protocol)是Web通信的核心协议,定义了客户端(浏览器)与服务器之间传输数据的规则。 在HTTP/1.0及之前的版本中,默认使用非持久性连接,而HTTP/1.1及更…...
Node.js怎么调用到打包的python文件呢
在 Node.js 中调用打包后的 Python 可执行文件(如 PyInstaller 生成的 .exe 或二进制文件),可以通过以下步骤实现: 一、Python 打包准备 假设已有打包好的 Python 文件 your_script.exe(以 Windows 为例)&…...
C++,STL容器,map/multimap:映射/多重映射深入解析
文章目录 一、容器概览核心特性对比二、底层实现原理三、核心操作详解1. 容器初始化2. 元素插入操作3. 元素访问与查找4. 元素删除操作四、实战应用场景1. 高频数据统计2. 事件调度系统五、性能优化策略1. 键类型选择2. 内存管理优化六、注意事项与陷阱1. 迭代器失效问题2. 自定…...
【IDEA】2017版本的使用
目录 一、常识 二、安装 1. 下载IDEA2017.exe 2. 安装教程 三、基本配置 1. 自动更新关掉 2. 整合JDK环境 3. 隐藏.idea文件夹和.iml等文件 四、创建Java工程 1. 新建项目 2. 创建包结构,创建类,编写main主函数,在控制台输出内容。…...
理解Unity中的ExecuteInEditMode与ExecuteAlways
深入理解Unity中的[ExecuteInEditMode]与[ExecuteAlways] 一、引言 在开发Unity项目时,有时我们需要在编辑器模式下执行某些脚本逻辑,以实现即时反馈或特定的编辑功能。Unity提供了两种方式来满足这种需求:[ExecuteInEditMode]和[ExecuteAlways]。本文将详细介绍这两种特性…...
MybatisPlus常用增删改查
记录下MybatisPlus的简单的增删改查 接口概述 Service和Mapper区别 Mapper简化了单表的sql操作步骤(CRUD),而Serivce则是对Mapper的功能增强。 Service虽然加入了数据库的操作,但还是以业务功能为主,而更加复杂的SQL…...
【Java】多线程和高并发编程(三):锁(下)深入ReentrantReadWriteLock
文章目录 4、深入ReentrantReadWriteLock4.1 为什么要出现读写锁4.2 读写锁的实现原理4.3 写锁分析4.3.1 写锁加锁流程概述4.3.2 写锁加锁源码分析4.3.3 写锁释放锁流程概述&释放锁源码 4.4 读锁分析4.4.1 读锁加锁流程概述4.4.1.1 基础读锁流程4.4.1.2 读锁重入流程4.4.1.…...
JDK8 stream API用法汇总
目录 1.集合处理数据的弊端 2. Steam流式思想概述 3. Stream流的获取方式 3.1 根据Collection获取 3.1 通过Stream的of方法 4.Stream常用方法介绍 4.1 forEach 4.2 count 4.3 filter 4.4 limit 4.5 skip 4.6 map 4.7 sorted 4.8 distinct 4.9 match 4.10 find …...
帕累托改革(Pareto improvement)
帕累托改革(Pareto improvement)是经济学中的一个概念,指的是一种资源配置的改进方式,其中至少有一个人的处境变得更好,同时没有任何人的处境变得更差。这个概念来源于意大利经济学家维尔弗雷多帕累托,他发…...
Unity做2D小游戏2------创建地形和背景
我是跟着这个up主做的:【unity/2d/超基础】教你做一款2d横版游戏 打开Unity Hub后,点击项目--新项目,进入下面的界面,可以根据想要做的项目选择对应的模型,我现在要做2D小游戏,所以选择第一个2D核心模板。…...
欧拉筛详解(代码,证明过程以及时间复杂度分析)
1.欧拉筛的作用 欧拉筛:可以在线性的时间复杂度内,从1~n之间的素数的集合,并且在操作过程中可以记录素数数组,为以后判断是否是素数而加快效率 和大部分的筛法一样,通过将质数的倍数标记为合数来不断筛选质数的一种方…...
索引为什么是B+树结构,MySQL有哪些引擎,有什么区别?
目录 为什么索引使用 B+ 树结构? 1. 适合磁盘存储 2. 高效的查询性能 3. 适合大数据量 4. 与 B 树的区别 MySQL 的存储引擎及区别 1. InnoDB 2. MyISAM 3. Memory 4. Archive 5. CSV 6. Blackhole 存储引擎的选择建议 总结 为什么索引使用 B+ 树结构? B+ 树是…...
MongoDB进阶篇-索引
文章目录 1. 索引概述 2. 索引的类型 2.1 单字段索引 2.2 复合索引 2.3 其他索引 2.3.1 地理空间索引(Geospatial Index) 2.3.2 文本索引(Text Indexes) 2.3.3 哈希索引(Hashed Indexes) 3. 索引相关操作 3.1 查看索引 3.2 创建索引 3.3.1 创建单字段索引 3.3.2 创建复合…...
Unity WebGL包体压缩
最近在开发webgl,踩了很多坑,先来说下包体的问题。 开发完之后发现unity将文件都合并到一个文件了,一共有接近100m。 这对网页端的体验来说是可怕的,因为玩家必须要加载完所有的文件才能进入,这样体验特别差。 于是想…...
内容中台赋能人工智能技术提升业务创新能力
内容概要 在当今快速变化的市场环境中,企业需要不断寻求创新以保持竞争力。内容中台作为一种新型的内容管理架构,能够极大地提升企业在内容创建、管理和分发方面的效率。通过与人工智能技术的深度融合,企业能够将海量的数据和信息转化为有价…...
数据结构:队列
1.概念: 和栈相反,队列是一种先进先出的线性表它只允许在标的一段进行插入,而在另一端进行删除元素。这和我们日常生活中的排队是一致的,即最早入队的元素最早离开。队列中允许插入的一端叫做队尾,允许删除的一端的叫…...
第四期书生大模型实战营-第4关-L2G4000
简述多模态大模型的工作原理 多模态大模型是一种能够同时理解和生成多种类型数据(如文本、图像、音频、视频等)的人工智能模型。其核心工作原理可概括为以下几个关键步骤: 1. 多模态数据编码 模态对齐:将不同形式的数据…...
17vue3实战-----使用配置文件生成简易页面
17vue3实战-----使用配置文件生成简易页面 1.写在前面2.背景3.实现3.1界面效果3.2新建config配置文件3.3封装组件3.4使用组件 1.写在前面 后台管理系统的开发很简单。无论是用户模块、部门模块、角色模块还是其它模块,界面和业务逻辑都相对比较简单,我会省略这些模…...
ZZNUOJ(C/C++)基础练习1091——1100(详解版)⭐
目录 1091 : 童年生活二三事(多实例测试) C C 1092 : 素数表(函数专题) C C 1093 : 验证哥德巴赫猜想(函数专题) C C 1094 : 统计元音(函数专题) C C 1095 : 时间间隔(多…...
浏览器的缓存方式几种
浏览器的缓存方式主要分为以下几种: 1. 强制缓存(强缓存 / Memory Cache & Disk Cache) 通过 Expires 或 Cache-Control 头部控制。在缓存有效期内,浏览器直接使用缓存,不发起请求。 关键HTTP头: Ex…...
【前端】【面试】【经典一道题】vue中组件传值的几种方式
父子组件传值 1. 父传子:props 这是最常见的父组件向子组件传递数据的方式。父组件在使用子组件时,通过在子组件标签上绑定属性来传递数据,子组件通过 props 选项接收这些数据。 <!-- 父组件 --> <template><div><Ch…...
SwiftUI 中 .overlay 两种写法的区别及拓展
SwiftUI 中 .overlay 两种写法的区别及拓展 一、.overlay 简介功能语法 二、写法 1:.overlay(Circle().stroke(Color.blue, lineWidth: 2))代码示例解释优点适用场景 三、写法 2:.overlay { Circle().stroke(.white, lineWidth: 4) }代码示例解释优点适用…...
简述mysql 主从复制原理及其工作过程,配置一主两从并验证
原理: MySQL主从复制是基于事件的复制机制。主服务器负责处理所有的写操作和事务,并将这些更改(如INSERT、UPDATE和DELETE)以事件的形式记录到二进制日志(binlog)中。从服务器则通过读取主服务器的二进制日…...
python-leetcode 25.环形链表
题目: 给定一个链表的头节点head,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(…...
游戏引擎学习第98天
仓库:https://gitee.com/mrxiao_com/2d_game_2 开始进行一点回顾 今天的目标是继续实现正常贴图的操作,尽管目前我们还没有足够的光照信息来使其完全有用。昨日完成了正常贴图相关的基础工作,接下来将集中精力实现正常贴图的基本操作,并准备…...
机器学习 - 进一步理解最大似然估计和高斯分布的关系
一、高斯分布得到的是一个概率吗? 高斯分布(也称为正态分布)描述的是随机变量在某范围内取值的概率分布情况。其概率密度函数(PDF)为: 其中,μ 是均值,σ 是标准差。 需要注意的是…...
物联网水质监测系统设计与实现/基于STM32的水产养殖云监控系统设计
背景 随着物联网技术的飞速发展,各行各业都在逐步实现智能化管理,水质监测系统作为环境监测中的一个重要环节,近年来备受关注。如何高效、精准地监测水质,尤其是在远程无法到达的地方,成为了一个迫切需要解决的问题。…...
【学习笔记】计算机网络(三)
第3章 数据链路层 文章目录 第3章 数据链路层3.1数据链路层的几个共同问题3.1.1 数据链路和帧3.1.2 三个基本功能3.1.3 其他功能 - 滑动窗口机制 3.2 点对点协议PPP(Point-to-Point Protocol)3.2.1 PPP 协议的特点3.2.2 PPP协议的帧格式3.2.3 PPP 协议的工作状态 3.3 使用广播信…...
Android 系统面试问题
一.android gki和非gki的区别 Android GKI(Generic Kernel Image)和非GKI内核的主要区别在于内核设计和模块化程度,具体如下: 1. 内核设计 GKI:采用通用内核设计,与设备硬件分离,核心功能统一…...
大疆无人机二次开发调试准备
以下机场和遥控器模式只能同时支持一种,因为无人机只能同时对频一种设备,如果同时对频了两种,以最后对频设备为准 机场模式 保证机场的网口闪烁,网络正常在mqtt中给dock建立用户,配置新建的MQTT账号和密码。组织ID任…...
【嵌入式Linux应用开发基础】文件I/O基础编程
目录 一、文件I/O简介 二、文件描述符 2.1. 唯一性 2.2. 抽象性 2.3. 有限性 三、文件操作函数 四、标准文件I/O函数 五、文件执行权限 5.1. 权限类型 5.2. 权限分配对象 5.3. 权限表示方法 5.4. 权限设置命令 5.5. 权限设置的重要性 5.6. 实例说明 六、设备文件…...
【StableDiffusion容器化部署】分步指南
使用Docker部署和管理Stable Diffusion环境可以有效解决依赖冲突、环境隔离和可移植性问题。以下是分步指南和相关技术细节: 1. 基础环境准备 1.1 安装Docker和GPU支持 安装Docker Engine:参考官方文档配置NVIDIA Container Toolkit:# 安装…...
2.11 sqlite3数据库【数据库的相关操作指令、函数】
练习: 将 epoll 服务器 客户端拿来用 客户端:写一个界面,里面有注册登录 服务器:处理注册和登录逻辑,注册的话将注册的账号密码写入数据库,登录的话查询数据库中是否存在账号,并验证密码是否正确…...
安装 Ollama 需要哪些步骤?(windows+mac+linux+二进制+Docker)
安装 Ollama 的步骤根据操作系统不同会有所差异,以下是针对不同操作系统的详细安装指南: Windows 系统 下载安装包:访问 Ollama 官方下载页面,下载适用于 Windows 的安装程序 OllamaSetup.exe。运行安装程序:双击下载的安装包,按照提示完成安装。默认安装路径为 C:\User…...
【力扣】148.排序链表
AC截图 题目 思路 基本情况处理: 如果链表为空 (head NULL) 或者链表仅有一个节点 (head->next NULL),则链表已经是有序的,直接返回头节点 head。 分割链表: 使用快慢指针法找到链表的中间节点。slow 指针每次前进一格&…...
Springboot框架扩展功能的使用
Spring Boot 提供了许多扩展点,允许开发者在应用程序的生命周期中插入自定义逻辑。这些扩展点可以帮助你更好地控制应用程序的行为,例如在启动时初始化数据、在关闭时释放资源、或者自定义配置加载逻辑。以下是 Spring Boot 中常见的扩展点: …...
绿虫储能仿真软件解决储能项目中的哪些痛点
痛点一:储能方案定制难 如何根据不同用户的需求,制定科学合理的储能方案,一直是行业内的一大难题。每个用户的用电情况、场地条件、预算等都存在差异,想要实现 “千人千面” 的专属方案设计谈何容易。 绿虫储能仿真设计软件凭借…...
保姆级教程Docker部署Zookeeper镜像
目录 一、安装Docker及可视化工具 二、创建Zookeeper网络 三、镜像选择 四、单节点部署 1、创建挂载目录 2、命令运行容器 3、Compose运行容器 4、查看运行状态 5、验证是否正常运行 一、安装Docker及可视化工具 Docker及可视化工具的安装可参考:Ubuntu上…...