虚幻引擎
文章平均质量分 92
个人学习过程中的笔记
yueduyuzhou
这个作者很懒,什么都没留下…
展开
-
UE4 运行流程源码浅析(3——从Start到BeginPlay)
本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。前面我们介绍了引擎的执行流程和各个阶段(预初始化、初始化、循环、退出)函数调用的情况,但我们好像还没看见我们熟悉的是在哪里被调用的。其实所有的源头就是我们上一篇没有进一步介绍的函数,本篇会从Start函数出发详细介绍这其中的调用过程。原创 2024-02-19 23:05:22 · 2285 阅读 · 1 评论 -
UE4 运行流程源码浅析(2)
本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。在《》中我们简略讲了一下虚幻引擎运行流程,相信大家已经对整体框架有了初步的了解。本篇我们来讲一下之前没讲的,在虚幻引擎预初始化()、初始化()、循环()等阶段中调用的一些比较重要的函数。原创 2024-02-11 22:51:51 · 2442 阅读 · 2 评论 -
UE4 运行流程源码浅析(1)
本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。在之前的文章中我们接收过虚幻引擎的智能指针,介绍过代理也介绍过虚幻多线程。但这些都是在引擎运转过程中起作用的模块。本人认为想要学好虚幻引擎,我们需要知道点燃它的第一把火,即虚幻引擎是如何启动的。本章会来讲讲启动的时候它做了哪些准备工作,浅析一下引擎启动的源码。这篇文章会从虚幻程序的入口、虚幻引擎运行流程结构、虚幻引擎的初始化和虚幻引擎主循环四个部分来展开来说。原创 2024-01-31 23:15:42 · 1141 阅读 · 0 评论 -
UE4 多线程源码浅析(3——TaskGraph)
本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。前两篇我们分别讲了虚幻多线程的基础线程系统()和异步任务系统(),本篇我们来讲讲虚幻多线程的最后一员大将——。字面意思是任务图,可以把它看成是超进化版的线程池,相对的它的源码也变得更加复杂。实现了任务之间额等待机制,因此它和前两种多线程系统最大的区别在于它可以表示出任务与任务之间相互依赖的关系。原创 2024-01-12 20:22:27 · 1205 阅读 · 1 评论 -
UE4 多线程源码浅析(2——AsyncTask)
本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。上篇我们讲解了一下的源码,了解了一下它的基本架构和一些实现。本篇我们将介绍接下来的异步任务系统(),在《UE4 多线程的使用》中我们了解了异步任务系统的使用方法,似乎没看到任何有关的字眼,那么它和有关吗?事实上,有的,不过这需要我们进入到它的底层去看才能找到。在正式介绍之前,我们需要先介绍虚幻线程池(),因为异步任务系统是基于虚幻线程池搭建的。原创 2023-12-21 20:15:52 · 1694 阅读 · 0 评论 -
UE4 多线程源码浅析(1——FRunnable)
本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。在**《UE4 多线程的使用》**中我们了解到虚幻引擎为我们提供了三种使用多线程()的方法,这篇文章我们来了解一下这三个工具的源码。首先当然是最简单的,使用它需要两部分,一是逻辑的载体(),二是真正的线程(原创 2023-12-05 13:09:48 · 275 阅读 · 0 评论 -
UE4 多线程的使用
在现代操作系统中,多线程是一项极其重要的特性。因此基于多线程平台开发出来的程序应该要好好的利用这种特性。虚幻引擎作为跨平台的、大型游戏引擎,也提供了一套自己的使用平台多线程的解决方案,首先来了解一下虚幻多线程的基本概念。虚幻多线程分为专用线程和线程池线程,专用线程——游戏线程(GameThread)、渲染指令生成线程()、渲染指令执行线程(RHIThread)、音视频处理线程()等;原创 2023-11-14 20:42:42 · 657 阅读 · 0 评论 -
UE4 代理(Delegate)源码浅析(3)
这一篇是代理的最后一篇了,写代理的使用和源码前前后后也写了有一个多月。有小伙伴会发现我越写到后面省略越多东西,主要是代理之间有许多相似的地方,都写出来的话感觉太冗余了。虚幻引擎的几种代理的架构都差不多,有些除了可接受的参数数量不同外几乎一模一样,知道了几个代表,再看其他的其实很简单。原创 2023-10-31 20:43:27 · 322 阅读 · 1 评论 -
UE4 代理(Delegate)源码浅析(2)
本文章只是我个人在学习虚幻引擎过程中的理解,不一定正确,若有说的不对的地方,欢迎指正。以下引用的源码在Engine\Source\Runtime\Core\Public\Delegates\文件夹下的文件内均可找到在《UE4 代理(Delegate)源码浅析(1)》中我们浅析了一下静态单播代理的源码,这次我们继续讲讲剩下的代理。原创 2023-10-21 20:50:05 · 169 阅读 · 1 评论 -
UE4 代理(Delegate)源码浅析(1)
本文章只是我个人在学习虚幻引擎过程中的理解,不一定正确,若有说的不对的地方,欢迎指正。以下引用的源码在Engine\Source\Runtime\Core\Public\Delegates\文件夹下的文件内均可找到。原创 2023-10-09 20:17:30 · 177 阅读 · 1 评论 -
UE4 代理(Delegate)的使用(1)
本文章只是我个人在学习虚幻智能指针过程中的理解,不一定正确,若有说的不对的地方,欢迎指正。在学生时代,我们写程序的时,想要在一个A类中调用B类的方法函数的时候,我们一般会A类内保存一个B类的引用。但这样做会造成A类与B类的(A类要知道B类的类型才能获得引用),造成某些不好的影响。而在虚幻引擎里写复杂代码的过程中为了减少类似的情况发生,也为了代码便于后期维护,引擎提供了。那么什么是代理?代理就是夹在A类和B类中间的类型,A类需要调用B类的某个函数,它可以通过保存在类内的代理对象来调用这个函数。原创 2023-09-24 21:43:40 · 183 阅读 · 0 评论 -
UE4 代理(Delegate)的使用(2)
写到这里,虚幻引擎代理者这部分差不多写完了,不敢说写出来代理的所有用法,但也基本覆盖了最常用的。这两篇文章也算是这的时间学习虚幻引擎代理的总结吧。原创 2023-10-01 21:02:31 · 141 阅读 · 0 评论 -
UE4 共享指针的使用
本文章只是我个人在学习虚幻智能指针过程中的理解,不一定正确,若有说的不对的地方,欢迎指正。在虚幻引擎中继承自UObject类的子类自然会拥有垃圾回收机制(GC),自然不需要开发者担心内存泄露的问题,但是开发过程中对于不继承自UObject的类该怎么办呢?这时候智能指针的作用就凸显出来了。智能指针能保存一个引用计数,引用计数就是代码中引用原始对象的数量,当引用计数变成0时,智能指针会自动失效,以防止开发者错误使用野指针。原创 2023-09-12 19:57:28 · 172 阅读 · 1 评论 -
UE4 共享指针源码浅析
本文章只是我个人在学习虚幻智能指针过程中的理解,不一定正确,若有说的不对的地方,欢迎指正。根据源码里面的注释可以看出,UE4智能指针借鉴了C++自带的 std:shared_ptr,但由于一些平台并不支持C++的智能指针,因此,虚幻官方开发者重新写了一套智能指针,它基本支持市面上所有你能看到的平台,而且还与UE自身提供的容器无缝衔接,熟练使用它能避免出现使用普通指针会出现的一些问题。原创 2023-09-18 21:09:05 · 163 阅读 · 0 评论