虚拟纹理参考

包含虚拟纹理中涉及的项目设置、控制台命令和Actor设置的相关参考信息。

Windows
MacOS
Linux

本页面包含虚拟纹理系统的要求、设置、控制台命令的相关信息。

流送虚拟纹理设置

以下为用于设置和处理流送虚拟纹理 的设置和属性。

项目设置

在项目中激活 启用虚拟纹理支持(Enable virtual texture support) 后,可在 项目设置(Project Settings) 窗口下的 编辑器(Editor)渲染(Rendering) 类别中访问以下设置。

PS_EnableVT.png

渲染设置

可用渲染选项位于 项目设置(Project Settings) 窗口中的 引擎(Engine) > 渲染(Rendering) > 虚拟纹理(Virtual Textures) 类别下。

属性

说明

启用虚拟纹理支持(Enable virtual texture support)

启用后可使用虚拟纹理系统流送纹理。更改此设置需重启编辑器。

启用虚拟纹理光照贴图(Enable virtual texture lightmaps)

将光照贴图烘焙为虚拟纹理。这意味光照贴图将具有流送虚拟纹理 的所有优缺点。与传统光照贴图纹理图谱表相比,VT可使关卡中的所有光照适应单个纹理,从而提高批处理效率。须重建项目光照后,此更改才会生效。更改此设置需重启编辑器。

图块大小(Tile size)

虚拟纹理图块的大小(以像素计)。所有非二幂次方的值将四舍五入为下一个二幂次方值。更改此设置需重启编辑器。

图块边界大小(Tile size)

虚拟纹理图块边界的大小(以像素计)。所有非二幂次方的值将四舍五入为下一个二幂次方值。较大边界将启用较高程度的各向异性过滤,但会占用较多硬盘/缓存。更改此设置需重启编辑器。

