- 博客(34)
- 收藏
- 关注
原创 [学习记录]Unity-Shader-常量缓冲区(CBUFFER)
常量缓冲区(Constant Buffer,简称 CBuffer)是现代 GPU 编程中一个非常核心且重要的概念。它是一种 GPU 内存区域,用于存储 Shader 程序在执行过程中需要访问的不变数据。常量缓冲区 (CBUFFER_START/END) 可以同时在CGPROGRAM和HLSLPROGRAM块中使用。
2025-07-30 16:22:07
844
原创 [学习记录]URP流程解析(2)--初始化阶段
本篇主要提及了URP管线流程中的阶段二: 初始化阶段 (Initialization)。涉及关键类间联系和部分URP源码注释解析。
2025-07-29 22:08:09
1134
原创 [学习记录]URP流程解析(1)--渲染管线创建
本篇主要总结URP管线流程中的阶段一: 渲染管线创建 (Pipeline Creation)。涉及关键类间联系和部分URP源码注释解析。
2025-07-29 16:31:22
906
原创 [学习记录]Unity毛发渲染[URP]-Fin基础版
鳍片法是一种在多边形表面垂直添加许多多边形,并在其上粘贴毛发纹理以营造毛茸茸的感觉的技术。这就像种植许多鳍(就像鱼身上的鳍一样)。
2025-07-04 20:58:27
1079
原创 [学习记录]Unity-Shader-曲面细分着色器
曲面细分着色器是 DirectX 11 (以及 OpenGL 4.0) 引入的、位于顶点着色器和几何着色器之间的可编程管线阶段。它的核心目的是在 GPU 上动态地增加模型的几何细节,而不需要在 CPU 端提前创建高模。
2025-07-04 13:52:45
1353
1
原创 [学习记录]Unity-Shader-几何着色器
何着色器是可编程渲染管线中的一个可选阶段,位于顶点着色器之后和片段着色器之前。其核心能力在于动态生成和操作几何体图元。
2025-07-03 14:48:16
891
原创 [学习记录] HLSL-编译指示及属性
HLSL 中有其他一些常用的编译指示 (Compiler Directives) 或属性 (Attributes),它们可以用来指导编译器如何优化和处理着色器代码
2025-07-02 19:37:35
533
原创 [学习记录]Unity毛发渲染[URP]-Shell基础版
毛发,无论是人类的头发、动物的皮毛,还是奇幻生物的绒毛,都是构成生命感和真实感不可或缺的元素。它对光线的独特散射、吸收和反射,赋予了物体柔软、蓬松、有生命力的质感。它不仅仅是让角色看起来更“毛茸茸”那么简单,更是通向极致真实感和视觉沉浸感的关键一步本期我们来在Unity6的UDRP项目中实现一个基础版Shell_Fur毛发渲染效果。
2025-07-02 14:03:10
1276
8
原创 [学习记录]Unity中的绘制API
绘制 API 是引擎与 GPU 沟通的桥梁,用于告诉 GPU 如何渲染三维几何体,它们是底层图形API 的调用,绕过了 Unity Renderer 系统。 Unity 不会为这些调用创建或管理 Renderer 对象,渲染逻辑非常“手动”,不经过 SRP Batcher 的自动合批管线。相当于直接告诉 GPU “绘制多少实例”,Unity 不参与 CPU 端的批处理合并。
2025-07-02 13:21:37
948
原创 Unity-ComputeShader
Compute Shader(计算着色器)是一种在图形处理器(GPU)上执行通用计算任务的程序。它不直接用于渲染图形(即不负责将三角形绘制到屏幕上),而是专注于利用 GPU 强大的并行处理能力来高效地执行大量数据操作和数学计算。
2025-07-01 21:52:33
971
原创 Unity性能优化-渲染模块(1)-CPU侧(2)-DrawCall优化(2)GPUInstancing
GPU Instancing本质上是为了解决“重复渲染相同网格的多次 DrawCall”这一性能瓶颈的问题,其核心思想是:一次绘制多个变体,只传一次 Mesh 数据,但多次使用,仅改变每个实例的少量属性。极大减少了 CPU 到 GPU 的通信开销(DrawCall 数),释放 CPU,性能飙升。
2025-06-30 18:53:22
791
原创 Unity性能优化-渲染模块(1)-CPU侧(1)-优化方向
本篇介绍性能优化-渲染模块(1)—CPU侧(1)优化方向,首先区分了两对概念:DrawCall与SetPassCall,Batch与Batching,接着从DrawCall和SetPassCall两方面给出简单的优化方向
2025-06-27 18:39:05
843
1
原创 Unity Shader开发-着色器变体(2)-定义着色器变体
这其实就等同于“默认”或“无宏定义”的状态。但如果使用了 _ ,那么监视器面板里默认显示为未激活状态。总结:使用下划线可以节省变体数量。
2025-06-21 13:16:46
798
原创 Unity Shader开发-着色器变体(1)-着色器变体概述
在 Unity 中,Shader 变体(Shader Variants)是一个重要的概念,它允许你用一份 Shader 源代码来支持多种不同的视觉效果或功能,同时还能优化性能和最终的游戏包体大小。你可以把它理解为同一个 Shader 的不同“编译版本”,每个版本都针对特定的功能组合进行了定制。
2025-06-21 13:16:19
596
原创 Unity性能优化-C#编码模块
本期我将整理个人所学关于Unity中C#编码方面的一些优化思路,我们的目标是提升代码性能。我将从GC,算法效率,UnityAPI,字符串方面,结合一些实际场景给出性能优化方案。
2025-06-12 20:44:42
1485
原创 Unity编辑器功能及拓展(3) —[Attribute]特性
在 Unity 中,[Attribute]格式的特性是用于扩展编辑器功能、控制序列化行为和调整 Inspector 显示,进行编辑器拓展的核心工具。
2025-03-29 23:16:13
1091
原创 Unity功能模块一对话系统(5)-完善对话流程及功能
完善对话流程,并使用SO(ScriptableObject)来进行一段对话序列的配置和动态加载。功能一:场景内可根据资源序号ID来动态加载对话数据功能二:按空格进行下一句,如果当前对话未打印完毕,按下空格则快进直接显示全部文本。功能三:支持对话中可委托触发
2025-03-29 15:00:56
1127
原创 Unity编辑器功能及拓展(2) —Gizmos编辑器绘制功能
Gizomsd 概述Gizoms是Unity提供的一个API,或者叫做一个工具类,包含一系列静态方法。既然提到Gizoms不得不提到OnDrawGizmosxxx 系列函数。命名相近需要区分一下。OnDrawGizmosxxx 概述包含OnDrawGizmos( )和OnDrawGizmoselected( ),它们是Unity的MonoBehaviour中的生命周期函数,作为绘制Gizmos的入口点,开发者需要再此方法内调用Gizmos的绘制函数,定义需要的图形是定义何时绘制和如何触发的入口方法,而。
2025-03-29 14:17:41
1481
原创 Unity编辑器功能及拓展(1) —特殊的Editor文件夹
Unity中的Editor文件夹是一个具有特殊用途的目录,主要用于存放与编辑器扩展功能相关的脚本和资源。 我们Unity中进行游戏构建时,我们经常遇到关于UnityEditor相关命名空间丢失的报错,这时候,只得将报错一条条打开,清除无用的命名空间代码片段。注:在使用vs进行Unity脚本编程时,出现手误时,vs会自动引用相关的命名空间,而有时这些多余的命名空间我们并没有使用到。回到Editor话题上,在构建时出现Editor相关命名空间丢失报错的原因是:在打包时,Unity默认不会将任何Uni
2025-03-29 12:52:33
1423
原创 学习记录—正则表达式-基本语法
正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。正则表达式可以在文本中查找、替换、提取和验证特定的模式。本期内容将介绍普通字符,特殊字符,限定符,定位符,贪婪和非贪婪几部分。
2024-12-26 13:58:41
972
原创 Unity功能模块一对话系统(3)-TMP其他自定义资产
TextMesh Pro 是 Unity 中一个强大且灵活的文本渲染系统,本期我们将解锁TextMeshPro中的更多花样。包含文本样式预设及精灵资产两部分。
2024-12-25 20:35:58
831
原创 UE5学习记录 (4)——动画蒙太奇
虚幻中的动画蒙太奇动画蒙太奇(Animation Montage)是虚幻引擎中的一个高级动画工具,专门用于管理和播放角色动画的不同片段,可以通过组合和控制多个动画序列来创建复杂的动画流程,能够在动画播放过程中插入事件(如声音或脚本)或通过蒙太奇的通知系统来与游戏逻辑进行交互。Unity中的Timeline时间轴(Timeline)是 Unity 中的一个多功能工具,主要用于在时间轴上控制多个游戏对象的动画、音频、粒子效果、摄像机移动等元素的播放顺序。
2024-12-14 21:19:22
2879
原创 UE5学习记录 (3)——不同人称视角下的摄像机
总结一下主要有以下两点1.如果希望通过摄像机的视角控制角色的朝向(第一人称模式),你需要*勾选角色细节面板下的Pawn中的使用控制器旋转属性。*勾选角色旋转面板下的使用控制器所需的旋转(此项搭配控制器使用,使得当摄像机视角告诉变化时,角色能平滑旋转)2.如果希望使用输入运动来控制角色的朝向(第三人称模式),你需要*取消勾选角色细节面板下的Pawn中的使用控制器旋转属性。*勾选摄像机弹簧手臂细节面板下的使用Pawn控制旋转和继承Pitch Yaw Roll*勾选角色细节面板下的。
2024-11-28 18:58:34
2377
原创 UE5学习记录 (2)——更改游戏角色并配置动画蓝图
虚幻文档_动画蓝图动画蓝图是一种特殊的蓝图,它用于在游戏中控制骨骼网格体的动画效果。动画蓝图编辑器(Animation Blueprint Editor)中的图表(Graphs)可以效果动画,允许你直接控制骨架的骨骼,或设置骨骼网格体逐帧逻辑,以便创建最终动画姿势。混合空间是一种能够根据多个输入参数(通常是角色的运动状态)来动态调整动画的工具。例如,在角色的移动动画中,混合空间可以根据角色的速度、方向或其他控制变量来选择和过渡不同的动画(如走路、跑步、跳跃等)。
2024-11-27 16:50:47
2752
原创 UE5 学习记录 (1)——为模之屋人物模型进行动画重定向
在UE5.4中 制作并使用IK_Rigs,创建IK重定向器,实现任意动画重定向到模之屋MMD人物模型,并导出动画序列。
2024-11-25 23:11:24
2884
原创 综合应用案例-FSM和BehaviourTree结合-创造更清晰的AI!
状态机和行为树各有优缺点,适用于不同的场景。状态机适合简单的状态管理,而行为树则更适合复杂的行为组合和决策逻辑。在实际应用中,可以根据需求选择合适的模型,甚至将两者结合使用,以实现更灵活和强大的行为管理。我们今天就尝试把二者组合运用,优化我们的AI代码结构!
2024-10-05 19:51:41
2499
原创 决策模型-BehaviourTree
行为树(Behavior Tree)是一种用于建模和实现复杂行为的结构,我们在游戏开发时有时会利用行为树来设计具有复杂决策的智能AI,它提供了一种清晰、可扩展的方式来组织和管理角色或系统的行为。
2024-10-05 18:30:47
3132
原创 Unity设计模式(1)泛型单例模式
单例模式反映了封装,分而治之的思想,便于开发者与团队间进行项目管理,将一段‘重复的功能代码’封装成一个独立的整体(如~Manager),从而实现部分功能代码的隔离,增强了代码的可读性与健壮性。也许你的项目里现在已经有了很多单例脚本,在某一个瞬间,你忽然发觉自己写过单例脚本里的代码竟然是相同的,这时,深谙面向对象之道的你灵机一动,一拍脑门,哎!在开发过程中经常将继承了泛型单例的基类的单例类脚本作为~Manager来使用,使声明单例的(通常情况下的)固定代码可复用。,另一种是继承了MonoBehevior的。
2024-09-13 17:11:51
1132
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人