一种基于UV映射的场景模型表面纹理叠加方法及装置与流程

文档序号:30305384发布日期:2022-06-05 05:03阅读:222来源:国知局
一种基于UV映射的场景模型表面纹理叠加方法及装置与流程
一种基于uv映射的场景模型表面纹理叠加方法及装置
技术领域
1.本发明涉及计算机图形学领域,特别涉及一种基于uv映射的场景模型表面纹理叠加方法及装置。


背景技术:

2.现有的技术中模型表面纹理叠加过程中贴图无法很好的贴合覆盖在模型的表面,导致渲染效果差。


技术实现要素:

3.(一)要解决的技术问题
4.为了解决现有技术的上述问题,本发明提供一种基于uv映射的场景模型表面纹理叠加方法及装置,能够能够使得贴图很好的贴合覆盖在模型的表面,提高渲染效果。
5.(二)技术方案
6.为了达到上述目的,本发明采用的一种技术方案为:
7.一种基于uv映射的场景模型表面纹理叠加方法,包括步骤:
8.s1、对场景中的模型进行全展uv处理,得到模型的第二套uv,并将第二套uv作为叠加纹理映射的坐标;
9.s2、根据所述叠加纹理映射的坐标生成世界空间的坐标贴图;
10.s3、根据所述坐标贴图和叠加纹理所需参数生成叠加纹理遮罩贴图,并对场景中的模型进行叠加纹理绘制。
11.为了达到上述目的,本发明采用的另一种技术方案为:
12.一种基于uv映射的场景模型表面纹理叠加装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
13.s1、对场景中的模型进行全展uv处理,得到模型的第二套uv,并将第二套uv作为叠加纹理映射的坐标;
14.s2、根据所述叠加纹理映射的坐标生成世界空间的坐标贴图;
15.s3、根据所述坐标贴图和叠加纹理所需参数生成叠加纹理遮罩贴图,并对场景中的模型进行叠加纹理绘制。
16.(三)有益效果
17.本发明的有益效果在于:通过对场景中的模型进行全展uv处理,得到模型的第二套uv,并将第二套uv作为叠加纹理映射的坐标;根据所述叠加纹理映射的坐标生成世界空间的坐标贴图;根据所述坐标贴图和叠加纹理所需参数生成叠加纹理遮罩贴图,并对场景中的模型进行叠加纹理绘制,利用全展场景模型来生成第二套uv的方式,来实现世界坐标空间的uv贴图映射,从而使贴图能够贴合地覆盖在模型的表面,提高渲染效果。
附图说明
18.图1为本发明实施例的基于uv映射的场景模型表面纹理叠加方法流程图;
19.图2为本发明实施例的基于uv映射的场景模型表面纹理叠加装置的整体结构示意图。
20.【附图标记说明】
21.1:基于uv映射的场景模型表面纹理叠加装置;
22.2:存储器;
23.3:处理器。
具体实施方式
24.为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
25.实施例一
26.请参照图1,一种基于uv映射的场景模型表面纹理叠加方法,包括步骤:
27.s1、对场景中的模型进行全展uv处理,得到模型的第二套uv,并将第二套uv作为叠加纹理映射的坐标;
28.s2、根据所述叠加纹理映射的坐标生成世界空间的坐标贴图;
29.步骤s2包括:
30.s21、将第二套uv转换到世界空间中,并在顶点着色器中,设置第二套uv在三维世界空间中的位置uvworldpos=float3(uv2*2

1,0.5),其中,uv2*2-1为第二套uv在世界空间中的x和y维度值,0.5为z维度值;
31.s22、第二套uv在三维世界空间中的位置通过相机的观察矩阵和投影矩阵相乘后,再乘以第二套uv的世界空间位置,得到的值就是在投影空间下的位置;
32.s23、将模型顶点本地空间位置乘以本地空间转换到世界空间矩阵,得到模型顶点的世界位置,并传入片元着色器中;
33.s24、在片元着色器中,输入颜色结果为顶点的世界空间位置,生成世界空间的坐标贴图。
34.s3、根据所述坐标贴图和叠加纹理所需参数生成叠加纹理遮罩贴图,并对场景中的模型进行叠加纹理绘制。
35.步骤s3包括:
36.s31、当用户点击屏幕时,从屏幕正中往点击点的方向发射一条射线,射线与场景中模型相交点记为p点,并将叠加纹理所需参数传入计算叠加纹理的着色器中,所述叠加纹理所需参数包括p点的位置、p点处的法线方向、叠加纹理所需的缩放值和模型的世界空间转换到本地空间的矩阵matrix_world2local;
37.具体地,还包括:
38.记上一次叠加的纹理为tex_last,采样上一次叠加的纹理,如果上一次叠加纹理不存在使,则采样值为(0,0,0,0),以上一次叠加的纹理作为当前叠加纹理值的初始值,记为tex_current;
39.s32、根据所述坐标贴图进行采样,采样值记为wpos;
40.s33、将所述matrix_world2local乘以wpos,得到本地空间的位置opos;
41.s34、根据所述本地空间的位置opos的x和z维度的值加上0.5作为叠加纹理的uv,记为uv_overlap;
42.s35、以uv_overlap采样叠加纹理tex_mask,将tex_current的x、y和z维度值填充为tex_mask的x、y和z值,将tex_current的w维度值为tex_mask的w值,生成遮罩贴图记为tex_splat,并对场景中的模型进行叠加纹理绘制。
43.所述的对场景中的模型进行叠加纹理绘制具体为:
44.采样tex_splat颜色值记为splat,采样原有纹理颜色值记为main;
45.以tex_splat的x维度值对叠加纹理进行插值计算,记splat的z维度值为alpha,最终结果为splat*alpha+main*(1-alpha)。
46.实施例二
47.请参照图2,一种基于uv映射的场景模型表面纹理叠加装置1,包括存储器2、处理器3及存储在存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述程序时实现实施例一中的各个步骤。
48.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。


