图形学中的贴图采样、走样与反走样等

信号采样与采样定理 【自控笔记】6.1信号采样与采样定理 一、离散系统概述 1、离散系统定义:系统中有一处或几处信号是脉冲串或数码的系统。 2、离散系统的分类:离散系统可以分为采样系统和数字系统两大类。采样系统具有时间离散,数值连续的特点;而数字系统具有时间离散,数值量化的特点。 3、离散系统的研究方法:用Z变换建立离散系统的数学模型,克服了使用拉氏变换建立传函产生超越函数的障碍。 二、采样过程及数学描述 把连续信号变成离散信号的过程,叫做采样过程。 在理想采样中,采样过程可以看做一个单位脉冲序列δT(t)δ_T(t)δT​( 阅读详情

计算机图形学中不可避免的会涉及到图像分析与处理的相关知识,前些时间也重温了下常用到的采样、重建以及纹理贴图等内容,并对其中的走样与反走样有了更多的认识,这里小结一下。

1. 基本问题

信号的采样与重建过程中首先面临着两个基本的问题:
  • 给定一个连续的信号g(x)以及它的离散采样信号gs(x),能否通过gs(x)来完整的描述g(x) 的信息;
  • 如果可以,如何通过gs(x)来重建出原始信号g(x)。
这些通过对信息进行频域的分析即可得到相应的结论。

2. 采样

将一处于空间域(或时域)内的信号向频域进行转换,可以使用傅立叶变换(Fourier Transformation)来实现。给定空间域信号为g(x),其对应的频域信号为G(f),则其对应的傅立叶变换关系为:


其中的x 表示相应的空间位置,f 表示对应的频率。原始信号g(x)对应的频域空间中的函数G(f)(可能)如下图所示:

                                           频域G(f)

图中的横轴f 表示相应的频率,越往两端对应的频率越大。其中可以看出,G(f) 的有效值主要限定于频率|fmax|之内,其余频率位置上均为0,对于这样的情况可以称G(f)是带限(bandlimited)于fmax 的。这是信号采样与重建中一个较为重要的属性。

对原始信号g(x)进行采样得到离散采样信号gs(x),采样的过程主要是通过一个基于脉冲函数的脉冲采样器来实现,其表述如下所示:


其中的Ts就是采样周期。在s(x) 下就可以得到原始信号与采样信号之间的关系:


为了更方便的观察gs(x)的一些属性,可以将其转换到频域空间内进行分析,这里可以借助傅立叶变换中的几个重要属性:

  • 函数在空间域(或时域)内的乘积对应于它们在频域空间内的卷积:                                          
  • 累积脉冲函数的傅立叶变换的特殊形式(证明可见这里):

利用这些属性就可以推导gs(x)的频域函数Gs(f) 如下:


从推导结果的表达式中可以看出:Gs(f)中包含了完整的原始信号G(f) 的信息;Gs(f)的值相对于原始G(f) 有作相应比例的缩放;另外,其以fs 为周期对G(f) 进行了全频空间上的叠加。最终,Gs(f) 对应的频域空间函数波形如下图所示:

3. 重建

通过上述对Gs(f) 的频域分析后发现,可以用另外一种形式来表述G(f)与Gs(f) 之间的关系:


其中的Ghigh(f) 表示在|fmax|之外的较高频率上对G(f)进行叠加的部分。如此一来,通过使用某种手段去除其中的超过频率|fmax|的叠加部分之后就可以从Gs(f)实现对原始信号的还原,即重建。

但是在某些情况下,并不能从Gs(f)中完整地分离出G(f)与Ghigh(f)部分,这样的话就无法滤去其中的高频部分得到原始信号,因而可以实现重建的信号采样需要满足下述条件才可:

  • 原始信号必须是带限的。通过Gs(f)的频域函数图可以看出,如果原始信号不是带限的(即G(f)向两端无限扩展),则必然会出现G(f)和\Ghigh(f)两个波谱之间的相互交叠;这样就无法完整还原出原始信号。
  • 采样频率必须是原始信号最大频率fmax 的2倍(Nyquist rate)。同样通过Gs(f) 的频域函数图可以看出,如果采样频率fs 过低,也会造成两侧的Ghigh(f)与G(f)的交叠,进而导致无法还原。

3.1 理想频域滤波函数

如果有了满足重建条件的采样信号,也即上述分离表达式可行时,如何从中分离出目标G(f)即成为一个比较简单的问题。只需要根据\(f_{max}\)的分布,构造一个频域中形如下式的函数,并将其施加于Gs(f) 即可:


这里的\(H(f)\)被称理想低通滤波器(Ideal Low-pass Filter),因为它可以完整地从Gs(f) 中分离出G(f)部分而不会带来噪声或信号的损失。将H(f) 施加到Gs(f) 上的情形如下图所示(表现为频域空间中两个函数的乘积):



                                                    频域中通过向Gs(f) 施加H(f) 来滤出其中的G(f) 部分

3.2 理想空间域滤波函数

将上述频域中的理想低通滤波函数向空间域进行傅立叶逆变换即可得到对应的空间域理想滤波函数,该函数也被称为sinc函数,其形式如下:


空间域中的sinc函数如下图所示:


                                                Sinc函数

利用滤波函数进行频域和空间域的重建操作如下所示:


从上述关于g(x) 的表达式中可以看出,使用sinc函数来重建g(x) 时需要计算当前采样点周围无限多个相邻采样点的累积,这种计算在实际应用中当然是不可行的。因而这里的理想滤波函数sinc就不能被直接应用,这于是就引出了非理想滤波函数。

3.3 非理想滤波函数下的重建

非理想的滤波函数并不能像sinc函数那样完全滤去Gs(f) 中的高频Ghigh(f) 部分,而是一定程度上有所保留;同时,也不能完全保留其中的目标低频G(f) 部分,而是一定程度上有所损失。但整体上,非理想的滤波函数可以以一种可行的方案来实现对原始信号在可接受程度上的重建。频域上的一个非理想滤波函可能如下图所示:


其中的Hr(f)即为非理想的频域滤波函数:其在|fmax|内部的部分并不能完全地还原出G(f),而是在接近|fmax|处有所损失(曲线向下导致);同时,在到达|fmax|后并没有截止而是继续向外扩展,这样就在结果中引入了频率超过|fmax|的高频部分。

在空间域上,使用非理想的滤波函数来实现重建则是通过在目标点周围施加一个一定尺寸(维度不一定)的Kernel并累积其中的有限采样点(对比sinc中的无限)来完成。其形式一般如下所示:


上式就表示在目标点x 周围通过K个采样点、在重建核心h(x)下(具现为权重)实现对当前点的信号估值。

4. 重建Kernel

由上述对于空间域内重建函数的分析可以看出,在经由采样点对信号进行重建的过程中,重建核心的设计至关重要。在实践中经常使用的重建核心主要有以下几种:

4.1 Box Filter

该滤波器的函数形式如下所述:


这是最简单的一种Filter,其对应的空间域及频域函数波形图如下:


                                                         Box Filter

将其应用到重建函数中可以看出:其对于目标点的估值只会使用若干采样点中的一个,而并没有采用多个采样点之间的插值,因而重建效果较差,最终会得到如下图所示的阶梯状波形(称之为锯齿边缘或Jagged Edges)。


                                Box滤波器重建效果

4.2 Triangle Filter

该滤波器的函数形式如下所述:


其也被称为Tent Filter,其对应的空间域及频域函数波形图如下:


                                                      Triangle Filter

相对来说,其重建效果会比Box Filter要好(如下图所示),但其中的锯齿边缘依然明显,这主要是由于该Filter对采样点之间的插值力度仍然不够所致。对应的H(f)对超过fmax的高频部分抑制力度不够所致。


                           Triangle滤波器重建效果

4.3 Cubic Convolution

该滤波器是以一种三阶多项式的方法来对sinc函数进行近似,效果蛮不错,而且还可以暴露出参数以供效果调节。其形式如下:



                                                        Cubic Filter


                             Cubic滤波器重建效果

从图中可以看出,相对于前两种滤波器,使用Cubic滤波器可以明显地减少重建信号中的锯齿规模与数量,这主要是由于其对采样点之间采用了更高阶的插值计算,因而效果相对更好。

4.4 Windowed Sinc Function

这里回过头来再看理想的空间域sinc滤波函数,其最重要的应用障碍就是其中对无限多相邻采样点的累积,反映在空间域sinc函数上则是曲线向横轴两侧的无限延伸;因而,如果可以去掉其在空间域中向两侧的延伸部分(相当于对sinc函数进行滤波,过滤其中空间位置较大的部分),则其近似的sinc函数就变得应用可行。该方法与频域空间中的滤波(施加H(f) 的影响)类似,只不过这里是在空间域上对sinc函数施加一个窗口过滤操作,最终只使用窗口内(含有限个采样点)的修正sinc函数。

常见的几种空间域sinc窗口函数如下:

4.4.1 Hann Hamming

该窗口函数形式如下所述:


其中的N用来控制窗口中采样点的数量,a 用来控制窗口函数曲线的外形。对应的函数形状如下:

 
                                                                         Hann&Hamming窗口函数
从可以看出,最终得到的H(f)函数质量比前述几种非sinc窗口类型的要更好。
4.4.2 Blackman

该窗口函数形式如下所述:


其中的N同样为窗口中的采样点数量,只不过这里相对于H&H少了一个可控的参数。对应的函数形状如下:

  
                                                                          Blackman窗口函数
4.4.3 Lanczos

该窗口函数形式如下所述:


其中的n用来控制窗口过滤域的范围。对应的函数形状如下(其中的n = 2):

  
                                                                          Lanczos窗口函数

在应用中,将这些窗口函数施加于sinc函数上,即可得到近似于sinc函数效果的窗口滤波函数,进而实现更好的图像信号重建。

5. 走样与反走样

5.1 走样原因

在前面介绍了使用采样信号来完全重建原始信号所需的两个基本条件:1. 原始信号是带限的;2. 采样频率要满足Nyquist频率。如果这两个条件中有任一条不被满足则即便是使用理想的低通 滤波器也不可能完全重建出原始信号,这种情况下的现象就称为走样(Aliasing)。

对于图形学中的图像渲染而言,Nyquist率是由可像素化显示的最高频率决定,也即为2 pixels / cycle(两个像素间有一个非像素间隔),对应的频率则为0.5,因而fmax=1,这也就对应:无走样渲染时的采样最低频率不应该小于1。一个明显的例子就是后处理中常见的案例:将一个N X N大小的缓冲区纹理贴到一个屏幕空间中N X N的Quad上渲染时并不会有走样,因为其采样频率满足Nyquist要求。

另外,也要区分走样与锯齿之间的差异,两者在图形学中易被混淆(这主要是由于图像渲染时的走样也常常具化为锯齿现象)。锯齿主要是由于重建Kernel不够好,进而使得在重建信号中出现了插值不平滑的情况,但是如果在其采样信号上施加一个理想的重建Kernel时则还是可以完全地还原出原始信号(比如纹理贴图中的Magnification);反之,走样则是由于不满足信号重建的两个基本条件,这样即使在其采样信号上使用理想的重建Kernel也不能够重建出原始信号。通过其中的差异可以看出:锯齿现象可以通过一些Blur算法来加以消除,但走样却不行。

5.2 反走样方法

当采样不满足上述重建的基本条件时就会产生走样,而针对走样产生的原因,通过各种方法与途径来消除走样的产生即是反走样。通常来说,一般的图像信号均是带限的,但是其却可能限制于一个较大的fmax,进而导致第二个条件难以达到,因而两个条件是相关的。根据走样的来源,就可以有两种方法来实现反走样:

  • 在原始信号的带限上做处理。该方法主要是在采样前对信号进行一些预滤波(Prefiltering)处理来修改原始信号的带限,比如同样使用一个低通滤波器来将原始信号的带限降到一个更低的范围,这样的话就可以使重建的第二个条件更容易满足。
  • 在采样频率上做处理。该方法就是直接增大采样的频率来使其尽可能地满足第二个重建条件。

其中第二种方法虽然比较直接,但其应用场合却有所限制,比如向一个屏幕固定像素数量的区域渲染图像时无法增大其对应的采样频率,这时就只能使用Prefiltering的方法来实现反走样。这里需要注意Prefiltering的操作是在采样之前进行的。

5.3 Prefiltering方法的几个应用

5.3.1 Edge Antialiasing

基于Prefiltering方法的边缘反走样主要是利用Area sampling的手段来实现。该方法将目标输出像素与原始图像信号中的一个子区域对应,可以称此区域为preimage。然后用一个低通滤波器来对该子区域进行滤波,如下所示:


这样就可以整体降低图像数据源的带限,进而达到反走样的目的。基于此方法的应用有很多,比如像Supersampling, Multisampling等。首先,经过GPU硬件管线渲染后得到一个比屏幕分辨率大的颜色缓冲区,然后将目标输出点与颜色缓冲区中的一个子区域对应(子区域中的像素分布可能并不是规则的),如下图所示。然后对该子区域中的像素做低通滤波操作来降低缓冲区图像信号的带限,之后将结果输出到屏幕像素中即可实现反走样。

5.3.2 Texture Antialiasing

纹理贴图中的走样主要产生在Minification时(如前所述的像素采样频率不足),针对这种走样最常用的操作也是Prefiltering方法,典型应用就是Mipmap。Mipmap方法是在纹理贴图生成时,计算出个几不同Level的子贴图,比如第0级对应N X N大小,第1级对应N/2 X N/2大小,等等;当前级中的像素由上一级相关位置上的四个像素来决定。这样,每个Level的子贴图也就对应着不同的带限,在实际使用时通过Level选择算法定位到合适的贴图级别,使得贴图渲染时的采样频率满足Nyquist条件,进而达到反走样的目的。

                                        Mipmap

使用Mipmap需要预先生成原始贴图在若干级别下的子贴图,因而会带来一定的额外空间占用量(大约33%);同时,在使用时需要定位到合适的贴图级别,这个计算过程也会比较复杂(也值得好好研究,不过还好,可以有API或硬件帮助完成)。整体上来说,Mipmap方法以一种较经济的Prefiltering手段解决了纹理贴图中的走样现象,且效果较好。


图形学入门学习-GAMES101课程(1) 第一次课:图形学概论 图形学不是openGL,图形学包括了光栅化rasteration、曲线与曲面curves and meshes、光线追踪 ray tracing、动画/仿真animation/simulation. 第二次课:线性代数基础知识 向量点乘、叉乘,矩阵相乘 第三次课:各种变换 Transform 均匀缩放 uniform scale、非均匀缩放 non-uniform scale、反射/对称 reflection、旋转 rotate、切变 shear 这些变换都可以表示成下面的式子 平移 阅读详情

相关推荐

投第一篇SCIE英文期刊(详细步骤)

一个投稿SCIE英文期刊的过程

weixin_48849679的博客 1万+

信号的采样

现实生活中,我们得到的信号往往是模拟信号,是连续的时间信号,储存它们需要占用很多的空间,处理它们也不灵活,方便。相比于连续时间信号,离散的时间信号(或数字信号)的处理更加灵活,方便。因此,我们可以在该信号中等间隔的取样瞬时值(样本值),这些样本值能够包含该连续时间信号的全部信息,利用这些样本值就可以恢复原信号。

通信系统、数字信号处理、FPGA 2781

智能车竞赛卡丁快跑组:自动驾驶与人车交互技术实战解析

本文深入解析了智能车竞赛卡丁快跑组的技术核心,重点探讨了自动驾驶与人车交互两大模块的实战方案。文章详细拆解了从环境感知、路径规划到语音识别、命令执行的完整流程,并分享了基于单片机平台的调试心法与赛场经验,为参赛者提供了一套从零开始、分步攻坚的系统性备赛指南。

f0g1h2的博客 1176

Unity Shader:贴图采样器Sampler的使用

Unity Shader采样器的使用介绍Using sampler states 合并的贴图和采样器(Coupled textures and samplers) 独立的贴图和采样器(Separate textures and samplers) 组合的采样器设置(Inline sampler states) 以及效果测试

番茄猿的博客 6722

量子密钥分发(QKD)原理、工程实现与实战部署全解析

密钥分发是信息安全的核心基础,它解决了通信双方如何安全共享秘密密钥的难题。传统方法依赖于数学问题的计算复杂性,而量子密钥分发(QKD)则基于量子力学原理,为密钥分发提供了信息论安全的物理保障。其核心价值在于,利用量子不可克隆定理和测量坍缩原理,使得任何窃听行为都会被合法通信方检测到,从而在理论上实现无条件安全的密钥协商。这项技术特别适用于对安全性要求极高的场景,如金融数据同步、政务专网和电力系统保护。本文聚焦于量子保密通信,深入剖析了以BB84协议为代表的QKD工作原理,并详细拆解了包含单光子探测、偏振编码

weixin_29324401的博客 344

Notepad++ XML Tools插件:手把手教你格式化混乱XML与一键语法检查(保姆级教程)

本文详细介绍了如何使用Notepad++的XML Tools插件格式化混乱的XML文件并进行一键语法检查。通过插件安装、格式化实战和语法排错的完整流程,帮助开发者高效处理XML数据,提升API通信和数据存储的工作效率。特别适合需要快速验证和整理XML配置的开发人员。

weixin_42619742的博客 322

计算机图形学(六)-光栅化、采样、走样与反走样、滤波与卷积

光栅化1 什么是光栅化(Rasterization)2 单个三角形光栅化3 采样(sampling) 1 什么是光栅化(Rasterization) 屏幕空间 如上图,将电脑屏幕理解为一个二维坐标,屏幕上左下角为坐标原点,水平向右为x轴方向,垂直向上为y轴方向 像素(Pixel) 在屏幕上排列的最小单位,上图中每一个方块理解为一个像素,假设屏幕大小为w×h,那么在屏幕中一共有w×h个像素,这些像素像二维数组一样在屏幕中排列,左下角像素的坐标是(0,0),右上角像素的坐标为(w-1,h-1)。每个方块的中点

点燃火柴的博客 6798

Memory SystemsCache, DRAM, Disk翻译学习DRAM部分(二)

DRAM 的发展史

qq_33473931的博客 995

关于信号采样

自己学习图像,视频,但是发现对最基本的信号采样还未理解透,深表惭愧,所以打算从最最基础学习一下通信相关理论,打好基础,才能更好的进行后面的研究学习。首先理解何为信号采样?简单说就是对于连续的信号x(t)(即模拟信号),按照一定时间间隔Δt 在模拟信号x(t)上采取其瞬时值。即通过采样脉冲和模拟信号相乘来实现。过程如下简图。对于模拟信号采样,首先要确定其采样间隔,即确定Δt的大小,这需要考虑多重因素...

changengchu3961的博客 8147

彩票预测的可能性与算法分析

彩票作为一种以随机数为基础的赌博形式,吸引了大量希望一夜暴富的参与者。尽管许多人希望通过某种方式预测彩票结果,以增加中奖几率,但彩票预测的可能性依然是一个充满争议和误解的话题。本文将探讨彩票是否能够预测的理论依据,分析可能的预测算法,并解释这些算法为何在实际应用中难以奏效。

m0_38012434的博客 2万+

基于R-CNN深度学习的常见手势识别系统:数据集、模型和UI界面的完整实现

卷积神经网络(CNN):用于从图像中提取特征。区域提议网络(RPN):用于生成可能包含手势的候选区域。:将候选区域调整为固定大小,并进行进一步的分类和回归。接下来,我们需要加载一个预训练的Faster R-CNN模型,并对其进行微调。我们将使用# 加载预训练的Faster R-CNN模型# 获取分类器的输入特征数# 替换分类器头部,设置为我们数据集的类别数(假设有5类手势)

YOLO 997

图形学中的贴图采样、走样与反走样等,图形学走样

文章转自:http://www.bkjia.com/ASPjc/912364.html 版权归原作者!计算机图形学中不可避免的会涉及到图像分析与处理的相关知识,前些时间也重温了下常用到的采样、重建以及纹理贴图等内容,并对其中的走样与反走样有了更多的认识,这里小结一下。1. 基本问题信号的采样与重建过程中首先面临着两个基本的问题:给定一个连续的信号g(x)以及它的离散采样信号gs(x),能否通过gs

图形跟班 2916

智能驾驶域控制器的“终极大考”:解析EOL测试的核心价值与技术实践

在智能驾驶技术高速发展的今天,域控制器(Domain Controller)作为车辆“大脑”的核心部件,承担着传感器数据处理、决策规划、执行控制等关键任务。然而,这个集成了数十个芯片、运行着数百万行代码的复杂系统,如何确保其出厂前的功能安全与性能稳定?答案就藏在被称为“生产线最后一道防线”的EOL(End of Line)测试中。

汽车电子软件领域知识分享 701

图形学中的贴图採样、走样与反走样等

计算机图形学中不可避免的会涉及到图像分析与处理的相关知识,前些时间也重温了下经常使用到的採样、重建以及纹理贴图等内容,并对当中的走样与反走样有了很多其它的认识,这里小结一下。 1. 基本问题 信号的採样与重建过程中首先面临着两个主要的问题: 给定一个连续的信号g(x)以及它的离散採样信号gs(x),是否能通过gs(x)来完整的描写叙述g(x) 的信息;假设能够,怎样通...

weixin_34319374的博客 280

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

GPU Gems1 - 11 阴影贴图反走样

这章介绍了如何通过邻近百分比过滤方法(Percentage-Closer Filtering , PCF)有效减少阴影贴图的反走样,并描述了如何实现一个简化版本,并对PCF方法进行了一定改进。关于阴影贴图和PCF技术的一些链接 https://pubweb.eng.utah.edu/~cs5610/handouts/reeves87.pdf https://gameinstitute.qq.c...

yinfourever的专栏 378

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

图形学常用概念汇总

图形学是研究如何用计算机生成和显示图像的学科。渲染时把3d场景转换为2d图像的过程通过计算几何、材质、光照等信息,生成最终呈现在屏幕上的像素。

m0_73903439的博客 872

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

计算机图形学:纹理

第八章:纹理(Texture) 1 程序贴图(Procedure Texture) 由计算机算法生成的贴图,而非存储的数据,有低存储的优点。主要用于木材,大理石,花岗岩,金属,石头等材质。程序贴图纹理通常用于离线渲染应用程序,而图像纹理在实时渲染中更为常见,毕竟快。 2 纹理合成(Texture Synthesis) 2.1 Pixel-based texture synthesis Synt...

zhanghuanzj的博客 2915

计算机图形学五反走样的方法(详解)

计算机图形学抗锯齿

weixin_44683202的博客 1986

计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文

计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文 版权所有使用者请联系我 刘创QQ:903188593 8 纹理 在三角形光栅化时,也有纹理[11]的线性插值[12]。为模型添加纹理效果,会极大提高模型的真实性。 8.1 BMP纹理资源简介 “BMP图片,是位图Bitmap的简称,它是Windows下,任何格式的图片文件(包括视频播放)都要

LC_若水微韧的博客 984

图形学基础 | 阴影技术 Shadow Map

实时阴影技术总结 实时渲染中的软阴影技术 Shadow Map 原理和改进 以上几个参考文章写的非常好. 我只是做了最第一篇的简单摘录. 作为我入门的学习. 阴影的实现 在光线追踪算法中, 实现阴影(shadow ray)更加符合直觉. 在光栅化算法中,基于ShadowMap的实现更加常见. 阴影的"软硬" 理想中的点光源会造成只有本影区的硬阴影(hard shadows) 但是现实中的光源毕...

【黑键】 3715

三角光栅化

三角光栅化

大草的博客 1438
上一篇: Deferred Shading in Flash with Stage3D
下一篇: Web3D Porting - Emscripten VS FlasCC
BugRunner
博客等级 码龄17年 791粉丝 77原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值