计算机图形学 | 实验十:几何纹理(法线贴图)

法线贴图及其用法详解 法线贴图一般用于计算光照。可以表现更多的细节。 法线贴图:一般根据高多边形模型或者高度图生成。 一、法线详解 法线图的存储一般分为在切线空间和模型空间。 切线空间 模型空间 法线贴图存的是:模型顶点在切线空间下的法线方向。也就是说Z轴是顶点法线方向。x是顶点的切线方向,Y是副切线方向。这里可... 阅读详情

华中科技大学《计算机图形学》课程

MOOC地址:计算机图形学(HUST)

计算机图形学 | 实验十:几何纹理(法线贴图)

在正式搭建环境之前,我们先来介绍一下读完下面的部分你会了解些什么:

  • 了解什么是法线贴图
  • 为什么需要切线空间
  • 如何加载和使用法线贴图
  • 如何引入切线空间并在着色器中使用

接下来,我们来介绍一下绘制具有法线贴图的立方体的效果。

绘制效果如下(左图为无切线空间的法线贴图,右图为有切线空间的法线贴图):

在这里插入图片描述

什么是法线贴图

在我们进行各种图形的绘制时,为了尽量提高真实感,会采用纹理贴图的方法,但是例如我们在一个正方形上贴砖墙的纹理,现实中的砖墙是凹凸不平的,而且我们绘制的正方形却是一个平面,在加入光照模型时,也不能通过光照,反应砖墙的细节,这时我们引入法线贴图的办法去赋予纹理每个点相应的法线信息,去形成不同的光照效果。

如下图,左图为无法线贴图的情况,右图为引入法线贴图的情况。

在这里插入图片描述

法线贴图相当于针对原纹理贴图的每个像素点添加的其独特的法线细节。所有的法线贴图都是对应局部坐标的法线,他们是一种偏蓝色调的纹理(你在网上找到的几乎所有法线贴图都是这样的)。这是因为所有法线的指向都偏向z轴(0, 0, 1)这是一种偏蓝的颜色。法线向量从z轴方向也向其他方向轻微偏移,颜色也就发生了轻微变化,这样看起来便有了一种深度。例如,你可以看到在每个砖块的顶部,颜色倾向于偏绿,这是因为砖块的顶部的法线偏向于指向正y轴方向(0, 1, 0),这样它就是绿色的了。

在这里插入图片描述

为什么需要切线空间

使用Heightmap可以为物体表面增加法线细节,但是从heightmap提取的法线是局部坐标系内的法线,正常的使用需要我们建立一个切线空间去将heightmap中提取出的法线转换到世界坐标系中,之前的效果图我们可以看到,左侧为不引入切线空间的法线贴图,它的每个面的法线都是一样的,所以显得亮度相同,而右侧是引入了切线空间的法线贴图,它每个面的法线朝向都不相同。

在这里插入图片描述

加载法线贴图

加载法线贴图和加载纹理的方式可以说是一模一样的,在此不再赘述。

Texture cube_normal; 
//加载法线贴图
unsigned int cube_normal_texture = cube_normal.LoadTextureFromFile("res/texture/cube_normal.jpg");

法线贴图是把法线数据储存在纹理图片中,所以我们需要根据法线贴图和纹理坐标去采样获得一点的法线贴图的颜色值,将其rgb颜色值,作为法线的xyz轴,读取成法线向量,但是颜色的范围是在0 ~ 1之间,而法线参数是在-1 ~ 1之间,所以我们需要进行范围的转化,先乘以2扩大范围到0 ~ 2,再减去1,使法线范围变化到 -1 ~ 1,最后一般我们使用的法线都应该是单位向量,所以我们需要进行标准化操作。

vec3 normal = texture(texture_normal, fs_in.TexCoords).rgb;
normal = normalize(normal * 2.0f - 1.0f);

然后我们使用从法线贴图中取样获得的法线来计算光照即可。

引入切线空间

法线贴图中的法线向量在切线空间中,法线永远指着正z方向。如果模型上有无数的朝向不同方向的表面,这就不可行了。所以一种解决问题的方式是计算出一种矩阵,把法线从局部空间变换到一个世界空间,这样它们就能和表面法线方向对齐了。

这种矩阵叫做TBN矩阵这三个字母分别代表tangent、bitangent和normal向量。这是建构这个矩阵所需的向量。要建构这样一个把切线空间转变为不同空间的变异矩阵,我们需要三个相互垂直的向量,它们沿一个表面的法线贴图对齐于:上、右、前。

在这里插入图片描述

为了获得TBN矩阵,需要进行以下步骤