反馈分辨率因子(Feedback resolution factor

较小因子将增大虚拟纹理反馈分辨率,同时增加CPU/GPU开销。其会缩短流送延迟,特别是材质使用过多虚拟纹理时。

启用Zlib压缩(Enable Zlib compression)

允许使用Zlib压缩虚拟纹理。此压缩可减少VT纹理的硬盘输入/出开销(读取或写入次数),但将增加CPU解压缩开销。更改此设置需重启编辑器。

启用Crunch压缩(Enable Crunch compression)

允许使用Crunch库压缩虚拟纹理。Crunch是一个开源压缩库,专门用于深度压缩GPU块压缩的纹理(使用DXT/BC/ETC压缩)。其压缩的数据比Zlib压缩的数据更小,同时还减少了CPU的解压开销。但压缩均为有损,因此图像质量会有所下降。启用后Crunch仅用于支持的纹理格式。更改纹理编辑器中的 有损压缩量(Lossy Compression Amount) 属性,可逐VT资源控制应用的有损压缩程度。默认值将采用最小压缩,获得最高质量并占用最多内存,但仍低于Zlib的内存占用率。也可禁用有损压缩,或增大压缩程度以降低内存占用率,但将损失压缩质量。更改此设置需重启编辑器。

编辑器设置

可用编辑器设置位于 项目设置(Project Settings) 窗口中的 编辑器(Editor) > 纹理导入(Texture Import) > 虚拟纹理(Virtual Textures) 类别下。

属性

说明

自动虚拟纹理大小(Auto Virtual Texturing Size)

自动启用大于或等于此大小纹理的 虚拟纹理流送(Virtual Texture Streaming) 纹理设置。此设置不会影响项目中的现有纹理。

纹理编辑器

使用纹理编辑器设置和控制有损压缩量以及纹理是否支持SVT。

点击查看大图。

属性

说明

压缩

有损压缩量(Lossy Compression Amount)

相关有损压缩的应用程度。从最低的无有损压缩到最高压缩等选项中,选择使用一个选项,文件最小时图像质量最差。

纹理

虚拟纹理流送(Virtual Texture Streaming)

使用虚拟纹理时是否应流送此纹理。注意:对等于或大于 自动虚拟纹理大小(Auto Virtual Texturing Size) 的所有导入纹理,默认启用此参数。(此纹理大小在 项目设置(Project Settings)编辑器(Editor) > 虚拟纹理(Virtual Texturing) 下设置)

运行时虚拟纹理设置

在项目中使用以下设置和属性设置和处理运行时虚拟纹理

运行时虚拟纹理资源

打开 运行时虚拟纹理 资源时,使用此窗口设置场景生成RVT的参数,包括引用该RVT的 运行时虚拟纹理体积。可在 材质和纹理(Materials & Textures) 下的 新增(Add New) 菜单中创建RVT资源。

RVTAsset_Settings.png

属性

说明

细节

页面表纹理内存(预计)(Page Table Texture Memory (estimated))

预估此虚拟纹理资源正在使用的页面表纹理内存。

物理纹理内存(预估)(Physical Texture Memory (estimated))

预估此虚拟纹理资源正在使用的物理纹理内存。

大小

虚拟纹理的大小(以图块计)(Size of the virtual texture in tiles)

此RVT的大小(以图块计)。RVT的最终分辨率为此值乘以图块大小。目前最多支持4096个图块。此值应用于相关RVT中的最大宽度或高度。将选择较小轴的大小与RVT体积的宽高比匹配。

各虚拟纹理图块的大小(Size of each virtual texture tile)

此RVT使用的图块大小。在图块中渲染和储存虚拟纹理数据。使用小图块表示生成各图块的开销更低,但需生成更多图块。

各虚拟纹理图块的边界填充(Border padding for each virtual texture tile)

各图块使用的填充纹素数量。数量越多,对内存和性能的影响就越小。值为0时,由于双线性采样瑕疵,将将导致图块边缘出现着色接缝。值为2可能解决此问题,需更大的值才能启用启用各向异性采样。

布局

虚拟纹理内容(Virtual texture content)

选择要存储在此RVT中的材质属性:

  • 底色(Base Color):仅存储底色。启用压缩后将存储为BC1格式。

  • 底色、法线(Base Color, Normal):存储底色和法线。启用压缩后底色存储将被为BC1格式,法线将被存储为BC5格式。

  • 底色、法线、粗糙度、高光度(Base Color, Normal, Roughness, Specular):存储底色、法线、粗糙度和高光度。启用压缩后底色将被存储为BC1格式,其他属性将被打包为BC3格式。

此设置须与相关材质资源中的设置匹配,RVT才能正常运行。

启用BC纹理压缩(Enable BC texture compression)

启用RVT中存储数据的纹理压缩。此设置可将内存开销降低四到八倍,同时提高采样性能。建议仅在调试和质量比较时使用无压缩。

启用虚拟纹理(Enable virtual texture)

启用虚拟纹理。禁用后将不会渲染到虚拟纹理中,且采样返回零值。

启用渲染前清理(Enable clear before render)

设置此选项后,将渲染前清理图块。若已知纹理将固定被渲染完整覆盖,则建议禁用此选项以进行优化。

启用打包页面表(Enable packed page table)

设置此选项后,RVT将使用优化页面表设置。此操作可减少页面表的内存和更新开销,但会削弱与其他虚拟纹理共享物理内存的能力。

启用私有页面表(Enable private page table)

设置此选项后,RVT将单独分配页面表资源,而非在全局共享的页面表图谱中分配。此操作可减少页面表内存总体分配,但也将减少支持的虚拟纹理总数。

启用可扩展性(Enable Scalability)

设置此选项后,可通过r.VT.RVT.TileCountBias可扩展性设置调整RVT大小。

低mip(Low Mips)

要流送到虚拟纹理的低mip数(Number of low mips to stream to the virtual texture)

RVT中应流送而非运行时渲染的低mip数。将此选项设为非零值可提高性能,但需维持流送低mip虚拟纹理。

流送低mip纹理(Streaming low mip texture)

流送低mip时将使用的流送虚拟纹理。变更影响RVT的场景内容后,需重新构建此项。

要移除的低mip(Low Mips to Remove)

要从此RVT中移除的低mip数。低mip覆盖多数区域,因此渲染开销最高。移除后可提高性能。但若无低mip,会导致最终渲染中出现mip闪烁瑕疵。因此通常建议使用流送低mip。

运行时虚拟纹理采样材质节点设置

可在材质编辑器中的部分运行时虚拟纹理材质表达式中找到以下属性。

属性

描述

虚拟纹理(Virtual Texture)

要采样的运行时虚拟纹理资源。

虚拟纹理内容(Virtual Texture Content)

解译虚拟纹理内容的方式。注意:绑定的虚拟纹理资源应进行相同设置,以便保证正确采样。

启用打包页面表(Enable packed page table)

启用页面表通道打包。注意,绑定的虚拟纹理资源应具有相同的设置,这样采样才能正确运行。

纹理采样(Texture Sample)

mip值模式(Mip Value Mode)

定义运行时虚拟纹理表达式上mip值属性应用到虚拟纹理查找的方式。

  • 无(None)(使用计算的mip等级):结合自动各向异性过滤支持使用硬件计算的样本mip等级。

  • mip等级(MipLevel)(绝对值,0为完整分辨率):显式计算样本的mip等级。禁用各向异性过滤。

  • mip偏差(MipBias)(相对于计算的mip):偏移硬件计算的样本的mip等级。禁用各向异性过滤。

运行时虚拟纹理体积

使用 运行时虚拟纹理体积 指定 运行时虚拟纹理,在使用相同RVT资源的地形Actor和场景基元中的场景内生成RVT。

RVT_VolumeSettings.png

属性

说明

虚拟纹理

虚拟纹理(Virtual Texture)

要使用的运行时虚拟纹理资源。

Actor属性

使用以下场景基元和地形的设置和属性。

基元

场景中的Actor特定设置和属性。

RVT_ActorSettings.png

属性

说明

虚拟纹理

渲染至虚拟纹理(Render to Virtual Textures)

运行时虚拟纹理排列,选中Actor的网格体将渲染到其中。还需设置材质以输出到虚拟纹理。

虚拟纹理通道类型(Virtual Texture Pass Type)

基于选中虚拟纹理设置渲染至主通道:

  • 虚拟纹理(Virtual Texture):若无有效虚拟纹理目标,则不渲染资源。未启用虚拟纹理支持时,无论项目是否被删除,都将对此类项目使用此选项。

  • 虚拟纹理或主通道(Virtual Texture OR Main Pass):当且仅当无有效虚拟纹理时,才会在主通道中渲染资源。无论是否支持虚拟纹理,必须渲染的项目,使用此设置。

  • 虚拟纹理和主通道(Virtual Texture AND Main Pass):资源将被渲染至有效目标 主通道。项目需同时读取和写入虚拟纹理时,使用此设置。例如,地形设置需此选项。

虚拟纹理LOD偏差(Virtual Texture LOD Bias)

为渲染至运行时虚拟纹理而选择的细节级别(LOD)偏差。

虚拟纹理跳过Mip(Virtual Texture Skip Mips)

运行时虚拟纹理中要跳过渲染此基元的最低mip数。较大值可缩短运行时虚拟纹理中的有效绘制距离。剔除方法不考虑基元大小或虚拟纹理大小。

虚拟纹理最小覆盖(Virtual Texture Min Coverage)

设置从运行时虚拟纹理中剔除前的最小像素覆盖。较大值可缩短运行时虚拟纹理中的有效绘制距离。

地形

场景中的地形和地形样条Actor特定的设置和属性。

RVT_LandscapeSettings.png

属性

说明

虚拟纹理

渲染至虚拟纹理(Render to Virtual Textures)

运行时虚拟纹理排列,选中Actor的网格体将渲染到其中。还需设置材质以输出到虚拟纹理。

虚拟纹理通道类型(Virtual Texture Pass Type)

基于选中虚拟纹理设置渲染至主通道:

  • 虚拟纹理(Virtual Texture):若无有效虚拟纹理目标,则不渲染资源。未启用虚拟纹理支持时,无论项目是否被删除,都将对此类项目使用此选项。

  • 虚拟纹理或主通道(Virtual Texture OR Main Pass):当且仅当无有效虚拟纹理时,才会在主通道中渲染资源。无论是否支持虚拟纹理,必须渲染的项目,使用此设置。

  • 虚拟纹理和主通道(Virtual Texture AND Main Pass):资源将被渲染至有效目标 主通道。项目需同时读取和写入虚拟纹理时,使用此设置。例如,地形设置需此选项。

虚拟纹理LOD数量(Virtual Texture Num LODs)

将地形渲染至运行时虚拟纹理中所用的网格体级别数。仅当用于渲染虚拟纹理的材质需要内插顶点数据(如高度)时设置此值。较大值将使用曲面更细分的网格体,因而在渲染运行时虚拟纹理时开销较高。

虚拟纹理LOD偏差(Virtual Texture LOD Bias)

为渲染至运行时虚拟纹理而选择的细节级别(LOD)偏差。

地形样条

场景中地形样条Actor的特定设置和属性。

RVT_LandscapeSplineSettings.png

属性

描述

虚拟纹理

渲染至虚拟纹理(Render to Virtual Textures)

运行时虚拟纹理排列,选中Actor的网格体将渲染到其中。还需设置材质以输出到虚拟纹理。

虚拟纹理通道类型(Virtual Texture Pass Type)

基于选中虚拟纹理设置渲染至主通道:

  • 虚拟纹理(Virtual Texture):若无有效虚拟纹理目标,则不渲染资源。未启用虚拟纹理支持时,无论项目是否被删除,都将对此类项目使用此选项。

  • 虚拟纹理或主通道(Virtual Texture OR Main Pass):当且仅当无有效虚拟纹理时,才会在主通道中渲染资源。无论是否支持虚拟纹理,必须渲染的项目,使用此设置。

  • 虚拟纹理和主通道(Virtual Texture AND Main Pass):资源将被渲染至有效目标 主通道。项目需同时读取和写入虚拟纹理时,使用此设置。例如,地形设置需此选项。

虚拟纹理LOD数量(Virtual Texture Num LODs)

将地形渲染至运行时虚拟纹理中所用的网格体级别数。仅当用于渲染虚拟纹理的材质需要内插顶点数据(如高度)时设置此值。较大值将使用曲面更细分的网格体,因而在渲染运行时虚拟纹理时开销较高。

虚拟纹理LOD偏差(Virtual Texture LOD Bias)

为渲染至运行时虚拟纹理而选择的细节级别(LOD)偏差。

虚拟纹理跳过Mip(Virtual Texture Skip Mips)

RVT中跳过渲染此基元的较低Mip数。较大的值可缩短RVT中的有效绘制距离。此剔除方法不考虑基元大小或虚拟纹理大小。

主通道中最大绘制距离(Max Draw Distance in Main Pass)

如同时渲染 虚拟纹理和主通道,主通道中需要的剔除距离。值为0则无效果。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback