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

目录

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.rhkb.cn/news/462286.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作符详解

操作符也被叫做&#xff1a;运算符。 操作符的分类 算术操作符&#xff1a; 、- 、* 、/ 、%赋值操作符&#xff1a; 、 、 - 、 * 、 / 、% 、<< 、>> 、& 、| 、^移位操作符&#xff1a;<< >>位操作符&#xff1a;& | ^ ~单目操作符&#…

7、lvm逻辑卷和磁盘配额

lvm逻辑卷概念 lvm基本概念 Lvm 是 Logical Volume Manager 的简称&#xff1a;逻辑卷管理Linux系统下管理硬盘分区的一种机制。lvm适合于管理大存储设备。用户可以动态的对硬盘进行扩容&#xff08;缩容&#xff09;。我们只关心使用层面&#xff0c;对于物理底层&#xff0…

WebGPU跨平台应用开发

对于 Web 开发人员来说&#xff0c;WebGPU 是一个 Web 图形 API&#xff0c;可提供对 GPU 的统一和快速访问。WebGPU 公开了现代硬件功能&#xff0c;并允许在 GPU 上进行渲染和计算操作&#xff0c;类似于 Direct3D 12、Metal 和 Vulkan。 虽然这是真的&#xff0c;但这个故事…

Java项目实战II基于Java+Spring Boot+MySQL的智能推荐的卫生健康系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 基于Java、…

DDR Study - PIM Technical

参考来源&#xff1a;In-memory processing - Wikipedia&#xff0c;What is processing in memory (PIM) and how does it work? (techtarget.com)&#xff0c;《Processing-in-memory: A workload-driven perspective》 LPDDR Initial → LPDDR Write Leveling and DQ Train…

企业如何通过架构蓝图实现数字化转型

数字化转型的关键——架构蓝图的力量 在当今的商业世界&#xff0c;数字化转型已经不再是一个选择&#xff0c;而是企业生存与发展不可回避的战略行动。企业希望通过数字化提高效率、增强灵活性&#xff0c;并为客户提供更好的体验。然而&#xff0c;数字化转型不仅仅涉及技术…

NVR监测软件/设备EasyNVR多品牌NVR管理工具/设备对城市安全有哪些具体益处?

在智慧城市的建设中&#xff0c;各种先进的技术系统正发挥着越来越重要的作用。其中&#xff0c;NVR监测软件/设备EasyNVR作为一种高效的视频边缘计算网关&#xff0c;不仅能够实现视频数据的采集、编码和存储&#xff0c;还能与其他智慧城市系统进行深度集成&#xff0c;共同推…

20241102解决荣品PRO-RK3566开发板刷Rockchip原厂的Buildroot使用荣品的DTS出现

20241102解决荣品PRO-RK3566开发板刷Rockchip原厂的Buildroot使用荣品的DTS出现fiq_debugger问题 2024/11/2 9:46 缘起&#xff1a;给荣品PRO-RK3566开发板刷Rockchip原厂的Buildroot时&#xff0c;DEBUG波特率是1.5Mbps。 但是启动到FIQ阶段&#xff0c;在你使用荣品的DTS的时…

ctfshow文件包含web78~81

目录 web78 方法一&#xff1a;filter伪协议 方法二&#xff1a;input协议 方法三&#xff1a;data协议 web79 方法一:input协议 方法二&#xff1a;data协议 web80 方法一&#xff1a;input协议 方法二&#xff1a;日志包含getshell web81 web78 if(isset($_GET[file]…

电能表预付费系统-标准传输规范(STS)(30)

6.5.3.2 CONTROLBlock construction The 1 6 digit CONTROLBlock is constructed from the data elements in the APDU as defined in Table 36 and Table 37.The most significant digit is in position 1 5 and the least significant digit in position 0. APDU中的数据元素…

基于YOLO11/v10/v8/v5深度学习的维修工具检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

人工智能基础-opencv-图像处理篇

一.图像预处理 图像翻转 cv2.flip 是 OpenCV 库中的一个函数&#xff0c;用于翻转图像。翻转可以是水平翻转、垂直翻转或同时水平和垂直翻转。这个函数接受两个参数&#xff1a;要翻转的图像和一个指定翻转类型的标志。 img cv2.imread(../images/car2.png) #翻转 0&#xf…

Hive学习笔记

1 Hive基本概念 1.1 Hive定义 Hive&#xff1a;由 Facebook 开源用于解决海量结构化日志的数据统计工具。 Hive 是基于 Hadoop 的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张表&#xff0c;并 提供类 SQL 查询功能。 利用MapReduce去查询数据文件中的某些内…

用图说明 CPU、MCU、MPU、SoC 的区别

CPU CPU 负责执行构成计算机程序的指令&#xff0c;执行这些指令所指定的算术、逻辑、控制和输入/输出&#xff08;I/O&#xff09;操作。 MCU (microcontroller unit) 不同的 MCU 架构如下&#xff0c;注意这里的 MPU 表示 memory protection unit MPU (microprocessor un…

HTML 语法规范——代码注释、缩进与格式、标签与属性、字符编码等

文章目录 一、代码注释1.1 使用注释的主要目的1.2 使用建议二、标签的使用2.1 开始标签和结束标签2.2 自闭合标签2.3 标签的嵌套2.4 标签的有效性三、属性四、缩进与格式4.1 一致的缩进4.2 元素单独占用一行4.3 嵌套元素的缩进4.4 避免冗长的行五、字符编码六、小结在开发 HTML…

虚拟现实与增强现实:重塑娱乐和教育的边界!

内容概要 在这个瞬息万变的时代&#xff0c;虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;正如两位魔法师&#xff0c;腾云驾雾间掀起了一场教育与娱乐的革命。虚拟现实带我们飞跃平凡&#xff0c;进入一个充满奇迹的数字宇宙&#xff0c;仿佛我们…

中仕公考:上海市25年公务员考试今日报名

2025年上海市公务员考试于今日开始报名 考试报名采取网络报名方式进行&#xff0c;报考者可在2024年11月2日0:00至11月8日12:00期间登录专题网站进行报名。 年龄在18周岁以上&#xff0c;35周岁以下(1988年11月至2006年11月期间出生)&#xff0c;应届硕士、博士研究生报考的&…

Diving into the STM32 HAL-----HAL_GPIO

1、怎么看待外设&#xff1a; 从总线连接的角度看&#xff0c;外设和Core、DMA通过总线交换数据&#xff0c;正所谓要想富先修路。要注意&#xff0c;这些总线中的每一个都连接到不同的时钟源&#xff0c;这些时钟源决定了连接到该总线的外设操作的最大速度。 从内存分配的角度…

【表格解决问题】EXCEL行数过多,WPS如何按逐行分别打印多个纸张中

1 问题描述 如图&#xff1a;我的表格行数太多了。打印在一张纸上有点不太好看 2 解决方式 Step01&#xff1a;先选中你需要打印的部分&#xff0c;找到【页面】->【打印区域】->【设置打印区域】 Step02&#xff1a;先选中一行&#xff0c;找到【插入分页符】 Step0…

提升安全上网体验:Windows 11 启用 DOH(阿里公共DNS)

文章目录 阿里公共 DNS 介绍免费开通云解析 DNS 服务Windows 编辑 DNS 设置配置 IPv4配置 IPv6 路由器配置 DNS 阿里公共 DNS 介绍 https://alidns.com/ 免费开通云解析 DNS 服务 https://dnsnext.console.aliyun.com/pubDNS 开通服务后&#xff0c;获取 DOH 模板&#xff0…