在介绍UE4渲染体系前,我们有必要来先看一下UE4是用什么样的方式来构建游戏场景数据的。

1 Object

在UE4中当我们说Object,通常是指代引擎代码中的UObject类,它是引擎里管理绝大部分类和对象的基石,这是因为它提供了非常多的开发者需要的功能特性,例如元数据、反射、垃圾回收、序列化、编辑器支持等一系列功能。


与Unity中的物体容器GameObject相比(名字上类似),个人理解UObject存在更像是一种UE4提供的开发核心工具箱,各种需要高复用性的核心功能都集成到里面,不仅仅说场景里的各个物体需要用到UObject提供的功能,不可见的底层数据管理同样也需要使用到这些。

2 Actor

Actor通常指代引擎代码中的AActor类,所有可以放置到游戏场景中的"物体"都是一个Actor,例如角色、怪物、光(ALight)、场景(AStaticMeshActor)、摄像机(ACameraActor)等等。它提供的功能和Unity的GameObject就比较相似了,作为一个容器包含一个"物体"的各种内容,自然地AActor继承自UObject类,在UObject的基础上,还提供了网络同步、创建销毁、帧更新等功能。

对很多刚接触的开发者来说,可能Actor的名字看起来有点突兀,UE4并没有特别说明该名称的由来,个人理解,Actor单词本身的意思是演员,如果可以把游戏看作一场演出的话,其中就是各位出演角色各司其职,角色和怪物完成各种交互、光照(就像打光师)完成场景光照、场景物体可以各种移动变化、摄像机完成拍摄等等。

3 Component

Component通常指代引擎代码中的UActorComponent类,继承UObject,是所有组件类型的基类,通常挂载在Actor实例下,如同之前所介绍的,Actor本身是一个容器,而Actor具体的特性则由其具有的Component决定,如在世界场景中的位置旋转缩放(USceneComponent)、模样(UMeshComponent)等等。

Component对于Actor来说并不是必选的,可以存在没有组件的空Actor、不需要空间位置的Actor、不需要模样的Actor等等,这样在我们DIY自己需要的Actor时,就可以尽可能少地引入不需要的内容了。

4 Level

Level通常指代引擎代码中的ULevel,也被叫做关卡,是UE4中用于组织游戏场景的基本单位,由一系列可见和不可见的Actor组成,同时还包含Level自身的一些属性,比如关卡属性、关卡蓝图等等,和Unity中的Scene概念相通。

5 World

World,引擎代码中的UWorld,如果说Level代表场景,那World代表承载这个场景的世界,Level必须放在World中才能显示出其中的内容,对于一些以关卡切换来转换游戏场景的游戏来说,他们一个Level就是一个World,这样的概念可能有点多余,但是在很多开放世界的项目中,一个World同时可能不止一个Level,很多3A游戏的无缝多场景切换也是得益于流式关卡(Streaming Level)的使用。

6 Script

除了以上的基本概念,还有脚本(Script)存在于世界的各个Actor中,脚本可以用于给Actor添加不同的行为,脚本可以是C++定义编写的,也可是蓝图定义的,从功能上看,脚本和Component十分相像,但在UE4的组织形式上看,脚本并非是一种Component,而更像是一种对Actor的补充,从程序员角度来讲,就像是对Actor一些接口的覆写(Override),例如自定义BeginPlay、Tick、EndPlay等(对应Unity中的Start、Update、End)时Actor应该有的操作。

顺带一提

你可能已经发现在提到引擎代码中的类名时,相比名称会多出一个前缀(Prefix),这是UE4中一种编码规范,用来指代该类的类别:

  • T:模板类,例如TArray
  • U:继承UObject的类;
  • A:继承AActor的类;
  • S:继承SWidget的类;
  • I:抽象界面类;
  • E:枚举;
  • F:其他多数类(不在UObject继承体系内);

参考文献

  • [1] 0向往0,剖析虚幻渲染体系(01)- 综述和基础
  • [2] UE4官方文档,Actor生命周期
  • [3] UE4官方文档,代码规范