技术特征:
1.一种基于uv映射的场景模型表面纹理叠加方法,其特征在于,包括步骤:s1、对场景中的模型进行全展uv处理,得到模型的第二套uv,并将第二套uv作为叠加纹理映射的坐标;s2、根据所述叠加纹理映射的坐标生成世界空间的坐标贴图;s3、根据所述坐标贴图和叠加纹理所需参数生成叠加纹理遮罩贴图,并对场景中的模型进行叠加纹理绘制。2.根据权利要求1所述的基于uv映射的场景模型表面纹理叠加方法,其特征在于,步骤s2包括:s21、将第二套uv转换到世界空间中,并在顶点着色器中,设置第二套uv在三维世界空间中的位置uvworldpos=float3(uv2*2

1,0.5),其中,uv2*2-1为第二套uv在世界空间中的x和y维度值,0.5为z维度值;s22、第二套uv在三维世界空间中的位置通过相机的观察矩阵和投影矩阵相乘后,再乘以第二套uv的世界空间位置,得到的值就是在投影空间下的位置;s23、将模型顶点本地空间位置乘以本地空间转换到世界空间矩阵,得到模型顶点的世界位置,并传入片元着色器中;s24、在片元着色器中,输入颜色结果为顶点的世界空间位置,生成世界空间的坐标贴图。3.根据权利要求1所述的基于uv映射的场景模型表面纹理叠加方法,其特征在于,步骤s3包括:s31、当用户点击屏幕时,从屏幕正中往点击点的方向发射一条射线,射线与场景中模型相交点记为p点,并将叠加纹理所需参数传入计算叠加纹理的着色器中,所述叠加纹理所需参数包括p点的位置、p点处的法线方向、叠加纹理所需的缩放值和模型的世界空间转换到本地空间的矩阵matrix_world2local;s32、根据所述坐标贴图进行采样,采样值记为wpos;s33、将所述matrix_world2local乘以wpos,得到本地空间的位置opos;s34、根据所述本地空间的位置opos的x和z维度的值加上0.5作为叠加纹理的uv,记为uv_overlap;s35、以uv_overlap采样叠加纹理tex_mask,将tex_current的x、y和z维度值填充为tex_mask的x、y和z值,将tex_current的w维度值为tex_mask的w值,生成遮罩贴图记为tex_splat,并对场景中的模型进行叠加纹理绘制,其中,tex_current为当前叠加纹理值的初始值。4.根据权利要求3所述的基于uv映射的场景模型表面纹理叠加方法,其特征在于,所述的对场景中的模型进行叠加纹理绘制具体为:采样tex_splat颜色值记为splat,采样原有纹理颜色值记为main;以tex_splat的x维度值对叠加纹理进行插值计算,记splat的z维度值为alpha,最终结果为splat*alpha+main*(1-alpha)。5.一种基于uv映射的场景模型表面纹理叠加装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
s1、对场景中的模型进行全展uv处理,得到模型的第二套uv,并将第二套uv作为叠加纹理映射的坐标;s2、根据所述叠加纹理映射的坐标生成世界空间的坐标贴图;s3、根据所述坐标贴图和叠加纹理所需参数生成叠加纹理遮罩贴图,并对场景中的模型进行叠加纹理绘制。6.根据权利要求5所述的基于uv映射的场景模型表面纹理叠加装置,其特征在于,步骤s2包括:s21、将第二套uv转换到世界空间中,并在顶点着色器中,设置第二套uv在三维世界空间中的位置uvworldpos=float3(uv2*2

1,0.5),其中,uv2*2-1为第二套uv在世界空间中的x和y维度值,0.5为z维度值;s22、第二套uv在三维世界空间中的位置通过相机的观察矩阵和投影矩阵相乘后,再乘以第二套uv的世界空间位置,得到的值就是在投影空间下的位置;s23、将模型顶点本地空间位置乘以本地空间转换到世界空间矩阵,得到模型顶点的世界位置,并传入片元着色器中;s24、在片元着色器中,输入颜色结果为顶点的世界空间位置,生成世界空间的坐标贴图。7.根据权利要求5所述的基于uv映射的场景模型表面纹理叠加装置,其特征在于,步骤s3包括:s31、当用户点击屏幕时,从屏幕正中往点击点的方向发射一条射线,射线与场景中模型相交点记为p点,并将叠加纹理所需参数传入计算叠加纹理的着色器中,所述叠加纹理所需参数包括p点的位置、p点处的法线方向、叠加纹理所需的缩放值和模型的世界空间转换到本地空间的矩阵matrix_world2local;s32、根据所述坐标贴图进行采样,采样值记为wpos;s33、将所述matrix_world2local乘以wpos,得到本地空间的位置opos;s34、根据所述本地空间的位置opos的x和z维度的值加上0.5作为叠加纹理的uv,记为uv_overlap;s35、以uv_overlap采样叠加纹理tex_mask,将tex_current的x、y和z维度值填充为tex_mask的x、y和z值,将tex_current的w维度值为tex_mask的w值,生成遮罩贴图记为tex_splat,并对场景中的模型进行叠加纹理绘制,其中,tex_current为当前叠加纹理值的初始值。8.根据权利要求7所述的基于uv映射的场景模型表面纹理叠加装置,其特征在于,所述的对场景中的模型进行叠加纹理绘制具体为:采样tex_splat颜色值记为splat,采样原有纹理颜色值记为main;以tex_splat的x维度值对叠加纹理进行插值计算,记splat的z维度值为alpha,最终结果为splat*alpha+main*(1-alpha)。

技术总结
本发明提供的一种基于UV映射的场景模型表面纹理叠加方法及装置,通过对场景中的模型进行全展UV处理,得到模型的第二套UV,并将第二套UV作为叠加纹理映射的坐标;根据所述叠加纹理映射的坐标生成世界空间的坐标贴图;根据所述坐标贴图和叠加纹理所需参数生成叠加纹理遮罩贴图,并对场景中的模型进行叠加纹理绘制,利用全展场景模型来生成第二套UV的方式,来实现世界坐标空间的UV贴图映射,从而使贴图能够贴合地覆盖在模型的表面,提高渲染效果。提高渲染效果。提高渲染效果。


技术研发人员:林进浔 黄明炜 郑福 王巧华 林进津
受保护的技术使用者:福建数博讯信息科技有限公司
技术研发日:2022.02.16
技术公布日:2022/6/4
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1