CN114241076A - 图片物体纹理替换方法、装置、计算机设备和存储介质 - Google Patents
图片物体纹理替换方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114241076A CN114241076A CN202111598978.9A CN202111598978A CN114241076A CN 114241076 A CN114241076 A CN 114241076A CN 202111598978 A CN202111598978 A CN 202111598978A CN 114241076 A CN114241076 A CN 114241076A
- Authority
- CN
- China
- Prior art keywords
- layer
- texture
- index
- gray
- difference
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种图片物体纹理替换方法、装置、计算机设备和存储介质,包括对纹理替换区域进行预渲染,获得预渲染图层;获取纹理图并进行模糊处理,得到模糊纹理图;依据预渲染图层对纹理图和模糊纹理图进行重采样后,对采样结果和预渲染图层进行合成处理,得到纹理替换图片。该纹理替换过程很好地还原了全局光照、镜面反射等效果,使得得到的问题替换图片真实感更强,保证了纹理替换图片质量,整个纹理替换过程采用逐像素加单加减乘除处理方式,课批量计算,处理速度快,提升了整个纹理替换的效率。
Description
技术领域
本发明属于图像处理领域,具体涉及一种图片物体纹理替换方法、装置、计算机设备和存储介质。
背景技术
在影视特效制作、服装布料的虚拟展示、艺术和工业设计等广泛应用,纹理替换正逐渐成为计算机图形学、视觉与图像及视频处理等诸多领域的研究热点。
纹理替换指在图像或视频的目标区域以新纹理替换原有纹理,使得替换后的纹理呈现和原始纹理一致的自然、形变效果,并保持原始纹理的光照、阴影信息。自然图像一般在较为复杂的环境下摄取,精确恢复图像中物体的几何形状及接受的光照映射通常是非常困难的,因而在原始图像目标区域精确几何信息未知的情况下,如何使替换纹理呈现和原始纹理一致的依附于原始图像几何信息的自然形变效果,以及如何保持原始纹理的光照阴影效果是图像纹理替换领域必须解决的关键问题。
如UE4等现有软件中,有些能够顾实现纹理的实时替换,替换速度很快,但是替换后的图片质量较低。有些替换后图片质量较高,替换效率却很慢,纹理替换效率和纹理替换后图像质量很难兼顾。
发明内容
鉴于上述技术问题,本发明的目的在于提供一种图片物理纹理替换方法、装置、计算机设备和存储介质,在保证纹理替换后图片质量的同时,提高了纹理替换效率。
为实现上述发明目的,第一方面实施例提供了一种图片物理纹理替换方法,包括以下步骤:
对纹理替换区域进行预渲染,获得预渲染图层;
获取替换所用的纹理图并进行模糊处理,得到模糊纹理图;
依据预渲染图层对纹理图和模糊纹理图进行重采样后,对采样结果和预渲染图层进行合成处理,得到纹理替换图片。
在一个实施例中,所述预渲染图层包括:可替换材质表面漫反射光照总值图层gray_diffuse_all;可替换材质表面被镜面反射部分的直接光图层gray_indirect;可替换材质表面被镜面反射的光照总值图层gray_indirect_all;可替换材质表面漫反射影响到其他部分的光照总值图层gray_diffuse_indirect;可替换材质表面被镜面反射的不带阴影的直接光部分图层gray_indirect_unshadow;可替换材质表面被镜面反射的uv直接光部分图层uv_indirect;可替换材质表面漫反射影响到其他部分的uv光照总值图层uv_diffuse_indirect;可替换材质表面被镜面反射的不带阴影的uv直接光部分图层uv_indirect_unshadow;可替换材质表面uv值图层uv_diffuse_filter;用于合成的底色图层residual。
在一个实施例中,所述预渲染图层的获取方式:
将所有可替换材质漫反射diffuse均调整为黑色时渲染一次,得到图层residual;
将所有可替换材质漫反射diffuse均调整为灰色时渲染一次,得到图层gray_diffuse_all,图层gray_indirect,图层gray_indirect_all,图层gray_diffuse_indirect;
将所有可替换材质漫反射diffuse均调整为灰色,且全局设置关闭阴影时渲染一次,得到图层gray_indirect_unshadow;
针对每个可替换材质,将每个可替换材质diffuse设置为抓取uv的开放式着色语言,其他可替换材质设置为灰色渲染一次,生成每个可替换材质对应的图层uv_indirect,图层uv_diffuse_indirect,图层uv_diffuse_filter;
将可替换材质diffuse通过开放式着色语言抓取uv,全局设置关闭阴影时渲染一次,得到图层uv_indirect_unshadow。
在一个实施例中,对纹理图进行高斯模糊处理,得到模糊纹理图。
在一个实施例中,所述依据预渲染图层对纹理图和模糊纹理图进行重采样,包括:
根据图层uv_diffuse_filter对纹理图进行重采样,得到直接光纹理颜色值;
根据图层uv_indirect和图层gray_indirect对纹理图进行重采样,得到镜中反射的纹理颜色值;
根据图层uv_diffuse_indirect和图层gray_diffuse_indirect对模糊纹理图进行采样,得到替换纹理后的漫反射间接光的纹理颜色值;
在一个实施例中,所述根据图层uv_diffuse_filter对替换纹理数据进行重采样,包括:利用图层uv_diffuse_filter中存放的uv值在纹理图中进行重采样,得到直接光纹理颜色值;
所述根据图层uv_indirect和图层gray_indirect对纹理图进行重采样,包括:利用图层uv_indirect除以图层gray_indirect得到镜面反射uv值,利用该镜面反射uv值在纹理图中进行重采样,得到镜中反射的纹理颜色值;
所述图层uv_diffuse_indirect和图层gray_diffuse_indirect对模糊纹理图进行采样,包括:利用图层uv_diffuse_indirect除以图层gray_diffuse_indirect得到漫反射uv值,利用该漫反射uv值在模糊纹理图中进行重采样,得到漫反射间接光的纹理颜色值。
在一个实施例中,利用图层uv_indirect_unshadow和图层gray_indirect_unshadow替换图层uv_indirect和图层gray_indirect;然后根据图层uv_indirect_unshadow和图层gray_indirect_unshadow对纹理图进行重采样,包括:利用图层uv_indirect_unshadow除以图层gray_indirect_unshadow得到镜面反射uv值,利用该镜面反射uv值在纹理图中进行重采样,得到镜中反射的纹理颜色值。
在一个实施例中,在计算替换纹理后的漫反射间接光的纹理颜色值时,当当前可替换区域替换纹理后影响其他可替换区域的纹理颜色值时,还需要考虑其他可替换区域的当前纹理颜色值,具体地,针对当前可替换区域,将其他可替换区域的当前纹理颜色值与当前可替换区域的当前纹理颜色值相乘,以更新当前可替换区域的当前纹理颜色值。
在一个实施例中,所述对采样结果和预渲染图层进行合成处理,包括:
在底色图层residual基础上,依次叠加直接光纹理颜色值对图层gray_indirect_all的修正结果、镜中反射的纹理颜色值对图层gray_indirect_all的修正结果、以及漫反射间接光的纹理颜色值对图层gray_diffuse_indirect。
在一个实施例中,所采用以下公式进行对采样结果和预渲染图层进行合成处理:
纹理替换图片=底色图层residual+(direct_tex_color×图层gray_diffuse_all×α)+(indirect_tex_color×图层gray_indirect_all×β)+(diffuse_influence_tex_color×图层gray_diffuse_indirect×γ)
其中,direct_tex_color表示直接光纹理颜色值,indirect_tex_color表示镜中反射的纹理颜色值,diffuse_influence_tex_color表示漫反射间接光的纹理颜色值,α、β、γ均为调节因子,取值范围为大于0的是实数。
为实现上述发明目的,第二方面实施例提供了一种图片物理纹理替换装置,包括:
预渲染模块,用于对纹理替换区域进行预渲染,获得预渲染图层;
模糊处理模块,用于获取替换所用的纹理图并进行模糊处理,得到模糊纹理图;
合成处理模块,用于依据预渲染图层对纹理图和模糊纹理图进行重采样后,对采样结果和预渲染图层进行合成处理,得到纹理替换图片。
为实现上述发明目的,第三方面实施例提供了一种计算机设备,存储器、处理器以及存储在所述存储器中并可在所述处理器上执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面提供的图片物体纹理替换方法的步骤。
为实现上述发明目的,第四方面实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理执行时实现上述第一方面提供的图片物体纹理替换方法的步骤。
与现有技术相比,本发明具有的有益效果至少包括:
实施例提供的图片物体纹理替换方法、装置、计算机设备和存储介质,通过纹理替换区域进行预渲染以获得预渲染图层,该预渲染过程时间短,提升了整个纹理替换的效率;在获取纹理图并进行模糊处理得到模糊纹理图的基础上,依据预渲染图层对纹理图和模糊纹理图进行重采样后,对采样结果和预渲染图层进行合成处理,得到纹理替换图片,该纹理替换过程很好地还原了全局光照、镜面反射等效果,使得得到的问题替换图片真实感更强,保证了纹理替换图片质量,整个纹理替换过程采用逐像素加单加减乘除处理方式,可批量计算,处理速度快,提升了整个纹理替换的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是一实施例提供的图片物体纹理替换方法的流程图;
图2是一实施例提供的原图片和对应的纹理替换图片;
图3是一实施例提供的预渲染图层的实例图片;
图4是一实施例提供的图片物体纹理替换装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
为了同时兼顾纹理替换图片质量和纹理替换效率,实施例提供了一种图片物体纹理替换方法、装置、计算机设备和存储介质,在深度利用离线渲染中每个图层信息的基础上再对图像结果做后处理,让图像能在离线渲染技术的基础上快速换纹理,从而高效高质地实现图片的替换纹理。
实施例提供的种图片物体纹理替换方法和装置,纹理替换的技术思路是主要利用图层合成的机制,在离线渲染器渲染的时候将直接光,间接光,反射光,uv信息等图层渲染出来,然后使用合成处理配合这些图层信息得到图片纹理替换结果。
图2是一实施例提供的原图片和对应的纹理替换图片。其中,图2中(a)为原图片,纹理替换的目的是替换原图片中的地板,但是由于左上方是一面镜子,右上方是柜体,但是具有反射功能,因此,地板纹理替换后会有镜面反射的效果,实际需要改图中可替换区域为地板,镜子和柜体的反射部分,得到如图2中(b)所示的纹理替换结果。下面以这个替换需求为例,阐述实施例提供的图片物体纹理替换方法。
如图1所示,实施例提供的图片物体纹理替换方法,包括以下步骤:
步骤1,对纹理替换区域进行预渲染,获得预渲染图层。
实施例中,对纹理替换区域进行预渲染,并利用离线渲染器光路搜索渲染图层获取纹理替换区域的直接光、间接光、被镜面反射的光照、以及对周边漫反射(diffuse)材质的影响等信息的图层,具体地,通过光路表达式(light_path_expression)获取指定光路类型的光照值,得到不同预渲染图层。同时还利用着色器中的开放式着色语言(open shadinglanguage,OSL)抓取纹理uv信息并渲染成图层。
实施例中,得到的预渲染图层包括:
可替换材质表面漫反射光照总值图层gray_diffuse_all,该图层gray_diffuse_all由离线渲染器光路搜索渲染图层在光路表达式="C<RD'obj1'><R[D]>*(L|B)";并且可替换材质漫反射(diffuse)设置灰色,即设置RGB(128,128,128)时渲染得到,该图层gray_diffuse_all主要得到的是可替换表面的直接光照值以及经过一次或多次漫反射后的所有光照值,对应的实例图片如图3中(a)。
可替换材质表面被镜面反射部分的直接光图层gray_indirect,该图层gray_indirect由离线渲染器光路搜索渲染图层在光路表达式="C<R[GS]><RD'obj1'>(L|B)";并且可替换材质diffuse设置为灰色,即设置RGB(128,128,128)时渲染得到,该图层gray_indirect主要得到的是可替换表面被镜面反射部分的直接光照值,对应的实例图片如图3中(b)。
可替换材质表面被镜面反射的光照总值图层gray_indirect_all,该图层gray_indirect_all由离线渲染器光路搜索渲染图层在光路表达式="C<R[GS]><RD'obj1'><R[D]>*(L|B)";并且可替换材质diffuse设置为灰色,即设置RGB(128,128,128)时渲染得到,该图层gray_indirect_all主要得到的是可替换表面被镜面反射部分的直接光照值以及经过一次或多次漫反射后的所有光照值,对应的实例图片如图3中(c)。
可替换材质表面漫反射影响到其他部分的光照总值图层gray_diffuse_indirect;该图层gray_diffuse_indirect由离线渲染器光路搜索渲染图层在光路表达式="C<R[D]>+<RD'obj1'>(L|B)";并且可替换材质diffuse设置为灰色,即设置RGB(128,128,128)时渲染得到,该图层gray_diffuse_indirect主要得到的是可替换表面对场景中其他漫反射表面贡献的光照值,对应的实例图片如图3中(d)。
可替换材质表面被镜面反射的不带阴影的直接光图层gray_indirect_unshadow,该图层gray_indirect_unshadow由离线渲染器光路搜索渲染图层在光路表达式="C<R[GS]><RD'obj1'>(L|B)";且可替换材质diffuse设置为灰色,即设置RGB(128,128,128),且全局设置关闭阴影时渲染得到,该图层gray_indirect_unshadow计算无阴影情况下可替换表面被镜面反射部分的直接光照值,对应的实例图片如图3中(e)。
可替换材质表面被镜面反射的uv直接光图层uv_indirect,该图层uv_indirect由离线渲染器光路搜索渲染图层在光路表达式="C<R[GS]><RD'obj1'>(L|B)";且可替换材质diffuse通过开放式着色语言抓取uv时渲染得到,该图层uv_indirect主要得到的是可替换表面被镜面反射部分的直接光照uv值,对应的实例图片如图3中(f)。
可替换材质表面漫反射影响到其他部分的uv光照总值图层uv_diffuse_indirect,该图层uv_diffuse_indirect由离线渲染器光路搜索渲染图层在光路表达式="C<R[D]>+<RD'obj1'>(L|B)";且可替换材质diffuse通过开放式着色语言抓取uv时渲染得到,该图层uv_diffuse_indirect主要得到的是可替换表面对场景中其他漫反射表面贡献的总光照uv值,对应的实例图片如图3中(g)。
可替换材质表面被镜面反射的不带阴影的uv直接光图层uv_indirect_unshadow,该图层uv_indirect_unshadow由离线渲染器光路搜索渲染图层在光路表达式="C<R[GS]><RD'obj1'>(L|B)";且可替换材质diffuse通过开放式着色语言抓取uv,全局设置关闭阴影时渲染得到,该图层uv_indirect_unshadow主要得到的是无阴影情况下可替换表面被镜面反射部分的直接光照uv值,对应的实例图片如图3中(h)。
可替换材质表面uv值图层uv_diffuse_filter,该图层uv_diffuse_filter的获取方式为:将可替换材质diffuse通过开放式着色语言抓取uv时,由离线渲染器漫反射过滤器图层(vrayRaw Diffuse Filter渲染通道)获取。该图层uv_diffuse_filter用于表示可替换区域直接光部分的uv值,对应的实例图片如图3中(i)。
底色图层residual,该图层residual作为合成的底图,将图上所有可替换区域的diffuse都设置为黑色得到,对应的实例图片如图3中(j)。
需要说明的是,图层gray_indirect_unshadow和图层uv_indirect_unshadow是两个可选的优选图层,利用这两个图层数据进行纹理替换,可以使得替换纹理在镜中的表现效果更好。
实施例中,对多个可替换区域进行预渲染时,在不考虑输出可选图层gray_indirect_unshadow和图层uv_indirect_unshadow的情况下,需要渲染N+2次,其中N表示场景中可渲染区域的数量。其中N+2次渲染包含:
将所有可替换材质漫反射diffuse均调整为黑色时渲染一次,以用于生成图层residual;
将所有可替换材质漫反射diffuse均调整为灰色,即设置RGB(128,128,128)时渲染一次,以用于生成图层gray_diffuse_all,图层gray_indirect,图层gray_indirect_all,图层gray_diffuse_indirect;
将单个可替换材质设置为抓取uv的osl,其他可替换材质设置为灰色,即设置RGB(128,128,128)时渲染一次,这样共需要渲染N次,以用于生成图层uv_indirect,图层uv_diffuse_indirect,图层uv_diffuse_filter。
当需要生成图层gray_indirect_unshadow和图层uv_indirect_unshadow时,则需要额外渲染N+1次,这样针对N个可渲染区域,获得上述10个图层,则总共需要渲染2n+3次。
步骤2,获取替换所用的纹理图并进行模糊处理,得到模糊纹理图。
实施例中,读取替换所用的纹理图并加载到内存,然后对内存中已经加载好的纹理图进行模糊处理,具体地可以采用类似高斯模糊的手段对纹理图进行模糊处理,得到模糊纹理图。
步骤3,依据预渲染图层对纹理图和模糊纹理图进行重采样后,对采样结果和预渲染图层进行合成处理,得到纹理替换图片。
实施例中,依据预渲染图层对纹理图和模糊纹理图进行重采样,包括:
根据图层uv_diffuse_filter对纹理图进行重采样,得到直接光纹理颜色值,具体地,利用图层uv_diffuse_filter中存放的uv值在纹理图中进行重采样,得到直接光纹理颜色值,公式表示为:direct_tex_color=sample2D(replace_texture,uv_diffuse_filter);其中,replace_texture表示替换的纹理图,sample2D()表示二维重采样操作,direct_tex_color表示直接光纹理颜色值;
根据图层uv_indirect和图层gray_indirect对纹理图进行重采样,得到镜中反射的纹理颜色值;具体地,利用图层uv_indirect除以图层gray_indirect得到镜面反射uv值,利用该镜面反射uv值在纹理图中进行重采样,得到镜中反射的纹理颜色值,公式表示为:indirect_tex_color=sample2D(replace_texture,uv_indirect/gray_indirect);其中,indirect_tex_color表示镜中反射的纹理颜色值;
需要说明的是,在计算镜中反射的纹理颜色值时,可以利用图层uv_indirect_unshadow和图层gray_indirect_unshadow替换图层uv_indirect和图层gray_indirect;然后根据图层uv_indirect_unshadow和图层gray_indirect_unshadow对纹理图进行重采样,包括:利用图层uv_indirect_unshadow除以图层gray_indirect_unshadow得到镜面反射uv值,利用该镜面反射uv值在纹理图中进行重采样,得到镜中反射的纹理颜色值,公式表示为:indirect_tex_color=sample2D(replace_texture,uv_indirect_unshadow/gray_indirect_unshadow)。
根据图层uv_diffuse_indirec和图层gray_diffuse_indirect对模糊纹理图进行采样,得到替换纹理后的漫反射间接光的纹理颜色值;具体地,利用图层uv_diffuse_indirec除以图层gray_diffuse_indirect得到漫反射uv值,利用该漫反射uv值在模糊纹理图中进行重采样,得到漫反射间接光的纹理颜色值,公式表示为:diffuse_influence_tex_color=sample2D(replace_texture_blur,uv_diffuse_indirect/gray_diffuse_indirect);其中,replace_texture_blur表示模糊纹理图,diffuse_influence_tex_color表示漫反射间接光的纹理颜色值。
需要注意的是,当当前可替换区域替换纹理后影响其他可替换区域的纹理颜色值时,还需要考虑其他可替换区域的当前纹理颜色值,具体地,针对当前可替换区域,将其他可替换区域的当前纹理颜色值与当前可替换区域的当前纹理颜色值相乘,以更新当前可替换区域的当前纹理颜色值。
实施例,在获得对重采样结果,即获得直接光纹理颜色值、镜中反射的纹理颜色值以及漫反射间接光的纹理颜色值后,对重采样结果和预渲染图层进行合成处理,得到纹理替换图片,具体包括:
在底色图层residual基础上,依次叠加直接光纹理颜色值对图层gray_indirect_all的修正结果、镜中反射的纹理颜色值对图层gray_indirect_all的修正结果、以及漫反射间接光的纹理颜色值对图层gray_diffuse_indirect。
在一种可能的实施方式中,采用以下公式进行对采样结果和预渲染图层进行合成处理:
纹理替换图片=底色图层residual+(direct_tex_color×图层gray_diffuse_all×α)+(indirect_tex_color×图层gray_indirect_all×β)+(diffuse_influence_tex_color×图层gray_diffuse_indirect×γ)
其中,α、β、γ均为调节因子,取值范围为大于0的实数,一般情况下全部为1,如果有特殊的需要,比如希望镜面反射效果更弱一些,可以将β取值大于0小于1,γ取值偏小则代表了最终图像上简介漫反射偏弱。direct_tex_color×图层gray_diffuse_all表示direct_tex_color×图层gray_diffuse_all的修正结果,indirect_tex_color×图层gray_indirect_all表示,indirect_tex_color对图层gray_indirect_all的修正结果,diffuse_influence_tex_color×图层gray_diffuse_indirect表示diffuse_influence_tex_color对图层gray_diffuse_indirect的修正结果。
实施例中,针对每个纹理替换区域的每个像素按照步骤3的方式轮流计算,以得到纹理替换图片,当纹理替换区域越大时,计算得到纹理替换图片的时间越多。
需要说明的是,步骤3计算纹理替换图片的过程,是将纹理替换拖的光场分为原始部分和叠加部分,其中,原始部分为图层residual,该图层residual包含了可替换材质区域的镜面反射信息,非可替换材质区域之间的漫反射及镜面反射,但不包括:可替换材质本身的漫反射直接光,可替换材质区域通过漫反射受到非可替换材质区域的光照,可替换材质区域之间的漫反射及镜面反射,非可替换材质区域受到可替换材质区域的漫反射及镜面反射,因此,需要在原始部分做加法,增加叠加部分。
叠加部分包括:可替换材质本身的漫反射直接光(包含于direct_tex_color*gray_diffuse_all*2.0);可替换材质区域通过漫反射受到非可替换材质区域的光照(包含于direct_tex_color*gray_diffuse_all*2.0);可替换材质区域之间的漫反射(包含于direct_tex_color*gray_diffuse_all*2.0以及diffuse_influence_tex_color*gray_diffuse_indirect*2.0);可替换材质区域之间的镜面反射(包含于indirect_tex_color*gray_indirect_all*2.0);非可替换材质区域通过镜面反射受到可替换材质区域的光照(包含于indirect_tex_color*gray_indirect_all*2.0);非可替换材质区域通过漫反射受到可替换材质区域的光照(包含于diffuse_influence_tex_color*gray_diffuse_indirect*2.0)。
上述实施例提供的图片物体纹理替换方法,具有预处理时间更短,效率更高的有益效果。其中,与处理时间是指在一个场景中支持可纹理替换区域后,需要预先离线渲染的耗时。试验验证,当决定采用最基础的算法(不包含uv_indirect_unshadow和gray_indirect_unshadow图层,并且忽略可替换材质间可能存在的漫反射重复计算问题)时所需的预渲染次数为N+2次。假设目标全景图大小为7500*1250,目标场景为单个浴室场景,经测试在32核2.6GHz机器上residual图层渲染到收敛大约3小时,其他图层需大约8小时(其他图层对收敛要求较高),单个机器渲染一共需要8*(N+1)+3小时。但由于这些图层是可以分布式渲染的,所以按照每台机器渲染一张图的话,总共用时8小时。即大大缩短了预处理时间,提高了效率。
上述实施例提供的图片物体纹理替换方法很好地还原了全局光照、镜面反射等效果,使得得到的问题替换图片真实感更强,保证了纹理替换图片质量,整个纹理替换过程采用逐像素加单加减乘除处理方式,可批量计算,处理速度快,提升了整个纹理替换的效率。
图4是一实施例提供的图片物体纹理替换装置的结构示意图。如图4所示,实施例提供的图片物体纹理替换装置,包括:
预渲染模块,用于对纹理替换区域进行预渲染,获得预渲染图层;
模糊处理模块,用于获取替换所用的纹理图并进行模糊处理,得到模糊纹理图;
合成处理模块,用于依据预渲染图层对纹理图和模糊纹理图进行重采样后,对采样结果和预渲染图层进行合成处理,得到纹理替换图片。
需要说明的是,上述实施例提供的图片物体纹理替换装置在进行图片物体纹理替换时,应以上述各功能模块的划分进行举例说明,可以根据需要将上述功能分配由不同的功能模块完成,即在终端或服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图片物体纹理替换装置与图片物体纹理替换方法实施例属于同一构思,其具体实现过程详见图片物体纹理替换方法实施例,这里不再赘述。
实施例还提供了一种计算机设备,存储器、处理器以及存储在存储器中并可在处理器上执行的计算机程序,处理器执行计算机程序时实现上述图片物体纹理替换方法,即实现如下步骤:
步骤1,对纹理替换区域进行预渲染,获得预渲染图层;
步骤2,获取替换所用的纹理图并进行模糊处理,得到模糊纹理图;
步骤3,依据预渲染图层对纹理图和模糊纹理图进行重采样后,对采样结果和预渲染图层进行合成处理,得到纹理替换图片。
实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理执行时实现权上述图片物体纹理替换方法,即实现如下步骤:
步骤1,对纹理替换区域进行预渲染,获得预渲染图层;
步骤2,获取替换所用的纹理图并进行模糊处理,得到模糊纹理图;
步骤3,依据预渲染图层对纹理图和模糊纹理图进行重采样后,对采样结果和预渲染图层进行合成处理,得到纹理替换图片。
需要说明的是,计算机存储器可以为在近端的易失性存储器,如RAM,还可以是非易失性存储器,如ROM,FLASH,软盘,机械硬盘等,还可以是远端的存储云。计算机处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA),即可以通过这些处理器实现图片物体纹理替换方法的步骤。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种图片物体纹理替换方法,其特征在于,包括以下步骤:
对纹理替换区域进行预渲染,获得预渲染图层;
获取替换所用的纹理图并进行模糊处理,得到模糊纹理图;
依据预渲染图层对纹理图和模糊纹理图进行重采样后,对采样结果和预渲染图层进行合成处理,得到纹理替换图片。
2.根据权利要求1所述的图片物理纹理替换方法,其特征在于,所述预渲染图层包括:可替换材质表面漫反射光照总值图层gray_diffuse_all;可替换材质表面被镜面反射部分的直接光图层gray_indirect;可替换材质表面被镜面反射的光照总值图层gray_indirect_all;可替换材质表面漫反射影响到其他部分的光照总值图层gray_diffuse_indirect;可替换材质表面被镜面反射的不带阴影的直接光部分图层gray_indirect_unshadow;可替换材质表面被镜面反射的uv直接光部分图层uv_indirect;可替换材质表面漫反射影响到其他部分的uv光照总值图层uv_diffuse_indirect;可替换材质表面被镜面反射的不带阴影的uv直接光部分图层uv_indirect_unshadow;可替换材质表面uv值图层uv_diffuse_filter;用于合成的底色图层residual。
3.根据权利要求2所述的图片物理纹理替换方法,其特征在于,所述预渲染图层的获取方式:
将所有可替换材质漫反射diffuse均调整为黑色时渲染一次,得到图层residual;
将所有可替换材质漫反射diffuse均调整为灰色时渲染一次,得到图层gray_diffuse_all,图层gray_indirect,图层gray_indirect_all,图层gray_diffuse_indirect;
将所有可替换材质漫反射diffuse均调整为灰色,且全局设置关闭阴影时渲染一次,得到图层gray_indirect_unshadow;
针对每个可替换材质,将每个可替换材质diffuse设置为抓取uv的开放式着色语言,其他可替换材质设置为灰色渲染一次,生成每个可替换材质对应的图层uv_indirect,图层uv_diffuse_indirect,图层uv_diffuse_filter;
将可替换材质diffuse通过开放式着色语言抓取uv,全局设置关闭阴影时渲染一次,得到图层uv_indirect_unshadow。
4.根据权利要求1所述的图片物理纹理替换方法,其特征在于,对纹理图进行高斯模糊处理,得到模糊纹理图。
5.根据权利要求2所述的图片物理纹理替换方法,其特征在于,所述依据预渲染图层对纹理图和模糊纹理图进行重采样,包括:
根据图层uv_diffuse_filter对纹理图进行重采样,得到直接光纹理颜色值;
根据图层uv_indirect和图层gray_indirect对纹理图进行重采样,得到镜中反射的纹理颜色值;
根据图层uv_diffuse_indirect和图层gray_diffuse_indirect对模糊纹理图进行采样,得到替换纹理后的漫反射间接光的纹理颜色值。
6.根据权利要求5所述的图片物理纹理替换方法,其特征在于,所述根据图层uv_diffuse_filter对替换纹理数据进行重采样,包括:利用图层uv_diffuse_filter中存放的uv值在纹理图中进行重采样,得到直接光纹理颜色值;
所述根据图层uv_indirect和图层gray_indirect对纹理图进行重采样,包括:利用图层uv_indirect除以图层gray_indirect得到镜面反射uv值,利用该镜面反射uv值在纹理图中进行重采样,得到镜中反射的纹理颜色值;
所述图层uv_diffuse_indirect和图层gray_diffuse_indirect对模糊纹理图进行采样,包括:利用图层uv_diffuse_indirect除以图层gray_diffuse_indirect得到漫反射uv值,利用该漫反射uv值在模糊纹理图中进行重采样,得到漫反射间接光的纹理颜色值。
7.根据权利要求5或6所述的图片物理纹理替换方法,其特征在于,利用图层uv_indirect_unshadow和图层gray_indirect_unshadow替换图层uv_indirect和图层gray_indirect;然后根据图层uv_indirect_unshadow和图层gray_indirect_unshadow对纹理图进行重采样,包括:利用图层uv_indirect_unshadow除以图层gray_indirect_unshadow得到镜面反射uv值,利用该镜面反射uv值在纹理图中进行重采样,得到镜中反射的纹理颜色值。
8.根据权利要求5或6所述的图片物理纹理替换方法,其特征在于,在计算替换纹理后的漫反射间接光的纹理颜色值时,当当前可替换区域替换纹理后影响其他可替换区域的纹理颜色值时,还需要考虑其他可替换区域的当前纹理颜色值,具体地,针对当前可替换区域,将其他可替换区域的当前纹理颜色值与当前可替换区域的当前纹理颜色值相乘,以更新当前可替换区域的当前纹理颜色值。
9.根据权利要求5或6所述的图片物理纹理替换方法,其特征在于,所述对采样结果和预渲染图层进行合成处理,包括:
在底色图层residual基础上,依次叠加直接光纹理颜色值对图层gray_indirect_all的修正结果、镜中反射的纹理颜色值对图层gray_indirect_all的修正结果、以及漫反射间接光的纹理颜色值对图层gray_diffuse_indirect。
10.根据权利要求9所述的图片物理纹理替换方法,其特征在于,所采用以下公式进行对采样结果和预渲染图层进行合成处理:
纹理替换图片=底色图层residual+(direct_tex_color×图层gray_diffuse_all×α)+(indirect_tex_color×图层gray_indirect_all×β)+(diffuse_influence_tex_color×图层gray_diffuse_indirect×γ)
其中,direct_tex_color表示直接光纹理颜色值,indirect_tex_color表示镜中反射的纹理颜色值,diffuse_influence_tex_color表示漫反射间接光的纹理颜色值,α、β、γ均为调节因子,取值范围为大于0的是实数。
11.一种图片物体纹理替换装置,其特征在于,包括:
预渲染模块,用于对纹理替换区域进行预渲染,获得预渲染图层;
模糊处理模块,用于获取替换所用的纹理图并进行模糊处理,得到模糊纹理图;
合成处理模块,用于依据预渲染图层对纹理图和模糊纹理图进行重采样后,对采样结果和预渲染图层进行合成处理,得到纹理替换图片。
12.一种计算机设备,存储器、处理器以及存储在所述存储器中并可在所述处理器上执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-10任一项所述的图片物体纹理替换方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理执行时实现权利要求1-10任一项所述的图片物体纹理替换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111598978.9A CN114241076A (zh) | 2021-12-24 | 2021-12-24 | 图片物体纹理替换方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111598978.9A CN114241076A (zh) | 2021-12-24 | 2021-12-24 | 图片物体纹理替换方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114241076A true CN114241076A (zh) | 2022-03-25 |
Family
ID=80762649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111598978.9A Pending CN114241076A (zh) | 2021-12-24 | 2021-12-24 | 图片物体纹理替换方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114241076A (zh) |
-
2021
- 2021-12-24 CN CN202111598978.9A patent/CN114241076A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zheng et al. | Ultra-high-definition image dehazing via multi-guided bilateral learning | |
Engin et al. | Cycle-dehaze: Enhanced cyclegan for single image dehazing | |
Callieri et al. | Masked photo blending: Mapping dense photographic data set on high-resolution sampled 3D models | |
Jiang et al. | Ssh: A self-supervised framework for image harmonization | |
CN112802173B (zh) | 用于在渲染图像中使用的可重新照明纹理 | |
CN111243071A (zh) | 实时三维人体重建的纹理渲染方法、系统、芯片、设备和介质 | |
Wang et al. | Deeplens: Shallow depth of field from a single image | |
US7538779B2 (en) | Method of rendering pixel images from abstract datasets | |
US7742060B2 (en) | Sampling methods suited for graphics hardware acceleration | |
CN107330964B (zh) | 一种复杂三维物体的显示方法及系统 | |
GB2526838A (en) | Relightable texture for use in rendering an image | |
CN112652046B (zh) | 游戏画面的生成方法、装置、设备及存储介质 | |
WO2021226862A1 (en) | Neural opacity point cloud | |
CN113781621A (zh) | 三维重建处理的方法、装置、设备及存储介质 | |
CN108197555B (zh) | 一种基于人脸追踪的实时人脸融合方法 | |
Ikehata | Scalable, detailed and mask-free universal photometric stereo | |
Chang et al. | UIDEF: A real-world underwater image dataset and a color-contrast complementary image enhancement framework | |
Wang et al. | Neural opacity point cloud | |
CN116824070B (zh) | 一种基于深度图像的实时三维重建方法及系统 | |
EP3937120B1 (en) | Computer-implemented method, computer program product and system for processing images | |
CN111882498A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
Zhao et al. | Real-time edge-aware weighted median filtering on the GPU | |
CN114241076A (zh) | 图片物体纹理替换方法、装置、计算机设备和存储介质 | |
Iourcha et al. | A directionally adaptive edge anti-aliasing filter | |
Güssefeld et al. | Are reflectance field renderings appropriate for optical flow evaluation? |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |