[UE5 设计模式] 中介者模式Mediator Pattern


参考材料
1. 【UE4 设计模式】策略模式 Strategy Pattern
2. 中介者模式
3. UE开发中的设计模式(二) —— 中介者模式
4. 中介者模式
5. 游戏开发设计模式之中介者模式

1. 概述

1.1 描述

$\cdot$ 中介者模式(Mediator Pattern) 是用来降低多个对象和类之间的通信复杂性, 属于行为型模式.
$\\$ 中介者模式定义了一个中介对象来封装一系列对象之间的交互. 中介者使各对象之间不需要显式地相互引用, 从而使其耦合松散, 且可以独立地改变它们之间的交互.

继续阅读[UE5 设计模式] 中介者模式Mediator Pattern

[UE5 设计模式] 责任链模式Chain of Responsibility Pattern


参考材料
1. 【UE4 设计模式】策略模式 Strategy Pattern
2. 责任链模式
3. 游戏开发设计模式之责任链模式
4. Unity3D游戏开发设计模式——责任链模式

1. 概述

1.1 描述

$\cdot$ 责任链模式(Chain of Responsibility Pattern) 为请求创建了一个接收者对象的链. 这种模式给予请求的类型, 对请求的发送者和接收者进行解耦. 这种类型的设计模式属于行为型模式.
$\\$ 责任链模式通过将多个处理器(处理对象) 以链式结构连接起来, 使得请求沿着这条链传递, 直到有一个处理器处理该请求为止.
$\\$ 责任链模式允许多个对象都有机会处理请求, 从而避免请求的发送者和接收者之间的耦合关系. 将这些对象连成一条链, 并沿着这条链传递请求.

继续阅读[UE5 设计模式] 责任链模式Chain of Responsibility Pattern

[UE5 设计模式] 解释器模式Interpreter Pattern


参考材料
1. 【UE4 设计模式】策略模式 Strategy Pattern
2. 解释器模式
3. 字节码

1. 概述

1.1 描述

$\cdot$ 解释器模式(Interpreter Pattern) 提供了评估语言的语法或表达式的方式, 它属于行为型模式.
$\\$ 解释器模式给定一个语言, 定义它的文法的一种表示, 并定义一个解释器, 这个解释器使用该表示来解释语言中的句子.
$\\$ 这种模式被用在SQL解析, 符号处理引擎等.

继续阅读[UE5 设计模式] 解释器模式Interpreter Pattern

[UE5 设计模式] 模板模式Template Pattern


参考材料
1. 【UE4 设计模式】策略模式 Strategy Pattern
2. 模板模式

1. 概述

1.1 描述

$\cdot$ 在模板模式(Template Pattern) 中, 一个抽象类公开定义了执行它的方法的方式/ 模板. 它的子类可以按需要重写方法实现, 但调用将以抽象类中定义的方式进行. 这种类型的设计模式属于行为型模式.

继续阅读[UE5 设计模式] 模板模式Template Pattern

[UE5 设计模式] 组合模式Composite Pattern


参考材料
1. 【UE4 设计模式】策略模式 Strategy Pattern
2. 组合模式
3. UE开发中的设计模式(四) —— 组合模式

1. 概述

1.1 描述

$\cdot$ 组合模式(Composite Pattern), 又叫部分整体模式, 是用于把一组相似的对象当作一个单一的对象. 组合模式依据树形结构来组合对象, 用来表示部分以及整体层次. 这种类型的设计模式属于结构型模式, 它创建了对象组的树形结构.
$\\$ 这种模式创建了一个包含自己对象组的类. 该类提供了修改相同对象组的方式.

继续阅读[UE5 设计模式] 组合模式Composite Pattern

[UE5 设计模式] 桥接模式Bridge Pattern


参考材料
1. 【UE4 设计模式】策略模式 Strategy Pattern
2. 桥接模式
3. 游戏开发设计模式之桥接模式

1. 概述

1.1 描述

$\cdot$ 桥接(Bridge) 是用于把抽象化与实现化解耦, 使得二者可以独立变化. 这种类型的设计模式属于结构型模式, 它通过提供抽象化和实现化之间的桥接结构, 来实现二者的解耦.
$\\$ 这种模式涉及到一个作为桥接的接口, 使得实体类的功能独立于接口实现类, 这两种类型的类可被结构化改变而互不影响.
$\\$ 桥接模式的目的是将抽象与实现分离, 使它们可以独立地变化, 该模式通过将一个对象的抽象部分与它的实现部分分离, 使它们可以独立地改变. 它通过组合的方式, 而不是继承的方式, 将抽象和实现的部分连接起来.

继续阅读[UE5 设计模式] 桥接模式Bridge Pattern

[UE5 设计模式] 设计模式一些概念


最近在开始备考下半年的高级系统架构设计师软考, 由于之前并没有系统地学习过设计模式, 在刷这部分相关的知识要点时总是云里雾里的. 实际上, UE的源码框架中融合了非常多的设计模式, 学习其使用的设计模式的同时也能够不断加深自己对于设计模式的理解. shiroe大佬在几年前写下一系列设计模式在UE4中的应用的优秀博客文章, 但很可惜的是, 并没有更新完常用的设计模式在UE中的应用, 故自己也决定站在巨人的肩膀上继续探索剩余的设计模式在UE5中的应用. 本文将汇总一系列设计模式在UE5中的应用的文章的入口, 使用的引擎版本为UE5.5.3.

继续阅读[UE5 设计模式] 设计模式一些概念

[UE5 设计模式] 代理模式Proxy Pattern


参考材料
1. 【UE4 设计模式】策略模式 Strategy Pattern
2. 代理模式
3. UE4游戏逻辑与渲染逻辑分离

1. 概述

1.1 描述

$\cdot$ 在代理模式(Proxy Pattern) 中, 一个类代表另一个类的功能, 这种类型的设计模式属于结构型模式.
$\\$ 代理模式通过引入一个代理对象来控制对原对象的访问. 代理对象在客户端和目标对象之间充当中介, 负责将客户端的请求转发给目标对象, 同时可以在转发请求前后进行额外的处理.
$\\$ 在代理模式中, 我们创建具有现有对象的对象, 以便向外界提供功能接口.

继续阅读[UE5 设计模式] 代理模式Proxy Pattern

UE5 USkinnedMeshComponent::PrecachePSOs相关调用流程梳理


最近在游戏开发工作上碰到一个问题, 过场动画中一角色的上半身在切换其某个材质时消失了一两帧, 该问题大多数出现于机器第一次打开游戏包体播放该过场动画时, 故初步结论是由于编译PSOs导致的. 经过一番排查, 确认是编译PSOs导致的问题, 故以本文梳理USkinnedMeshComponent::PrecachePSOs相关的调用流程, 方便后续在碰到类似问题时进行复习.

继续阅读UE5 USkinnedMeshComponent::PrecachePSOs相关调用流程梳理

《Shadow Caster Culling for Efficient Shadow Mapping》论文解读及对UE5 Shadow Depth Pass的性能优化


之前在学习Nanite的过程中, 发觉自己对于传统的Shadow的遮挡剔除流程亦不甚了解, 故找来该领域比较经典的一篇论文《Shadow Caster Culling for Efficient Shadow Mapping》进行学习, 同时将其算法思想应用于UE5 Shadow Depth Pass上进行性能优化.

继续阅读《Shadow Caster Culling for Efficient Shadow Mapping》论文解读及对UE5 Shadow Depth Pass的性能优化