首先,我们可以把边E1和E2用切线向量T和副切线向量B的线性组合表示出来。

E是两个向量位置的差,ΔU和ΔV是纹理坐标的差。

图中我们可以看到边E2纹理坐标的不同,E2是一个三角形的边,这个三角形的另外两条边是ΔU2和ΔV2,它们与切线向量T和副切线向量B方向相同。这样我们可以把边E1和E2用切线向量T和副切线向量B的线性组合表示出来(注意T和B都是单位长度,在TB平面中所有点的T、B坐标都在0到1之间,因此可以进行这样的组合):

在这里插入图片描述

然后也可以写成这样:

在这里插入图片描述

上面的方程允许我们把它们写成另一种格式:矩阵乘法。

在这里插入图片描述

两边都乘以ΔUΔV的逆矩阵等于:

在这里插入图片描述

最后,用1除以逆矩阵的行列式,再乘以它的共轭矩阵。

在这里插入图片描述

由此,我们可以手工算出TBN矩阵,当然,也可以通过编写算法去计算相应的TBN矩阵。

以下为TBN矩阵的计算算法(其中pos1,pos2,pos3为世界空间内坐标,uv1,uv2,uv3为纹理坐标),由于三个向量两两正交,则可以计算出第三个向量:

//我们先计算三角形的边和deltaUV坐标: 
glm::vec3 edge1 = pos2 - pos1; //即计算公式中的E1 
glm::vec3 edge2 = pos3 - pos1; //即计算公式中的E2 
glm::vec2 deltaUV1 = uv2 - uv1; //即计算公式中的U1 V1 
glm::vec2 deltaUV2 = uv3 - uv1; //即计算公式中的U2 V2 
//有了计算切线和副切线的必备数据,计算: 
GLfloat f = 1.0f / (deltaUV1.x * deltaUV2.y - deltaUV2.x * deltaUV1.y); 
tangent1.x = f * (deltaUV2.y * edge1.x - deltaUV1.y * edge2.x); 
tangent1.y = f * (deltaUV2.y * edge1.y - deltaUV1.y * edge2.y); 
tangent1.z = f * (deltaUV2.y * edge1.z - deltaUV1.y * edge2.z); 
tangent1 = glm::normalize(tangent1); 
//把结果转换成单位矩阵 
bitangent1.x = f * (-deltaUV2.x * edge1.x + deltaUV1.x * edge2.x); 
bitangent1.y = f * (-deltaUV2.x * edge1.y + deltaUV1.x * edge2.y); 
bitangent1.z = f * (-deltaUV2.x * edge1.z + deltaUV1.x * edge2.z); 
bitangent1 = glm::normalize(bitangent1); //把结果转换成单位矩阵

切线空间的TN向量我们从顶点数组中传入,但是,需要注意的是传入的T N向量是局部坐标系的TN向量,我们需要乘以Model将其转换至世界坐标系,model矩阵是mat4所以我们需要先将T向量变化为4维向量,乘完后再变回三维向量,最后依旧不要忘记标准化操作,最后得到了我们需要的TN向量:

vec3 T = normalize(vec3(model * vec4(aTangent, 0.0f))); 
vec3 N = normalize(vec3(model * vec4(aNormal, 0.0f))); 
vec3 B = normalize(cross(T, N));

接下来,只需要在从法线贴图读取了法线数据并进行范围转化之后,将TBN矩阵与法线相乘,即可引入切线空间,将法线变换到世界空间中。

// 从法线贴图范围[0,1]获取法线 
vec3 normal = texture(texture_normal, fs_in.TexCoords).rgb; 
// 将法线向量转换为范围[-1,1] 
normal = normalize(normal * 2.0f - 1.0f); 
//引入切线到世界空间变换
normal = normalize(fs_in.TBN * normal);

结果

在这里插入图片描述

什么是法线贴图? 阅读详情

相关推荐

【瑞模网】游戏美术基础(一):游戏贴图

DirectX是一种应用程序接口(API),它是由微软公司开发的用途广泛的API,它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计 人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。表面反射光线的能力受环境中各种因素的影响,例如落在对象上的那些非常小颗粒的灰尘,以及接触对象时从手上沾染到对象上的油污, 所有这一切都会影响表面反射光线的能力。注意,在UE4中,材质的默认高光值为0.5。

rrmod的博客 1682

什么是法线贴图 今天教你如何制作法线贴图

