12 2017 档案
摘要:Parallel Rendering Overview 本页面的内容: Stage 1 Stage 2 Stage 3 Synchronization Debugging 本页面的内容: Stage 1 Stage 2 Stage 3 Synchronization Debugging In the
阅读全文
摘要:HLSL 交叉编译器 这个库将 高级着色语言 (HLSL) 着色器源代码编译成高级中间表示法,执行独立于设备的优化,并生成 OpenGL 着色语言 (GLSL) 兼容源代码。这个库在很大程度上基于 Mesa 的 GLSL 编译器。前端已进行大量重新编写,以解析 HLSL 并根据 HLSL 抽象语法树
阅读全文
摘要:线程渲染 渲染线程 在虚幻引擎 4(UE4)中,整个渲染器在其自身的线程中执行操作,该线程位于游戏线程的一两帧后。 执行渲染操作时,必须仔细地考虑内存读写,确保线程安全,以及行为的确定性。功能行为取决于两个线程之间的执行速度差,这种情况被称作竞争条件。需要尽量避免竞争条件的出现,因为它们难以重现;且
阅读全文
摘要:异步计算(AsyncCompute) 渲染硬件接口(RHI)现支持 Xbox One 的异步计算(AsyncCompute)。此法可运行与渲染异步的 dispatch() 调用,有效利用未使用的 GPU 资源(计算单元(CU)、寄存器和带宽)。异步计算使用单独的上下文,我们通过 RHI 函数同步渲染
阅读全文
摘要:着色器开发 快速入门 处理着色器时,请务必将 r.ShaderDevelopmentMode 设置为 1,以将其启用。最简单的方法是编辑 ConsoleVariables.ini,以便每次加载时都进行启用。这将启用“出错时重试”以及与着色器开发相关的日志和警告。 将更改保存到 .usf 文件之后,使
阅读全文
摘要:粒子发射器技术指南 本页面的内容: 粒子发射器引用 ParticleEmitterInstance结构体 ParticleModuleTypeDataBase类 示例粒子发射器 TypeDataModule声明 TypeDataModule的实现 粒子发射器声明 粒子发射器实现 结果 本页面的内容:
阅读全文
摘要:粒子模块技术指南 本页面的内容: 概述 ParticleModule基类 成员变量 成员函数 创建自定义模块 模块声明 本页面的内容: 概述 ParticleModule基类 成员变量 成员函数 创建自定义模块 模块声明 成员变量 成员函数 模块声明 概述 UE4 中的粒子系统由任意数目的粒子放射器
阅读全文
摘要:图形编程总览 入门 虚幻引擎 4(UE4)中有许多渲染代码,因此要通过粗略的观察来迅速了解渲染状况是较为困难。阅读代码时,比较好的入手之处是“FDeferredShadingSceneRenderer::Render”,这是渲染线程中渲染新帧之处。此外,执行 profilegpu 命令并查看绘制事件
阅读全文
摘要:FShaderCache 总览 FShaderCache 提供的机制可减少游戏中着色器的卡顿。它支持 OpenGLDrv 和 MetalRHI RHIs,可在 Mac、Linux 和 Windows 平台上使用。 可通过多个控制台命令启用或禁用 FShaderCache 功能。 控制台命令 描述 r
阅读全文
摘要:图形编程 引擎中的渲染器模块管理并渲染场景,而场景拥有和每个世界场景相关的可渲染信息。它包括所有绘制规则和着色器的定义。 RHI 模块是渲染 API 的接口,是图形编程的另一个关键组件。图形编程总览 包含许多可研究的键类、设置和变量,以下 子页面包含详细的渲染要点。 FShaderCache 图形编
阅读全文
摘要:坐标空间术语 空间 虚幻引擎中的坐标空间 别名 描述 Tangent(切线空间) 为正交坐标系(插值后将发生偏移),可为左手或右手坐标系。 TangentToLocal(切线空间到局部空间)变换仅包含旋转变换,因此它是标准正交坐标系(可通过转置变换进行反转)。 Local(局部空间) Object
阅读全文
摘要:组件 本页面的内容: Actor 组件 注册组件 注销组件 更新 渲染状态 物理状态 场景组件 附着 组件变形 元组件 场景代理 本页面的内容: Actor 组件 注册组件 注销组件 更新 渲染状态 物理状态 场景组件 附着 组件变形 元组件 场景代理 注册组件 注销组件 更新 渲染状态 物理状态
阅读全文
摘要:Pawn **Pawn**类是可由玩家或 AI 控制的所有 Actors 的基础类。Pawn 是玩家或 AI 实体在世界中的物理象征。 这不仅意味着 Pawn 决定玩家或 AI 实体的外表,而且决定其在冲突和其它物理互动方面 如何与世界交互。由于某些类型的游戏可能在游戏中没有可见的玩家网格或形象,这
阅读全文
摘要:支配 Pawn 如果您想在游戏中在多个可玩人物之间切换或想让人物进入并控制某个载具(汽车、飞机、坦克等)或具有特殊的控制方式的 Pawn(如玩家可控制的机载机关枪), 您需要支配该人物或 Pawn 以向其传送输入信息。 玩家控制器 负责控制 Pawn,支配 Pawn 需要指定玩家控制器。Pawn 自
阅读全文
摘要:角色 通过给Pawn类添加一个CharacterMovementComponent、CapsuleComponent和SkeletalMesh,将Pawn类扩展为了具有更高功能的Charater(角色)类。 设计Character 类的目的是让其表示直立的玩家,这些玩家可以在世界中走动、跑动、跳跃、
阅读全文
摘要:PlayerController(玩家控制器) PlayerController(玩家控制器)是Pawn和控制它的人类玩家间的接口。PlayerController本质上代表了人类玩家的意愿。 当您设置PlayerController时,您需要考虑的一个事情就是您想在PlayerController
阅读全文
摘要:Game Mode 和 Game State 本页面的内容: Game Modes Game State 本页面的内容: Game Modes Game State 两个主要类负责处理进行中游戏的相关信息:Game Mode 和 Game State。 即使最开放的游戏也拥有基础规则,而这些规则构成
阅读全文
摘要:游戏开发完整学习路线(各个版本都有) 在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指路,是可以事半功倍的。 一 平台与编程语言选择 首先,游戏开发的平台就有很多类型: 个人主机平台:Wi
阅读全文