Unity3D 技术专栏
文章平均质量分 84
Unity3D 技术专栏,包括内容编辑器,服务器,Shader,TimeLine, 烘焙,AssetBundle,UDP, TCP,UGUI,热更新,以及优化等部分展开,欢迎查询关注!
Kaitiren
热情开放的技术专家,从事游戏开发方面的各项工作!
DXDStudio(Design and Xperience Development Studio)
展开
-
【Unity3D 官方移动游戏优化指南】 摘要
翻译自《Optimize Your Mobile Game Performance EBook - V6 - May 2021》Unity总部电子书优化 iOS 和 Android 应用程序是支撑整个开发周期的重要过程。随着移动硬件的不断发展,移动游戏的优化及其美术、游戏设计、音频和变现策略在塑造玩家体验方面发挥着关键作用。iOS 和 Android 都有数十亿的活跃用户群。经过高度优化的移动游戏更有可能通过特定平台商店的认证。为了最大限度提高发布时及发布后获得成功的机会,必须始终朝以下目标迈进:打翻译 2021-08-17 16:04:32 · 339 阅读 · 0 评论 -
Unity6 + UE5.4 PSO缓存实践记录
该项目刚启动时就进入一个3D场景+UI做成的欢迎界面:因此实际上很多PSO编译的过程在刚进游戏就开始了,这样我们来不及启动Insight抓取数据为了能更好的分析该3D欢迎界面的PSO编译情况,我又给它套娃了一层界面,让用户点两次启动才能进游戏创建空关卡,并给一个UI,点击按钮后跳转到3D欢迎界面。原创 2024-09-06 11:15:46 · 1695 阅读 · 0 评论 -
基于移动端渲染 高清渲染管线改造
近年来,随着移动平台硬件的性能不断提升,移动端游戏采用的渲染技术更加先进,整个行业对画质效果的需求也越来越大,我们借此做了一些技术尝试,测试了Unity HDRP是否可以在移动端跑起来,结果是可行的。(后来我们又升级到了2021.1.x版本,对应HDRP 11.0.0版本,以下说明都是基于这个版本的。原创 2024-07-12 11:13:21 · 1171 阅读 · 0 评论 -
基于移动端渲染 Tile-Based Rendering
基于移动端渲染 Tile-Based Rendering原创 2024-07-12 10:32:52 · 967 阅读 · 0 评论 -
Unity PS5开发 天坑篇 之 URP管线与HDRP管线部署流程以及出包介绍04
本篇主要解决URP、HDRP在PS5部署与出包的问题原创 2024-03-27 10:54:52 · 1662 阅读 · 0 评论 -
Unity PS5开发 天坑篇 之 环境搭建与部署03
本篇开始正式使用Unity Build-in管线进行项目部署测试流程。原创 2024-03-27 10:30:32 · 715 阅读 · 0 评论 -
Unity PS5开发 天坑篇 之 DEVKit环境部署与系统升级02
上一篇各位大神们已经收到了SONY官方免费寄送的PS5开发机与测试机,恭喜大家成为SONY的开发者, 本篇继续PS5开发机的部署与开发套件使用。原创 2024-03-15 16:06:00 · 2252 阅读 · 0 评论 -
Unity PS5开发 天坑篇 之 申请开发者与硬件部署01
腾了好几天终于把PS5开发机调试部署成功, 希望能帮到国内的开发者, 主机游戏PlayStation/Nintendo Switch都是比较闭塞的,开发者账号是必须的。开发环境有两个部分,一是DEV Kit 开发机, TEST Kit测试机两部分组成,二是Unity的支持库(安装后才能在Unity中切换到PS平台); 需要严格按照SDK版本和对应支持的Unity版本安装开发环境。PlayStation® Partnershttps://partners.playstation.net/直接官网注册申请即可,原创 2024-03-15 15:30:59 · 1572 阅读 · 1 评论 -
2023 Unite 大会关于“Muse“ AI 大模型训练
借助强大的 AI 能力帮助你探索、构思和迭代,其中包括纹理和精灵两项功能,可将自然语言和视觉输入转化为可用资产。将 AI 引入中的 Muse 提供了更快将想法转化为实物的选项。您可以调整并使用文本提示、图案、颜色和草图,将其转化为真实且项目准备就绪的输出。为了提供有用、负责任和尊重其他创作者版权的输出,我们挑战自己在 Muse 的精灵和纹理生成 AI 模型训练方法上进行创新。在本文中,我们分享了 Muse 如何生成结果,解构我们的模型训练方法,并介绍我们的两个新基础模型。原创 2023-11-24 16:06:57 · 479 阅读 · 0 评论 -
Unity 2021 LTS / Unity 2022 LTS New Shader Graph Node 参考样本
节点参考样本是超过140个Shader图形资源的集合。您可以将这些图用作参考,以了解每个节点的作用及其工作原理,而不是在项目中使用这些图。每个图表示节点库中可用的一个节点。它还包含对节点的描述,解释了它的功能,并分解了底层的数学工作原理。要了解如何使用特定节点,请打开其参考文件以查看该节点的描述、示例和详细分析。在下面的示例中,我们使用Shader Graph工具来说明如何在下一个项目中使用节点参考样本。原创 2023-11-16 13:50:24 · 426 阅读 · 0 评论 -
基于Kinect 动捕XR直播解决方案 - 技术实现篇
基于Kinect 动捕XR直播解决方案 - 技术实现篇原创 2023-11-08 16:44:08 · 488 阅读 · 0 评论 -
基于Kinect 动捕XR直播解决方案 - 硬件篇
1、Kinect for Windows 的开发配置Kinect V2操作系统:Windows 8(必须) Windows Surface Windows Surface 2开发环境:Visual Studio 2017 .NET Framework 4.5 (.NET Framework 4.5)硬件要求:USB 3.0 bus dedicated to the Kinect(usb 3.0 是必须的)Graphics card that supports DirectX 11(必须的)原创 2023-11-08 16:20:01 · 623 阅读 · 0 评论 -
Unity BatchRendererGroup 在低端设备上也实现高帧率
BatchRendererGroup(或BRG)是一个API,可以有效地从c#生成绘制命令并生成gpu实例化绘制调用。由于它不使用托管内存,您还可以使用Burst编译器生成命令。优点缺点能够从突发作业中快速生成drawstance命令你必须自己生成最优批次的绘制命令使用持久的大型GPU缓冲区来存储每个实例的任何自定义属性您必须自己管理GPU内存和自定义属性偏移分配支持广泛的平台,包括OpenGLES 3.0及以上版本兼容标准的SRP着色器(点亮和未点亮)。原创 2023-10-24 11:00:18 · 1462 阅读 · 1 评论 -
Unity3D小程序部署与开发
目前已经支持微信小程序开发,目前正处于公测阶段,可以参考。这样我们只需要在unity本地开发完,一键导出微信小程序工程发布即可。原创 2023-03-02 09:39:30 · 4404 阅读 · 0 评论 -
Unity 2021 LTS中着色器构建时间和内存使用的改进
随着Unity的可脚本渲染管道(SRP)的可用特性集的不断增长,在构建时处理和编译的着色器变量的数量也在不断增加。除了对更多图形api的持续支持和不断增长的目标平台选择外,SRP的改进还在继续扩展。着色器在初始(“干净”)构建后被编译和缓存,从而加速进一步的增量(“温暖”)构建。虽然干净的构建通常需要最长的时间,但在项目开发和迭代过程中,冗长的温暖构建时间可能是一个常见的痛点。图1: 在项目构建期间,着色器变体的处理和编译。原创 2023-02-15 19:34:38 · 718 阅读 · 1 评论 -
自动曝光在移动平台上的实现方案——以《使命召唤手游》为例
在PBR渲染中,除了已被大家深入分析了很多遍的PBR材质属性(Surface Appearance)外,合理的光源强度和后处理也是不可或缺的部分。这里结合工作中的一些实践经验,讨论一下后处理中另一个关键环节——自动曝光在移动平台上的实现。原创 2023-02-15 17:25:42 · 729 阅读 · 2 评论 -
PBR工作流实现与对比
工作流中的核心内容便是贴图,不论是UE4还是Unity都支持将PBR的参数以贴图的形式传入引擎,我们可以根据一个物体同一mesh或不同mesh的不同区域的属性差异来控制贴图上的属性产生不同,而没有贴图的话,一个物体只能使用一种参数属性。在Disney PBR没有大规模使用之前,材质贴图是没有一套规范通用的流程的,往往将很多东西混杂在一起去实现一个凭空想象的效果,而且每个人每个公司都有自己的方式,就好比绘画一样,没有一个标准的流程和规范。灰度图,代表公式中运算的金属度,计算F0和漫反射Kd需要的插值系数。原创 2023-02-15 17:09:30 · 525 阅读 · 0 评论 -
Unity3D 引擎学习2022资料整理(二)
Unity3D 引擎学习2022资料整理(二)原创 2022-09-14 15:58:55 · 4071 阅读 · 1 评论 -
Unity3D 引擎学习2022资料整理(一)
Unity3D 引擎学习2022资料整理(一)原创 2022-09-14 15:53:53 · 20118 阅读 · 0 评论 -
LDR和HDR
一、LDR和HDR的基本概念1.HDR 、LDR、动态范围、ToneMapping的基本概念Dynamic Range(动态范围)=最高亮度/最低亮度 HDR= High Dynamic Range LDR= Low Dynamic Range ToneMapping:将超高的动态范围转换到我们日常显示的屏幕上的低动态范围的过程 一些小芝士: 因为不同的厂家生产的屏幕亮度(物理)实际上是不统一的,那么我们在说LDR时,它是一个0到1范围的值,对应到不同的屏幕上就是匹配当前屏幕的最低亮度(0).原创 2022-02-14 09:58:50 · 4199 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】13.工作流程和协作
在 Unity 中构建应用程序是一件常常需要很多开发者参与的大型工作。请务必将项目设置为最适合团队协作。使用版本控制每个人都应使用某种版本控制。确保Editor Settings的Asset Serialization Mode设置为Force Text。如果要在Version Control设置中使用外部版本控制系统(如 Git),请确保将Mode设置为Visible Meta Files。Unity 还有内置 YAML(可读的数据序列化语言)工具,它...翻译 2021-08-17 21:30:52 · 272 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】12.物理
Unity 的内置物理系统 (Nvidia PhysX) 在移动设备上开销较大。下面的提示可以帮助您每秒减少更多帧。优化设置在 PlayerSettings 中,尽可能选中Prebake Collision Meshes。启用 Prebake Collision Meshes。请务必同时编辑Physics设置(Project Settings > Physics)。尽可能简化Layer Collision Matrix。禁用Auto Sync Transform...翻译 2021-08-17 21:28:34 · 745 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】11.动画
Unity 的Mecanim 动画系统相当复杂。尽可能限制在移动设备上使用下面的设置。使用通用还是人形骨架默认情况下,Unity 通过通用骨架导入动画模型,但在动画化角色时,开发人员常常切换为人形骨架。人形骨架每一帧(即使未使用)都计算反向动力学和动画重定向,占用的 CPU 时间比等效的通用骨架多 30-50%。如果不需要这些特定人形骨架功能,请使用通用骨架。避免过多使用AnimatorAnimator 主要用于人形角色,但也常用于动画化单个值(如 UI 元素的 Alpha 通道)。..翻译 2021-08-17 21:25:52 · 221 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】10.音频
尽管音频通常不会造成性能瓶颈,还是可以进行优化以节省内存。尽量使用单声道声音剪辑如果要使用 3D 空间音频, 请以单声道 (single channel) 的形式创作声音剪辑,或者启用 Force To Mono 设置。在运行时定位使用的多声道声音会扁平化为单声道源,因此会增加 CPU 开销和浪费内存。尽可能使用原始未压缩WAV文件作为源资源如果使用任何压缩格式(如 MP3 或 Vorbis),Unity 会将其解压并在构建时重新压缩。这样会导致两个有损通道,从而降低最终质量。压缩剪辑.翻译 2021-08-17 21:24:22 · 337 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】9.用户界面
Unity UI(UGUI) 常常是性能问题的来源。Canvas 组件生成和更新 UI 组件的网格并向 GPU 发出绘制调用。它的运行开销很大,因此,在使用 UGUI 时,请注意以下因素。划分画布如果是包含成千上万个元素的大型画布,更新单个 UI 元素就必须更新整个画布,这可能会造成 CPU 尖峰。利用 UGUI 的功能可以支持多个画布。根据 UI 元素的更新频率要求,划分这些元素。将静态 UI 元素保留在单独的画布上,将同时更新的动态元素保留在较小的子画布上。确保每个画布中的 UI 元素.翻译 2021-08-17 21:22:17 · 209 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】8.图形和 GPU 优化
每一帧,Unity 都需要确定必须渲染哪些对象,然后创建绘制调用。绘制调用是调用图形 API 来绘制对象(如三角形),而批处理是要一起执行的一组绘制调用。随着项目变得更加复杂,您需要用管线来优化 GPU 的工作负载。通用渲染管线(URP)目前使用单通道前向渲染器将高质量图形传输给移动平台(未来版本中将提供延迟渲染功能)。来自游戏主机和 PC 的、基于物理的光照和材质也可以缩放为适合手机或平板电脑。以下指导原则可以帮助您提高图形处理速度。批处理执行绘制调用将要绘制的对象组合为批次,可以尽可..翻译 2021-08-17 21:18:29 · 611 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】7.资源
资源管线可以大幅影响应用程序的性能。经验丰富的技术美术师可以帮助您的团队定义和增强资源格式、规范以及导入设置。不要依赖于默认设置。使用平台特定的覆盖选项卡可以优化纹理和网格几何体等资源。如果设置不正确,则可能造成较大的编译版本大小、较长的构建时间,以及较差的内存使用量。可以考虑使用预设功能来帮助为特定项目自定义基准设置,以确保最优设置。请参阅此艺术资源最佳实践指南了解更多详细信息,或者在 Unity Learn 上了解有关适用于移动应用程序的 3D 美术优化的课程。正确导入纹理纹理会占用大部翻译 2021-08-17 21:13:34 · 229 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】6.项目配置
有一些项目设置会影响移动端性能。降低或禁用Accelerometer FrequencyUnity 每秒对移动端的加速度计进行几次池操作。如果在应用程序中不会使用,请将其禁用,或者降低其频率,从而提升性能。如果在移动游戏中不会使用 Accelerometer Frequency,请务必将其禁用。禁用不必要的Player或Quality设置在Player设置中,对不支持的平台禁用Auto Graphics API,以便防止生成过多着色器变体。如果应用程序不支持,对较旧的...翻译 2021-08-17 21:09:28 · 442 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】5.编程和代码架构
Unity PlayerLoop 包含与游戏引擎核心交互的函数。这种树状结构包括许多处理初始化和每帧更新的系统。所有脚本都将依赖该 PlayerLoop 来创建游戏玩法。在进行性能分析时,可以看到项目的所有用户代码都位于 PlayerLoop 下(编辑器组件位于 EditorLoop 下)。自定义脚本、设置和图形会显著影响每一帧的计算和在屏幕上渲染的时间。可以按照以下提示和技巧优化脚本。了解Unity Playerloop确保了解 Unity 的帧循环的执行顺序。每个 Unity翻译 2021-08-17 21:01:40 · 836 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】4.自适应性能
通过 Unity 和 Samsung 的自适应性能,可以监测设备的散热和功率状态,确保您能准备好去适当地做出反应。当用户玩了很长一段时间后,您可以动态减少细节级别 (LOD)偏差,帮助游戏继续流畅运行。自适应性能允许开发者以可控的方式提高性能,同时保持图形保真度。 虽然可以使用自适应性能 API 来微调应用程序,但该包也提供自动模式。在这些模式下,自适应性能根据几个关键指标来确定游戏设置 :基于前几帧的所需帧率 设备温度水平 设备临近触发热事件 设备限制(CPU 或 GPU)这四个指标决定了设备翻译 2021-08-17 19:00:40 · 541 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】3.内存
Unity 为用户生成的代码和脚本采用了自动内存管理。小块数据(如值类型的局部变量)分配在栈上。大块数据和长期存储分配在托管堆上。垃圾收集器 (GC) 会定期识别并释放未使用的堆内存。虽然这是自动运行的,但检查堆中所有对象的过程可能导致游戏卡顿或运行缓慢。优化内存使用量意味着注意何时分配和解除分配堆内存,并尽可能减小垃圾收集的影响。有关更多信息,请参阅了解托管堆。在内存性能分析器中捕获、检查和比较快照。使用内存性能分析器 这个独立的附加组件(在Package Manage..翻译 2021-08-17 18:56:46 · 342 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】2.性能分析
Unity Profiler可帮助检测运行时出现任何延迟或冻结的原因,或帮助了解特定帧(时间点)发生了什么。默认启用 CPU 和内存跟踪。如果对游戏有特定需求(例如,大量使用物理系统或基于音乐的游戏玩法),可以监控其他性能分析器模块,如渲染器、音频、物理系统等。通过选中Development Build和Autoconnect Profiler来针对设备构建应用程序,或手动连接以加快应用程序启动速度。选择要分析的目标。Record 按钮会跟踪应用程序运行几秒钟( 默认为 300 帧)。如果...翻译 2021-08-17 18:53:50 · 470 阅读 · 0 评论 -
【Unity3D 官方移动游戏优化指南】1.简介
优化 iOS 和Android 应用程序是支撑整个开发周期的重要过程。随着移动硬件的不断发展,移动游戏的优化及其美术、游戏设计、音频和变现策略在塑造玩家体验方面发挥着关键作用。iOS 和 Android 都有数十亿的活跃用户群。经过高度优化的移动游戏更有可能通过特定平台商店的认证。为了最大限度提高发布时及发布后获得成功的机会,必须始终朝以下目标迈进:打造最流畅的沉浸式体验,并使其在最广泛的手持设备上表现出色。本指南汇集了 Unity 软件工程师专家团队的知识和建议。Unity 的加速解决方案游戏团.翻译 2021-08-17 18:49:55 · 224 阅读 · 0 评论 -
【基于物理的渲染(PBR)白皮书】(四)法线分布函数相关总结
为基于物理的渲染(Physically Based Rendering , PBR)技术中材质高光质感的决定因素,更先进的法线分布函数(Normal Distribution Function,NDF)的问世和发展,是PBR能够在游戏和电影工业普及的重要推动力之一。从法线分布函数和微平面理论(Microfacet Theory)的视角来看,基于物理的渲染代表着一种从宏观表现到微观细节的渲染理念的进化,从而对材质有了亚像素级更精细的把控和更科学的定量表示,从而推动了游戏和电影业界渲染品质的提升,以及.翻译 2021-07-17 12:33:23 · 985 阅读 · 3 评论 -
【基于物理的渲染(PBR)白皮书】(三)迪士尼原则的BRDF与BSDF相关总结
基于物理的渲染(Physically Based Rendering , PBR)技术,自迪士尼在SIGGRAPH 2012上提出了著名的“迪士尼原则的BRDF(Disney Principled BRDF)”之后,由于其高度的易用性以及方便的工作流,已经被电影和游戏业界广泛使用,并成为了次时代高品质渲染技术的代名词。本文的主要内容,便是对推动了这次基于物理的渲染革命的“迪士尼原则的BRDF(Disney Principled BRDF)”,以及随后2015年提出的“迪士尼BSDF(Disney BSD翻译 2021-07-09 21:43:24 · 1219 阅读 · 0 评论 -
【基于物理的渲染(PBR)白皮书】(二) PBR核心理论与渲染光学原理总结
这是【基于物理的渲染(PBR)白皮书】系列的第二篇文章。按照既定规划,本文将主要关注基于物理的渲染的核心理论与渲染的光学原理,以在整个系列中起到理论支柱的作用。从本文内容而言,只有透过渲染现象看到光与真实世界交互的本质,才能真正理解近年来基于物理的渲染成为电影和游戏业界主流渲染解决方案背后的必然性。首先放出本文主要内容提炼出的思维导图,即基于物理的渲染的核心理论与渲染光学原理的知识脉络:...翻译 2021-06-03 14:25:25 · 561 阅读 · 0 评论 -
【基于物理的渲染(PBR)白皮书】(一) 开篇:PBR核心知识体系总结与概览
先放出PBR知识体系的架构图:图很大,建议下载到本地放大查看。这张架构图是这个系列文章的内容框架,而且会随着内容的深入,不断更新。目前是1.0版。系列文章前言基于物理的渲染(Physically Based Rendering , PBR)技术,自迪士尼在SIGGRAPH 2012上提出了著名的“迪士尼原则的BRDF(Disney Principled BRDF)”之后,由于其高度的易用性以及方便的工作流,已经被电影和游戏业界广泛使用。个人了解和研究基于物理的渲染...翻译 2021-05-31 14:02:43 · 1726 阅读 · 2 评论 -
unity3d中脚本生命周期(MonoBehaviour lifecycle)
接下来,做出一下讲解:最先执行的方法是Awake,这是生命周期的开始,用于进行激活时的初始化代码,一般可以在这个地方将当前脚本禁用:this.enable=false,如果这样做了,则会直接跳转到OnDisable方法执行一次,然后其它的任何方法,都将不再被执行。如果当前脚本处于可用状态,则正常的执行顺序是继续向下执行OnEnable,当然我们可以在另外一个脚本中实现这个脚本组件的启动:t翻译 2015-01-09 15:14:17 · 4181 阅读 · 0 评论 -
U3D 部分问题
.编译工程时生成了Mismatched serialization in the builtin class 'Mesh'. (Read 560 bytes but expected 561 bytes)低版本编辑器打开高版本编辑器序列化过的对象就会报类似错,建议更换高版本编辑器原创 2015-01-23 14:25:48 · 3531 阅读 · 0 评论 -
[Unity3D]InvalidOperationException: out of sync
详细信息:InvalidOperationException: out of syncSystem.Collections.Generic.Dictionary`2+Enumerator[UnityEngine.KeyCode,System.Boolean].VerifyState ()System.Collections.Generic.Dictionary`2+Enumerat转载 2015-02-02 16:02:18 · 7424 阅读 · 0 评论