《图解UE4渲染体系》Part 0 引擎基础相关推荐

  1. 《图解UE4渲染体系》Part 1 多线程渲染

    上回书<Part 0 引擎基础>说到,我们粗略地知道UE4是以哪些类来管理一个游戏场景里的数据的,但这仅仅是我们开始探索UE4渲染体系的一小步. 本回主要介绍UE4渲染体系中比较宏观顶层的 ...

  2. 视频教程-FPS游戏逆向与安全+UE4引擎基础详解-其他

    FPS游戏逆向与安全+UE4引擎基础详解 想把自己的知识传播出去,让更多人学习到 苏瑞兵 ¥188.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订阅课程,领取 ...

  3. webGL、webGPU、封装、渲染引擎 three.js、游戏引擎,定位是游戏开发,在前面的渲染引擎基础上,还提供了骨骼动画、物理引擎、AI、GUI 等功能,以及可视化编辑器来设计关卡,支撑大型游戏

    https://zhuanlan.zhihu.com/p/162878354 如何选择 WebGL 框架和引擎? ​ 知道得越多,不知道的就更多了 数据可视化Sugar-百度智能云 ​cloud.ba ...

  4. UE4渲染目标开发实战

    渲染目标(Render Target)是你可以在运行时写入的纹理.在引擎方面,它们存储基础颜色.法线和环境光遮蔽等信息. 在用户方面,渲染目标主要用作一种辅助相机.你可以将场景捕捉指向某物并将图像存储 ...

  5. UE4:27启动虚幻引擎的步骤崩溃课程4

    家庭商店全部350+教程 教程主题▾ 搜索关于联系 UE4:27启动虚幻引擎的步骤崩溃课程4 类别:虚幻引擎4 2015年9月21日 分享 此贴/页: 在分享 鸣叫 全文教程和注释: 虚幻引擎4是一款 ...

  6. v8引擎处理html,JavaScript V8引擎基础教程

    本篇教程介绍了JavaScript V8引擎基础教程,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入. < 一.浏览器内核-渲染引擎 渲染,就是根据描述或者定义构 ...

  7. ue4渲染速度太慢_[UE4]性能优化指南(程序向)

    封面来源:A Cold Stop(Mixer 制作材质.UE4渲染 ) [UE4]性能优化指南(美术向)玄冬Wong:[UE4]性能优化指南(美术向)​zhuanlan.zhihu.com 内容都是处 ...

  8. 图解浏览器渲染原理及流程

    本文约 8500 字,预计阅读需要 30 分钟. 今天来分享一下浏览器的渲染原理及流程. 前言 先来看看 Chrome 浏览器的多进程架构: 通常,我们打包出来的 HTML.CSS.JavaScrip ...

  9. 虚幻引擎基础入门(C++) — 【数据类型篇 04】

    虚幻引擎基础入门(C++) - [数据类型篇 04] 文章目录 虚幻引擎基础入门(C++) - [数据类型篇 04] 一.基本数据类型 二.字符编码 三.字符类型 总结 一.基本数据类型 UE对于C+ ...

最新文章

  1. VMM系列之使用VMM服务器构建 Hyper-V主机(2)
  2. MongDB与Spring整合及操作
  3. 使用 Windows 服务器备份执行 Exchange 2010 备份
  4. TOA定位算法的FPGA实现
  5. MySQL引擎innodb和mysum_mysql数据库引擎InnoDB和MyISAM
  6. 计算机pc软盘不能数字,老人把遗嘱存5寸软盘难坏家人 老电脑终未读出
  7. 使用ADO操作数据库时一个好用的VARIANT类!
  8. 1058 选择题 (20 分)
  9. 猜数字游戏(Java)
  10. 20200728每日一句
  11. 计算机检索系统中 每一种文献特征,自考《档案文献检索》串讲资料(1)
  12. Intellij IDEA中程序播放音乐 没声音
  13. VB6.0精简版调用matlab进行数值计算:
  14. 支持对抗样本防御的AI加速器架构设计
  15. mysql主键和唯一索引_主键和唯一索引的区别
  16. 浅谈setOnClickListener使用方法
  17. 深蓝学院-视觉SLAM十四讲-第一章作业
  18. 【转】未来10年经济走向及发展趋势
  19. html5 canvas 绘制、移动方块及撤销操作
  20. C语言实现埃拉托色尼筛选法(剔除数组中的非质数)

热门文章

  1. 我YY的一个移动应用运营模式
  2. Element UI select 下拉框样式覆盖
  3. python基础面试题
  4. 高通-LCD驱动框架简述
  5. JavaScript获取页面高度
  6. 【C】【Linux】利用C curses函数库进行终端彩色显示
  7. 怎样用java实现文件比较,判断是否是同一个文件
  8. cpmp和pmp(cpmp和pmp哪个好考)
  9. MongoDB文档数据库
  10. 震惊!深度揭秘互联网络!!!