图形学常识 | RVT和图像处理

news/2024/11/2 20:16:43/

目录

Runtime virtual texture 实时虚拟纹理RVT

RVT应用1:

引擎中开启Virtual Texture support

vLevel = floor[F d(uv)/dx, d(uv)/dy) +Random(-0.25,0.25)] 

RVT的应用2

svt和rvt的区别

双线性过滤和三线性过滤的区别

UE的PixelNormalWS节点

数字图像处理

NPR图像色深

选择合适的色深

应用:做NPR的时候在PS里调贴图的颜色信息,可以把图像模式从8位改成更高位数以获得更丰富的灰度信息

颜色编码


Runtime virtual texture 实时虚拟纹理RVT

Why:虚拟纹理之所以被称为“虚拟”,是因为它并不像传统纹理那样完整地加载到显存中,而是按需加载的。虚拟纹理系统会将一张大纹理(例如用于超大场景的纹理地图)分割成小块(称为“页”),根据视角和需求动态加载和卸载这些小块,仅渲染当前视野中需要的部分。

RVT应用1:

虚拟纹理可以处理场景物体和地面的自然衔接

RVT的应用2:

贴着表面流动的物体/附着地表的草

例图源虚幻引擎官方第18期 | Virtual Texture(虚拟纹理)的理解和应用(Grass贴地工程文件)

VT

What:

虚拟纹理是一种资源管理技术,主要用于减少大规模纹理资源(例如超高分辨率纹理或大型开放世界场景纹理)对显存的占用。在传统纹理处理中,如果场景需要加载多个高分辨率纹理,可能会快速耗尽显存资源。而虚拟纹理可以分割纹理资源,只把当前帧可见范围内的纹理数据加载到显存里,而非整张纹理图。

这种技术通常使用“按需加载”机制:把纹理拆散成一个个tile(上图灰色部分)打散,放在物理内存中的不同位置(图右下角),并根据当前相机位置决定哪些页面需要加载,避免了显存的过度消耗。虚拟纹理系统在后台动态地管理这些页面,类似于一种纹理的“流式传输”,让开发者在不损失视觉质量的情况下使用超高分辨率纹理。

How:

引擎中开启Virtual Texture support

采样方式

(mip之间的过渡)

传统纹理采样是通过硬件支持的,是通过硬件处理两个mip之间的差值返回给mip

虚拟纹理采样只能通过shader的修改,把两个数据都采样出来,然后在shader里做lerp就需要两倍的物理内存采样开销。tricky的方法,在实际的采样数值上加二维的偏移(有一些帧采样mip2,有一些帧采样mip3),然后再通过TAA(时域抗锯齿)把mip2 mip3混合到一起,从而达到三线性效果。

vLevel = floor[F d(uv)/dx, d(uv)/dy) +Random(-0.25,0.25)] 

表达式的分解

  1. vLevel = floor[...]vLevel表示生成的层级值,这个值取整(向下取整),确保选择的是一个特定的整数层级。

  2. d(uv)/dx, d(uv)/dyd(uv)/dxd(uv)/dy是关于UV坐标的偏导数,表示当前片元(像素)在X和Y方向上UV坐标的变化率。在纹理采样中,这些偏导数通常用于估算片元在不同区域内的细节变化情况。较大的UV变化率通常意味着需要较低的MIP层级(即较模糊的纹理),而较小的变化率可能意味着需要更高的MIP层级(即更清晰的纹理)。

  3. Random(-0.25, 0.25)Random(-0.25, 0.25)是一个在-0.25到0.25之间的随机值,用于添加一定的随机噪声,避免纹理层级选择过于规则。这种噪声通常用于消除因采样而出现的视觉伪影(如莫尔条纹)。

  4. floor[...]:整个表达式的结果通过floor函数向下取整,以获得一个离散的层级值。这样可以用这个值来选择特定的MIP纹理层级。

各向异性

低分辨率Mip缺失 

 使用LOD避免在远处

svt和rvt的区别

  • SVT (Streaming Virtual Texturing):按需加载和显示大面积纹理,节省内存,提高渲染效率。

  • RVT (Runtime Virtual Texturing):将纹理在运行时动态烘焙到虚拟纹理,适合实时变化的效果,如动态光影。

虚幻引擎在实现虚拟纹理的分类

双线性过滤和三线性过滤的区别

  • 双线性过滤:对纹理的四个相邻像素进行插值,使纹理在放大或缩小时更平滑。

  • 三线性过滤:在双线性过滤基础上,增加不同 mip map 层级之间的插值,使纹理在切换 mip map 时更平滑。

UE的PixelNormalWS节点

如果将 PixelNormalWS 节点直接连接到 Base Color,它会将像素法线的世界空间方向数据直接输出为颜色。由于法线数据是一个向量(包含 x、y、z 分量),引擎会将这些分量映射为 RGB 颜色值。具体效果如下:

  1. 红色通道:表示法线的 X 分量(水平方向)。
  2. 绿色通道:表示法线的 Y 分量(垂直方向)。
  3. 蓝色通道:表示法线的 Z 分量(垂直深度方向)。

这种映射会呈现一种基于像素法线方向的彩色图案。图像会显示不同的颜色,视角变化时颜色也会相应变化,这是因为每个像素的法线方向在世界空间中不同。

数字图像处理