简介 法线贴图就是在原物体的凹凸表面的每个点上均作法线,通过RGB颜色通道来标记法线的方向,你可以把它理解成与原凹凸表面平行的另一个不同的表面,但实际上它又只是一个光滑的平面。对于视觉效果而言,它的效率比原有的凹凸表面更高,若在特定位置上应用光源,可以让细节程度较低的表面生成高细节程度的精确光照方向和反射效果。 法线贴图是可以应用到3D表面的特殊纹理,不同于以往的纹理只可以用于2D表面。作为凹凸纹理的扩展,它使每个平面的各像素拥有了高度值,包含了许多细节的表面信息,能够在平平无奇的物体外形上..

langgesanshiyi的博客 3万+

现代计算机图形学笔记(八)——纹理的应用(环境光贴图、凹凸贴图、法线贴图)

纹理的应用 环境光贴图 环境光贴图可以让模型反射出周围环境的样子,如下图右侧,而左侧的图像就是环境光贴图。 环境光一般都存储在一个球上(Spherical Map),并且我们可以像展开地球仪一样展开成环境光贴图。 展开后的贴图 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QrHAgZcv-1617529106635)(C:\Users\63092\AppData\Roaming\Typora\typora-user-images\image-20210404162758

feyily的博客 2549

凹凸/法线/移位贴图的区别

你是否在掌握 3D 资产纹理的道路上遇到过障碍?不要难过!许多刚接触纹理或 3D 的艺术家在第一次遇到凹凸贴图(Bump Map)、法线贴图(Normal Map)和移位贴图(Displacement Map)时通常会感到困惑。他们似乎都在做同样的事情,对吧?推荐:用快速搭建3D场景。这个问题的答案是一个响亮的“有点”。这三种类型的贴图中的每一种都会在几何表面上创建一些看起来像附加分辨率或细节的东西。这些细节有些是真实的,有些则不是。

新缸中之脑 3216

计算机图形学纹理技术:从基础原理到实战优化

纹理技术是计算机图形学中的基础概念,通过2D图像信息模拟3D物体表面视觉细节。其核心原理涉及纹理映射、采样和过滤机制,将纹理坐标(u,v)与3D模型表面建立对应关系。这项技术的价值在于显著提升视觉真实性的同时优化渲染性能,用纹理采样替代复杂物理计算,降低GPU负载。在游戏开发、三维应用等场景中,纹理承担着模拟材质细节、存储光照信息等重要功能。法线贴图通过改变表面法线方向模拟凹凸细节,环境贴图则用于创造逼真的反射效果。合理的纹理压缩和Mipmap使用能够有效解决内存占用和性能优化问题,实现视觉效果与运行效率的

weixin_33862993的博客 409

西门子交换机环网冗余设置(实战篇2.2)

MRP的重组时间为 200ms 因此 PROFINET 通信必须选择大于 200ms 的看门狗时间,看门狗。ET200SP默认为 2ms*3=6ms) MRP 的重组时间为 200ms 故系统会报出看门狗超时。更新,默认是 3 个周期,超出设置的周期数就会报 IO 设备故障。时间不是直接配置的,而是作为没有 IO 数据可接受的更新周期,也就是允许几个周期没有数据。来达到大于 200ms 的看门狗时间的要求(看门狗时间 可接受更新周期数 更新时间)。是IO 控制器和 IO 设备)

weixin_42580591的博客 370

3D图形学(4):纹理贴图

