平台库(Platform) 将平台特定的基础功能等统一一个接口,避免代码直接访问平台功能,实现跨平台。 宏定义 构建目标 PLATFORM_NAME 包含当前目标平台的名称,如 Windows 或 Linux 等,应由构建工具设置,缺省为 Unknown 。 PLATFORM_XXX XXX 为目标平台的名称(全大写),为当前目标平台时定义为 1 ,反之为 0 。 BUILD_TYPE 包含当前目标构建类型的名称,如 Debug 或 Release 等,应由构建工具设置,缺省为 Unknown

Read More

虚幻引擎打包时,将在根目录中创建 BootstrapPackagedGame 启动 EXE 文件,并在 Binaries/Win64 中放置真正的 UE4 游戏 EXE 文件。 它通过以下过程创建: 将 引擎/Binaries/[平台]/BootstrapPackagedGame-[平台]-Shipping.exe 文件复制到根目录 更新 Build/Windows/Application.ico 图标 更新要执行的游戏 EXE 文件相对路径参数 更新游戏的基本参数 BootstrapPacka

Read More

众所周知,UE 没有提供优先队列这一常用容器。 但是在 TArray 中有一些堆函数,可以实现优先队列的操作。 这里提供一个简单封装,其中 Priority 值越小优先级越高。 template<typename ElementType, typename ArrayAllocator = FDefaultAllocator> class TRFurPriorityQueue { public: FORCEINLINE TRFurPriorityQueue() = default;

Read More

加锁的原则 规则10.1 多线程 进程并行访问共享资源时 一定要加锁保护 共享资源包括全局变量,静态变量,共享内存,文件等。 建议封装像智能指针一样的对象对锁进行管理,比如我们就封装了一个 auto_lock ,在构造时申请锁,析构中释放锁,保证不会忘记解锁。 规则10.2 锁的职责单一 每个锁只锁一个唯一共享资源,这样,才能保证锁应用的单一,也能更好的确保加锁的范围尽 量小。对于共享全局资源,应该根据实际需要,每类或每个资源,有一把锁。这样,这把锁只锁对这个资源访问的代码,通常这样的代码都会是

Read More

本文用来水暑假的研究性学习报告 不要认真 摘要 本文给出了朴素 Marching Cubes 算法体素网格体在 Unreal Engine 4 中的实现方案,通过生成一个具有“光滑”表面的球体来演示算法的可行性。 关键词 MarchingCubes UnrealEngine 网格重建 游戏开发 研究背景 《Minecraft》是当下比较火热的游戏之一,他的体素地形系统大大提高了玩家对地形的修改能力,使得自由度大大提高,其体素表示是基于 立方体 而不是 Mesh ,这使得其对曲面的表达能力受限,同

Read More

本文用来水暑假的研究性学习报告 摘要 本文给出了一种基于 HFish 的网络威胁捕捉与诱骗系统的简单搭建模式,并通过此系统捕捉了当今互联网上的部分网络攻击,通过这些数据进行简单的整理分析,透漏出网络中的潜在威胁。 关键词 网络安全 黑客攻击 网络攻防 密码破译 研究背景 作为一个小型个人网站的站主,可能并不会感觉到自己的网站被扫描与攻击,但实际上,互联网中有不少潜在的威胁。网站在明处,潜在威胁在暗处,并不容易对潜在威胁做定性定量分析,所以就需要威胁捕捉与诱骗系统通过模仿真实网站的行为,捕捉潜在的

Read More

引擎: UE4.26.2 构建版本 事情的起因是写体素构建器的时候,想生成个球,就想到抄材质的 SphereMask 节点。 这里以 SphereMask 节点为例,分析材质蓝图节点的定义。 UMaterialExpression 材质节点的 C++ 父类为 UMaterialExpression ,定义在 MaterialExpression.h 头文件中,所有原生材质节点均为此类的子类,此类主要成员如下。 virtual int32 Compile(class FMaterialCompil

Read More

这是 2021年山大未来科学营(夏季)- 人工智能与发明创造未来科学营 的作业 所以看看就行 基本信息 名称:远程智能房间巡逻警报机器人 解决家里/房间长期无人,但是有设备运行或其他需求,需要远程监控。可以方便远程监控家中环境,监控设备的运行状态,并且具有良好的机动性和灵活性,可以适应不同的房间环境。 硬件连接图 软件框图 小车 控制端 软件流程图 小车 测速计数 线程 小车 超声 线程 小车 电机 线程 小车 图像采集 线程 小车 UDP 线程 控制端 实现过程 小车搭建 测试各传感器功能 测

Read More

Establish Battlefield Control, Stand By — 战场控制建立,请等待。 Battle Control Online — 作战控制连线。 Incoming Transmission — 信号输入。 New Objective Received — 收到新的任务目标。 Objective Complete — 任务目标完成。 Mission Accomplished — 任务完成。 Missi

Read More

CornerCoordOffset[8] – 表示顶点索引到顶点空间位置的映射,如 CornerCoordOffset[0] = (0,0,0) 表示 顶点-0 的位置是 (0,0,0) 。 Triangulation[256][5][3] – 表示三角形拆分,可以通过顶点状态(通过位掩码)拆分三角形,得到三角形对应的边索引,如 Triangulation[2][0][0] = 0 表示 顶点-1 在“内部”其余顶点在“外部”时,第一个三角形的第一个顶点在 边-0 上。

Read More

基于 Mermaid 类图规范编写: Mermaid: Class diagrams “在软件工程中,统一建模语言 (UML) 中的类图是一种静态结构图,它通过显示系统中的类以及它们的属性和操作(或方法)再加上类之间的关系来描述系统的结构。” 维基百科 类图是面向对象建模的主要构建基础。它可以用于应用程序一般结构的概念建模,以及将模型转换为编程语言代码的详细建模。类图也可用于数据建模。类图中的类表示应用中的主要元素、交互和要编程的类。 Mermaid 可以渲染类图。 classDiagram A

Read More

引擎: UE4.26.2 构建版本 StaticMesh 简称 SM ,表示引擎中的 静态网格体 ,在新版本的引擎中, SM 也被允许在运行时构建,渲染一个 SM 需要 SMC 的支持, SMC 使用 静态/动态渲染路径 ,在允许的情况下优先使用 静态渲染路径 ,会缓存所有渲染命令。 类图 UStaticMesh 类图 UStaticMeshComponent 类图 流程 动态构建流程 SM 可以通过 FMeshDescription 描述的网格体构建,一般 MD 被 UStaticMeshDe

Read More

引擎: UE4.26.2 构建版本 ProceduralMeshComponent 简称 PMC ,提供一个程序化网格组件,可以通过自定义的三角形制作可渲染网格,使用动态渲染路径,在每帧收集渲染数据,没有任何数据缓存。 类结构 游戏 类图 渲染器 类图 简介 UActorComponent – 所有组件的基类。 USceneComponent – 带有 变换 属性的组件。 UPrimitiveComponent – 图元组件的基类,表示组件带有可渲染的图元。

Read More

多人联机吃鸡小游戏 多人联机跳跳大作战 多人联机碰碰大作战 多人联机领地大作战 多人联机星爆大作战 多人联机巷口大作战 多人在线摆锤大作战 多人联机策略大作战 多人联机海盗大作战 多人联机动物大作战 多人联机战舰大作战 多人联机物理大作战 多人联机僵尸大作战 多人联机切菜大作战 多人联机飚车大作战 多人联机圈地大作战 多人联机坦克大作战 多人联机撞击大作战 多人联机突突大作战 多人联机冲冲大作战 多人联机消除大作战 多人联机空中大作战 多人联机斧头大作战 多人联机坦克大作战 多人联机蛇蛇大作战

Read More

实现一个类月球岩石星,可以通过球形笔刷进行地形修改。 思路/计划 实现自己的 程序化 Mesh 组件 ProceduralMeshComponent 分析 StaticMesh 分析 实现程序化网格图元组件 实现可编辑 MarchingCubes 组件 等值面生成 Cube Chunk 球形笔刷编辑 无限世界 多 Chunk 组合 动态 加载/拆卸 Chunk 实现程序化地形 性能优化 Levels of Detail Compute Shader 参考资料 Mesh Generation an

Read More

成果 引擎版本 4.26.2 实现一个 UTexture2DArray 包裹器。 支持在 Runtime 的纹理数组创建与修改。 支持纹理数组 MipMap (官方实现只有第0层Mip)。 效果图 此纹理数组共5个元素,5个 Mip 层级。 其中,横向为元素,纵向为 Mip 层级。 代码 Texture2DArrayWrapper.h #pragma once #include “CoreMinimal.h” #include “UObject/Object.h” #include “Textu

Read More

原文传送门 FRunnable & FRunnableThread FRunnable提供了最为原始的线程支持,类似std::Thread,虽然没那么优雅,但是功能略多于std::Thread FRunnable—-承载业务逻辑 +[f] Init : 初始化,可以失败 +[f] Run : 线程运行函数,返回退出代码 +[f] Stop : 提前终止这个线程 +[f] Exit : 进行退出前的清理 +[f] GetSingleThreadInterface : 平台不支持

Read More

Adblock Plus – 免费的广告拦截器(备用下载) CF-Predictor – 在CF比赛中预测评分变化(备用下载) Codeforces Practice Tracker – CF练习统计(备用下载) Dark Reader – 黑色主题(备用下载) Markdown Here – H5和MD格式互换 YouTube™双字幕 – 油管英汉字幕(新版本取消了,需要使用 1.4.2) YouTube™广告拦截器 &#

Read More

使用 Tarjan 算法 lli fa[maxn]; lli dfn[maxn]; lli low[maxn]; bool cut[maxn]; void tarjan(lli u) { dfn[u] = ++cnt; low[u] = dfn[u]; lli child = 0; for (lli i = 0; i < mp[u].size(); ++i) { lli v = mp[u][i]; if (!dfn[v]) { ++child; fa[v] = u; tarjan(v);

Read More

约定存边方式为从左部到右部的有向边,左右部点编号相同 匈牙利算法 lli mch[maxn]; lli vis[maxn]; bool dfs_hun(lli u, lli dfn) { if (vis[u] == dfn) return false; vis[u] = dfn; for (lli i = head[u]; ~i; i = edge[i].nxt) { lli v = edge[i].v; if (mch[v] == 0 || dfs_hun(mch[v], dfn)) { mc

Read More

lli n; lli arr[maxn]; lli lg[maxn]; lli st[maxn][32]; inline lli flg(lli x) { if (lg[x]) return lg[x]; lli tmp = x; lli res = 0; while (tmp) tmp >>= 1, ++res; return lg[x] = res – 1; } inline void init_st() { for (lli i = 1; i <= n; ++i) st[

Read More