NPR图像色深

在图像处理中,8位、16位、32位模式指的是每个颜色通道使用的比特数,即图像的色深(bit depth)。色深影响图像的色彩范围和细节表现力:

  1. 8位图像:每个颜色通道使用 8 位(即 1 字节),因此单通道的色彩范围为 0-255(总共 256 种灰度)。如果是 RGB 图像,总共有 256×256×256=16,777,216256 \times 256 \times 256 = 16,777,216256×256×256=16,777,216 种颜色(约 1670 万色)。8位图像色彩范围适中,文件较小,适用于大部分网页和常见的应用场景。

  2. 16位图像:每个颜色通道使用 16 位(2 字节),色彩范围为 0-65535,总共支持约 281 万亿种颜色。16位图像可以记录更多细节与颜色过渡,适用于需要高质量色彩表现的图像处理、打印或专业摄影。

  3. 32位图像:每个颜色通道使用 32 位(4 字节),总色彩数极高(约为 3400 万亿亿种)。32 位图像通常用于高动态范围图像(HDR)和科学图像处理,能够保存极细腻的亮度和颜色信息,但文件体积非常大。

选择合适的色深

  • 8位:适合快速查看、网页和一般应用。
  • 16位:适合专业编辑、打印、精细的色彩调整。
  • 32位:适合HDR效果、高精度科学图像。

应用:做NPR的时候在PS里调贴图的颜色信息,可以把图像模式从8位改成更高位数以获得更丰富的灰度信息

颜色编码

YCoCg Base Color是一种颜色编码方式,在解码时将YCoCg转换回常见的RGB颜色空间,从而在游戏或实时渲染中更高效地应用纹理。

YCoCg色彩空间将图像的颜色信息分解为亮度(Y)和两种色差分量(Co红和绿色之间的差异和Cg蓝和绿色之间的差异),可以实现更高的压缩效率,同时保留较好的视觉质量。


[中文直播]第18期 | Virtual Texture(虚拟纹理)的理解和应用 | Epic 李文磊_哔哩哔哩_bilibili

【UE5教程】虚拟纹理使用技巧【附RVT材质函数下载】_哔哩哔哩_bilibili 

Unreal Engine 5 Landscape Material - UE5 Tutorial 

[UnrealCircle深圳]深入虚拟纹理 | Epic 李杨珂_哔哩哔哩_bilibili 


http://www.ppmy.cn/news/1543963.html

相关文章

【解决方案】Mac上禁止chrome自动更新的三种方法

【目的需求】 新版chrome直接用打印机打印页面时,打印任务总是响一下就消失了,使用safari浏览器无此问题,使用早期版本chrome也没有这一问题。因此想固定chrome版本,不要自动更新。尝试了网上的多种方法均失败。 【解决方案】 …

2-137 基于matlab的sigmoid函数的变步长自适应语音信号增强

基于matlab的sigmoid函数的变步长自适应语音信号增强,与传统LMS相对比,比较不同的变步长函数去噪效果,并基于较好的去噪算法分析不同变步长中参数变化对降噪的影响。程序已调通,可直接运行。 下载源程序请点链接:2-13…

TikTok账号优化与批量管理:住宅IP与内容策略的全面指南

随着TikTok的迅猛发展,许多内容创作者和营销者开始关注如何有效地养号,以提升账号的权重和影响力。通过合理运用住宅IP和精心策划的内容策略,能够为后期的内容推广与变现奠定坚实的基础。本文将深入探讨在TikTok平台上批量养号的实用技巧和策…

netty之实现一个redis的客户端

写在前面 本文看下如何使用redis来实现一个类似于redis官方提供的redis-cli.exe的客户端工具。 1:用到的模块 主要需要用到netty针对redis的编解码模块,可以解析redis的协议,从而可以实现和redis交互的功能。 2:正文 首先来…

【线下培训】龙信受邀参加开封市公安局举办的电子数据取证培训班

文章关键词:电子数据取证、手机取证、云取证、国产化取证 为了提升开封市公安机关在互联网电子数据取证分析方面的专业能力,龙信为开封市公安机关量身打造了一场高质量的电子数据取证分析技能培训课程。 本次培训课程不仅涵盖了电子数据取证的基础理论、…

操作系统-第五章-(5.1)外部存储器管理

这个是与第四章顺接着学习比较好,故第五章先学这个。 第四章文件管理的题目经常和磁盘一起综合考察。 1.磁盘的结构 简单看看即可,不是重点,计组外部存储器也是学过。 1.1磁盘、磁道、扇区 磁盘的盘面被划分成一个个磁道。 这些磁性物质…

华为机试HJ18 识别有效的IP地址和掩码并进行分类统计

首先看一下题 描述 请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。 所有的IP地址划分为 A,B,C,D,E五类 A类地址从1.0.0.0到126.255.255.255; B类地址从128.0.0.0到191.255.255.255; C类地址从192.0.…

windows 驱动实例分析系列: NDIS 6.0的Filter 驱动改造(二)

缓冲区池 Filter驱动要发送数据,除了实现这两个回调之外,还需要分配一个NET_BUFFER_LIST池,用于从池中分配NET_BUFFER_LIST结构,注意内核代码必须仅从Pool中分配NET_BUFFER_LIST以及NET_BUFFER等缓冲区结构。 分配 一般会使用下…