内容引自《Real Time Rendering 3rd》 在计算机图形学中,纹理贴图是使用图像、函数或其他数据源来改变物体表面外观的技术。例如,可以将一幅砖墙的彩色图像应用到一个多边形上,而不用对砖墙的几何形状进行精确表示。当观察这个多边形的时候,这张彩色图像就出现在多边形所在位置上。只要观察者不接近这面墙,就不会注意到其中几何细节的不足(比如其实砖块和砂浆的图像是显示在光滑的表...

qq826364410的专栏 1万+

基于DSP28335的Matlab/Simulink代码生成实验七:A/D采样

实验七:讲解如何使用DSP的ADC模块,通过代码生成技术控制DSP进行电流采样,是后续实现电机闭环控制的重要环节。通过简单的实验来熟悉代码生成的过程。最终实现复杂算法代码自动生成,进行高性能电机控制!

m0_73869369的博客 4726

阿库娅的计算机图形学笔记,games101(十)

得根据需要进行选择,因为不知道哪一个最好用。对于简单的方式,进行描述简单几何还是能用隐式几何进行表示的。三种运算,通过运算可以拼凑起新的集合体。如上图说是:通过简单的集合体,就可以形成复杂的集合体。

Kaliaailia的博客 923

Xilinx PL端DP显示接口开发实战(一)——环境搭建与硬件选型

本文详细介绍了Xilinx PL端DP显示接口开发的环境搭建与硬件选型实战经验。从Vivado和Vitis 2021.1版本的软件安装要点,到DP141和MCDP6000芯片的选型建议,再到DP1.4接口的RX/TX方向开发关键点,为开发者提供了全面的技术指导。文章还分享了IP核配置、BD原理图设计以及常见问题排查的实用技巧,帮助开发者高效完成Xilinx DP接口开发项目。

weixin_29250573的博客 177

自抗扰控制(ADRC)理论与工程实践:6.1 离散时间ADRC的推导

本文系统阐述了自抗扰控制(ADRC)的离散化方法,重点对比了前向欧拉法和基于零阶保持器(ZOH)的精确离散化两种方法。前向欧拉法计算简单但精度较低,稳定性受采样周期约束;ZOH法精度高但对大采样周期更鲁棒。文章详细推导了跟踪微分器、扩张状态观测器和控制律的离散形式,分析了采样周期选择的关键因素,为ADRC的数字实现提供了理论指导。

技术工作者 199

计算机图形学14:纹理应用

计算机图形学入门,纹理应用,环境贴图,cube map,Bump map,AO贴图。

YanisWu的博客 1443

量子编程专业权威教程(十四):Shor 算法

本文系统阐述了Shor算法的原理与实现,重点解析了将大数分解问题转化为周期寻找问题的数论基础,以及模幂运算量子电路的设计方法。通过以N=15为例的完整算法流程演示,展示了量子计算在因数分解问题上的指数级优势。文章详细拆解了受控幺正操作构建、量子傅里叶变换应用等关键技术环节,并提供了可复现的Qiskit代码实现。同时指出了当前量子硬件在比特数、相干时间和错误率等方面面临的工程挑战,这些限制使得分解大整数仍需长期技术突破。该研究为理解量子计算优势提供了典型范例,对后量子密码学发展具有重要启示意义。

分享知识,拥抱变化 800

计算机图形学:纹理

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

zhanghuanzj的博客 2917

Hadoop在大数据领域的电商数据分析案例

随着电商行业的迅猛发展,每天都会产生海量的数据,如用户浏览记录、购买行为、商品信息等。如何从这些数据中提取有价值的信息,为电商企业的决策提供支持,成为了电商企业面临的重要问题。Hadoop作为一个开源的分布式计算平台,具有高可靠性、高扩展性和高效性等特点,能够很好地处理大数据。本文的目的就是通过实际案例,详细介绍Hadoop在电商数据分析中的应用,范围涵盖了从数据采集、存储到分析的整个流程。本文首先介绍背景信息,让读者了解Hadoop在电商数据分析中的重要性和应用场景。

Java大师兄的博客 1179

YOLOv8交通监控全方案:精准车辆计数+违章(闯红灯/压线)识别,拿来就落地!

作为深耕计算机视觉落地的开发者,我见过太多交通监控的“伪智能”——传统系统要么车辆计数不准(漏计/重复计数),要么违章识别滞后(靠人工回看录像),甚至连“闯红灯、压线”这类常见违章都无法实时判定,完全满足不了实际交通管理需求。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 650

计算机图形学八:纹理映射的应用(法线贴图,凹凸贴图与阴影贴图等相关应用的原理详解)

纹理映射的应用1 Normal Maps及切线空间2 Bump Maps3 Displacement Maps4 Environment MapsReference 在上一节内容中,我们详细介绍了纹理映射的概念,以及纹理贴图过大过小带来的种种问题与解决方案,但纹理映射的应用远不止单单作为diffuse的反射系数来表现出不同颜色。本文会详细介绍一些主要的纹理映射的应用及其原理,首先从法线映射和切线空间开始说起。 1 Normal Maps及切线空间 在Blinn-Phong光照模型中,法线向量扮演着重要的一环

吃人的博客 8106

硬件电路设计采集电路

摘要:采集电路是硬件设计中连接物理世界与数字系统的关键环节,主要用于将温度、压力等物理量转换为电信号。常见的采集电路包括模拟量采集(如温度、电压)、数字量采集(如开关状态)和特殊信号采集(如光、声音)。设计时需重点关注传感器选型、信号调理、电源接地、抗干扰和ADC配置等核心要素,确保信号链路的完整性和稳定性。合理的电路设计需结合具体应用场景,通过仿真和测试验证性能,最终实现精确可靠的数据采集。

qq_37999850的博客 1800

计算机图形学:详解法线与法线贴图原理

法线贴图 (Normal Map) 是一种凹凸贴图 (Bump Map)。它们是一种特殊的纹理,可让您将表面细节(如凹凸、凹槽和划痕)添加到模型,从而捕捉光线,就像由真实几何体表示一样

星空_MAX 7772

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

计算机图形学(九)-纹理的应用,环境贴图、凹凸贴图、法线贴图、位移贴图

纹理可以理解为GPU上的一块内存,内存上有一块区域可以做点查询也可以做范围查询,并且很快,可以认为纹理是一块数据,可以做不同类型的查询,不限于把它理解成图像,纹理可以表示很多东西,比如环境光照(环境光映射/环境贴图)

点燃火柴的博客 4327

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

计算机图形学入门(八)-着色(插值、高级纹理映射)

本部分主要介绍了重心坐标的计算和使用,对应用纹理时出现的纹理过大或过小问题进行了分析和常见的解决办法,后面对纹理的实际应用方面进行了介绍。

weixin_45314475的博客 1546

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

计算机图形学纹理技术:从基础映射到环境贴图与法线贴图实战

纹理映射是计算机图形学中通过二维图像增强三维模型表面细节的核心技术,其原理基于UV坐标系统将纹理像素映射到几何表面。这项技术的价值在于以较低计算成本实现高质量视觉效果,避免了为每个细节创建复杂几何模型的资源消耗。在游戏开发、三维建模和影视特效等应用场景中,纹理技术已发展到能够模拟颜色、凹凸、反射等多种表面特性。环境贴图通过立方体贴图实现全景环境反射,而法线贴图则在切线空间中改变表面法线方向来模拟凹凸细节。本文通过完整的OpenGL代码示例,系统展示了从基础纹理加载到高级环境贴图和法线贴图的实战应用,帮助开发

weixin_34320724的博客 408

9、计算机图形学——纹理的应用(环境贴图、凸凹贴图、法线贴图以及位移贴图)

一、环境贴图 比如下面的这张图,左边的是一张表示环境光的纹理,这个纹理表示屋子内部四面八方都是啥样,右边是一个茶壶, 将纹理映射到这个茶壶上,就能茶壶上渲染出周围的环境 还有这样的球形环境贴图(sphere map) 左边依然是环境贴图,就像地球仪把地球表面展开成右边的平面。随着球的移动,环境贴图的内容也会发生改变,所以,球形环境贴图只能表示一部分环境, 比茶壶的环境贴图表达的信息要少 球形环境贴图通常也叫材质球 但是,由于球形贴图展开后,边缘部分会产生一定程度的畸变,所以就产生了立方盒纹

Master Cui的博客 3024

计算机图形学GAMES-Lecture10-几何1(基本表示方法)

闫令琪计算机图形学GAMES-Lecture10-几何1(基本表示方法) 链接:https://sites.cs.ucsb.edu/~lingqi/teaching/games101.html

舒小奎的博客 583

[简化版 GAMES 101] 计算机图形学 17:纹理技术从基础原理到多场景实战应用

本文系统讲解了计算机图形学中的纹理技术及其应用。文章首先打破"纹理仅是彩色贴图"的认知,指出其本质是GPU中的可编程内存区域。核心内容包括:环境贴图(球面与立方体方案)用于模拟全域光照;凹凸/法线贴图通过扰动法线模拟表面细节;位移贴图则真实改变几何结构,需配合高精度模型或动态细分技术。此外还介绍了三维纹理在自然材质和医学影像中的应用,以及纹理作为预计算数据容器的功能。全文展现了纹理技术从基础色彩映射到多维数据处理的演进历程,揭示了其在图形渲染中的核心地位和广泛应用前景。

软件科学-郝学胜 494

向量在计算机图形学中的核心应用

点积:a⃗⋅b⃗=∥a⃗∥∥b⃗∥cos⁡θa⋅b=∥a∥∥b∥cosθ,其中 θθ 为两向量夹角。代数计算:a⃗⋅b⃗=a1b1+a2b2a⋅b=a1​b1​+a2​b2​(二维),三维类似。叉积:a⃗×b⃗a×b 结果是一个向量,其大小为 ∥a⃗∥∥b⃗∥sin⁡θ∥a∥∥b∥sinθ,方向垂直于 a⃗a 和 b⃗b 所在平面,遵循右手定则。向量空间是由向量构成的集合,满足加法和标量乘法的封闭性及八条运算法则。例如:二维平面所有向量构成二维向量空间 R2R2,三维空间所有向量构成 R3R3。

GameDesign 889
上一篇: 计算机图形学 | 实验九:纹理贴图和天空盒
下一篇: 计算机图形学 | 实验十一:阴影计算
UestcXiye
博客等级 码龄8年 9032粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值