- 仍处于测试阶段。目前仅包含 Linux 开发镜像,无 Windows 开发镜像(由于技术和法律限制,官方无法发布 Windows 开发镜像)。所有支持像素流的 Windows 运行时镜像都支持基于 NVIDIA 和 AMD 显卡的 GPU 加速。Linux 镜像只支持 NVIDIA 显卡,对AMD 显卡的支持将在未来推出。
- E4 Container 基于 TensorWorks开源架构开发,并由 虚幻容器 社区维护。
- E4 Container 的作用:增强生产管线,开发次世代云应用程序,大规模部署企业解决方案等。
- UE4 Container 属于轻量级的,以容器镜像的方式存储在磁盘上,通过 Image 可运行一个或多个 Container 。与虚拟机不同的是,Container 共享一个底层 OS 内核,可跨不同 Container Image 共享公共数据,并能实现大量并发部署。 容器的应用标准单元可在不同计算基础设备(包括本地设备和云端设备)之间迁移。
- 包含两种容器镜像:开发镜像(Dev Images)和运行时镜像(Runtime Images)。4.27 版本中共有 7 中镜像类型。
开发镜像与运行时镜像对比:
1、开发镜像用于需要编辑器的任务,在法律上有严格的 EULA 限制来管理它们的分发。
包含内容:
- (必需): Engine 构建工具和 Editor
- (可选):非核心引擎组件,如模板项目、调试符号和派生数据缓存 (DDC)
- (可选):使虚幻编辑器能够渲染图形所需的运行时依赖项和配置文件
- (可选):在 Linux 下将虚幻编辑器作为沙盒 GUI 应用程序运行所需的运行时依赖项和配置文件
- (可选):使用 X11 转发通过 VNC 或 SSH 远程访问虚幻编辑器所需的运行时依赖项和配置文件
- (可选):其他第三方附加功能或开源工具,例如 ue4cli
执行任务:
- 在容器中构建和打包项目或插件
- 为容器内的 Unreal 项目运行自动化测试工作流程
- 运行命令行功能为容器内的 Unreal 项目烘焙光照、烘培内容、电影渲染或执行其他任务
- 为容器内的 Unreal 项目渲染 Sequencer 过场动画
- 在容器内运行 Python 脚本或其他编辑器自动化实用程序
2、运行时映像用于运行打包的项目,包含打包的 Unreal 项目及其运行时依赖项,并且可以更自由地分发。
包含内容:
- (必需):运行带离屏渲染的打包虚幻项目所需的运行时依赖项
- (可选):启用音频输出所需的运行时依赖项和配置文件
- (可选):使用 Pixel Streaming 远程访问打包的 Unreal 项目所需的运行时依赖项和配置文件
- (可选):使用 X11 转发通过 VNC 或 SSH 远程访问打包的 Unreal 项目所需的运行时依赖项和配置文件
- (可以通过扩展基础镜像或绑定挂载文件自行添加):自定义在容器中运行的打包虚幻项目
执行任务:
- 使用 Engine 开发映像在容器内构建和打包项目,然后在容器内运行它
- 在容器外构建和打包项目,然后在容器内运行
3、可用镜像容器。
容器镜像的源代码:Engine/Extras/Containers.
容器镜像的预构建版本:GitHub 容器注册表。
镜像 | 镜像类型 | 描述 |
dev | 开发镜像 | 虚幻引擎的完整 Linux 开发镜像,包括虚幻引擎的已安装版本、模板项目和完整调试符号。 |
dev-slim | 开发镜像 | Linux 版本的开发镜像,内容较小,不包含模板项目和调试符号。 |
runtime | 运行时镜像 | 带有或未带有 GPU 加速的简化版 Linux 运行时镜像,专用于在容器内运行打包的虚幻引擎应用程序。为了将镜像大小压缩到最小,此镜像不支持音频输出。 此容器镜像目前仅对使用 NVIDIA GPU 的机器提供 GPU 加速支持。 |
runtime-pixel-streaming | 运行时镜像 | 此镜像扩展了简化版 Linux 运行时镜像,以添加像素流应用程序所需的依赖项,包括支持音频输出。因此,尽管此镜像仍比 Windows 运行时镜像要小得多,但明显比默认运行时镜像要大。此容器镜像目前仅支持 NVIDIA GPU 的 GPU 加速。 |
runtime-windows | 运行时镜像 | 带有或未带有 GPU 加速的 Windows 运行时镜像,专用于在容器内运行打包的虚幻引擎应用程序。由于 Windows 容器镜像已经比 Linux 容器镜像大很多,而且与 Windows 操作系统本身的大小相比,像素流应用程序所需的依赖项相对较小,因此该镜像也包含这些依赖项。目前,对于在基于 GPU 加速的 Windows 容器内运行像素流应用的支持还是试验性的,不建议在实际开发中使用。 |
pixel-streaming-signalling-server | 特殊镜像 | 包括像素流系统使用的 Cirrus 信号和 web 服务器的 Linux 容器镜像。 |
multi-user-server | 特殊镜像 | 包括虚幻引擎多用户编辑系统所用服务器的 Linux 容器镜像。 |
不同的用例可能需要这些类型的容器映像中的一种或两种。
4、软件及硬件要求。
包含在虚幻引擎中的 Linux 容器镜像可以在 Windows、macOS 或 Linux 上构建和运行。计算机需满足以下硬件要求:
- 64 位 CPU,支持 SLAT (二级地址转译,处理器虚拟化技术,为虚拟化应用提供加速功能,如VirtualBox、Hyper-V 等)。
- 在系统 BIOS 中启用硬件虚拟化支持。
- 系统内存至少为 4 GB。
- Windows: 64位Windows 10 家庭版、专业版、企业版、教育版、1903 版本或更新版本,并且安装了 Windows 版 Docker 桌面版。
- macOS: macOS 版 10.14 或更新版本,并且安装了 Mac 版 Docker 桌面版。
- Linux: 64 位版本的 CentOS 7 或更新版本、Debian 10 或更新版本、Fedora 32 或更新版本、Ubuntu 16.04 或更新版本,或任何满足 Docker 先决条件的 Linux 发行版,并且安装了 Docker 引擎。
包含在虚幻引擎中的 Windows 容器镜像可以在 Windows 上构建和运行。计算机需满足以下软件要求:
- 64 位 Windows 10 专业版、企业版、教育版、1809 版本或更新并且安装了 Windows 版 Docker 桌面版。
推荐使用Docker来构建并运行包含在虚幻引擎中的容器镜像。
5、安装 Docker
Windows: 安装 Windows 版 Docker 桌面版。
安装时报错:Docker Desktop requires the Server service to be enabled.
解决:在命令行运行 cmd ,输入命令 services.msc,查找并选中 Server, 将 Server 的服务状态设置为 “启动”。
macOS: 安装 Mac 版 Docker 桌面版
Linux: 按照相应说明为你的特定Linux发行版安装Docker引擎:CentOS、Debian、Fedora、Ubuntu、其他 Linux 发行版。
6、使用 Github 容器注册表进行身份验证。
Windows 下命令行运行以下:
>echo ACCESS_TOKEN | docker login ghcr.io -u USERNAME --password-stdin Login Succeeded
ACCESS_TOKEN
替换为 GitHub 个人访问令牌;
USERNAME
替换为 GitHub 用户名;
使用以下命令登录 Docker: > docker login
使用容器注册表时需要选择 read:packs
作用域(下载容器映像并读取其元数据)、 write:packages
作用域(下载和上传容器映像并读取和写入其元数据)、delete:packages
作用域(删除容器映像)。
否则后续中会出现:
>docker pull ghcr.io/epicgames/unreal-engine:dev-4.27 Error response from daemon: unauthorized
7、拉取预构建容器镜像
相关推荐
用于运行打包的UE4项目的容器映像 映像的各种标签为通过进行具有完整GPU加速的打包的虚幻引擎项目提供了最小的预配置环境。 (有关NVIDIA Container Toolkit的更多详细信息,请参见Unreal Containers社区中心上的。...
var ue = UE.getEditor('container', {lang:"zh-hk" } ); 其中lang:"zh-hk"表示“中文-香港”,香港使用繁体字。 如果要用简体,这样即可: var ue = UE.getEditor('container' );
本文详细的介绍了vue实现公告栏文字上下滚动效果的示例代码,分享给大家,具体入如下: ... <div class=text-container> <p class=text key=text.id>{{text.val}} [removed] export default { name: '
2) UE或者AN发起PDU session modification过程,AMF转发给SMF; 3) SMF对AMF响应Nsmf_PDUSession_UpdateSMContext消息,这个消息中包含: N2 SM information(PDU session id, QFI, Qos profile, Session AMBR) ...
首先,注册Key 1、注册开发者账号,成为高德开放平台开发者 2、登陆之后,在进入「应用管理」 页面「创建新... 3、为应用添加 Key,「服务平台」一项请选择「 Web 端 ( JSAPI ) 」 然后,书写代码 ... <!...meta na
2016秋语文版语文八上第23课《记承天寺夜游》ppt课件
container.scrollTop( scrollTo.offset().top – container.offset().top + container.scrollTop() ); // Or you can animate the scrolling: container.animate({ scrollTop: scrollTo.offset().top – container....
4 General 7 4.1 Procedure specification principles 7 4.2 Forwards and backwards compatibility 7 4.3 Specification notations 7 5 X2AP services 8 5.1 X2AP procedure modules 8 5.2 Parallel transactions 8...
1.什么是render函数? ...但是,在特殊情况下,这种写死的模式无法满足需求,...<div id=container> Hello world! 我们会如下使用: <!DOCTYPE html> <html> <head> <title>演示Vu
本文实例为大家分享了jQuery实现轮播图及其原理的具体代码,供大家参考,具体内容如下 <!...<... <head>...meta charset="utf-8" name="viewport" content="width=device-width,initial-scale=... .container{ wid
Abgesehen von CLI,Kan man sichüberdas Portainer Frontend mit dem Container verbinden。 Hierzu Unter einloggen(使用VSever登录名登录)>本地>容器>执行控制台>用户名:root shellöffnen。 Wiefügeich ...
var $container = $('#main'); $container.imagesLoaded( function(){ $container.masonry({ itemSelector : '.item', columnWidth:205, gutterWidth:10, isAnimated: true }); }); var pre_href;
下面一段代码给大家介绍vue实现个人信息... //用了element组件,自己要加载和引入 <div class=all-container> <div class=all-container-padding> 基本信息 name=first> <el-form :model=userlist :rules=rul
应用场景: 在实际使用中经常会遇到需要在Form表单中使用table表格进行表单提交,同时又需要对table的字段进行校验,效果如图所示: 这个校验中,最关键的问题... <div class=app-container> <el-table-colum
通过VueRouter来实现组件之间的跳转,供大家参考,具体内容如下 提供了3种方式实现跳转: ①直接修改地址栏中的路由地址 <!doctype html> <... ... <div id=container> <p>{{msg}} <!--通过router-view
2、$.each(container, callback(key,value)) 对container的每一项进行迭代,为每一项调用回调函数callback。 container 可以是对象或数组。如果是js对象,则迭代其每个属性;如果是数组,则迭代其每个元素。 ...
本文实例讲述了jQuery实现切换字体大小的方法。分享给大家供大家参考。具体实现方法如下: 代码如下:$.fn.switchSize = function(settings) { // defaults settings ...var $container = $(settings.cont
$.each(container, callback) 对container的每一项进行迭代,为每一项调用回调函数callback。 container 可以是对象或数组。如果是js对象,则迭代其每个属性;如果是数组,则迭代其每个元素。 callback 回调函数。...
本文实例为大家分享了vue双花括号的具体代码,供大家参考,具体内容如下 ... <div id=container> <h1>{{msg}} <h4>{{cart.brand}} <!--在双花括号中 执行运算表达式 --> <p> 3 + 5 = {{ 3 + 5 }} <sc
本文实例为大家分享了... <div class=container> <li class=active><a>导航菜单</a></li> <li><a>TAB标签</a></li> <div class=tab_container> <div id=tab1 class=tab_content style=display: block;