CN109685876B - 毛发渲染方法、装置、电子设备及存储介质 - Google Patents

毛发渲染方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN109685876B
CN109685876B CN201811573130.9A CN201811573130A CN109685876B CN 109685876 B CN109685876 B CN 109685876B CN 201811573130 A CN201811573130 A CN 201811573130A CN 109685876 B CN109685876 B CN 109685876B
Authority
CN
China
Prior art keywords
hair
section
initial
rendering
model
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.)
Active
Application number
CN201811573130.9A
Other languages
English (en)
Other versions
CN109685876A (zh
Inventor
张雪松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN201811573130.9A priority Critical patent/CN109685876B/zh
Publication of CN109685876A publication Critical patent/CN109685876A/zh
Priority to PCT/CN2019/127225 priority patent/WO2020125785A1/zh
Priority to US17/257,285 priority patent/US11393154B2/en
Application granted granted Critical
Publication of CN109685876B publication Critical patent/CN109685876B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Abstract

本申请是关于一种毛发渲染方法、装置、电子设备及存储介质,属于计算机图形技术领域。所述方法包括:获取多个初始剖面,该多个初始剖面用于模拟毛发生长的横截面;按照毛发分布密度依次减小的规则,在该多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面;通过预设光照模型,在待绘制毛发的三维模型上对该多个毛发剖面依次进行渲染,得到目标三维模型,该预设光照模型用于模拟毛发的光照效果。本申请能够提供一种简单高效的毛发渲染方法,提高了毛发渲染效率,对渲染设备的性能要求较低。

Description

毛发渲染方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机图形技术领域,尤其涉及一种毛发渲染方法、装置、电子设备及存储介质。
背景技术
随着计算机图形学技术的飞速发展,虚拟对象越来越多的被应用到电影、游戏和动画的制作当中。为了实现虚拟对象的真实感,需要一些关键技术,如骨骼动画、表情神态以及头发模拟等,而头发模拟一直是图形学领域非常具有挑战性的重要问题。毛发渲染是指为虚拟对象绘制毛发,实现毛发的仿真模拟,对于提升虚拟对象的真实感具有重要作用。
相关技术中,提供了一种毛发渲染方法,包括:对于待绘制毛发的三维模型,为该三维模型的每根毛发进行精细化的几何建模,得到每根毛发的几何模型,然后根据每根毛发的几何模型和预设光照模型,分别对每根毛发进行渲染,得到绘制毛发后的三维模型。其中,该预设光照模型用于模拟毛发的光照效果,也即是,用来确定物体表面上的一个点在光照环境下的颜色值。
但是,相关技术中由于需要精细地构建每根毛发的几何模型,且需要对每根毛发分别进行渲染,因此毛发渲染效率较低,对渲染设备的性能要求较高。
发明内容
本申请提供了一种毛发渲染方法、装置、电子设备及存储介质,能够克服相关技术中存在的毛发渲染效率较低,对渲染设备的性能要求较高的问题。
根据本申请实施例的第一方面,提供了一种毛发渲染方法,所述方法包括:
获取多个初始剖面,所述多个初始剖面用于模拟毛发生长的横截面;
按照毛发分布密度依次减小的规则,在所述多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面;
通过预设光照模型,在待绘制毛发的三维模型上对所述多个毛发剖面依次进行渲染,得到目标三维模型,所述预设光照模型用于模拟毛发的光照效果。
可选地,所述按照毛发分布密度依次减小的规则,在所述多个初始剖面中的每个初始剖面上确定毛发分布点,包括:
按照第一毛发分布密度,对第一初始剖面中的像素点进行采样,得到多个第一采样点,将所述多个第一采样点标记为毛发分布点,得到所述第一初始剖面对应的毛发剖面,所述第一初始剖面为所述多个初始剖面中的第一个初始剖面;
按照第二毛发分布密度,对第二初始剖面的前一个毛发剖面的毛发分布点进行采样,得到多个第二采样点,根据所述多个第二采样点在所述第二初始剖面上标记毛发分布点,得到所述第二初始剖面对应的毛发剖面,所述第二毛发分布密度小于所述前一个毛发剖面的毛发分布密度,所述第二初始剖面为所述第一个初始剖面之后的任一初始剖面。
可选地,所述根据所述多个第二采样点在所述第二初始剖面上标记毛发分布点,包括:
将所述多个第二采样点在所述第二初始剖面上的映射点,标记为毛发分布点;或者,
按照预设偏移规则,对所述多个第二采样点进行位置偏移,将位置偏移后的所述多个第二采样点在所述第二初始剖面上的映射点,标记为毛发分布点。
可选地,所述对第一初始剖面中的像素点进行采样,包括:
对所述第一初始剖面中的像素点进行泊松采样;
所述对第二初始剖面的前一个毛发剖面的毛发分布点进行采样,包括:
对所述第二初始剖面的前一个毛发剖面的毛发分布点进行随机采样。
可选地,所述通过预设光照模型,在待绘制毛发的三维模型上对所述多个毛发剖面依次进行渲染,包括:
基于每个毛发剖面的毛发分布点,将所述每个毛发剖面沿着毛发生长方向进行延伸,得到所述每个毛发剖面的几何模型;
通过所述预设光照模型,在所述三维模型上对所述多个毛发剖面的几何模型依次进行渲染。
可选地,所述通过所述预设光照模型,在所述三维模型上对所述多个毛发剖面的几何模型依次进行渲染,包括:
调用渲染接口,通过所述渲染接口,将所述多个毛发剖面的几何模型,依次叠加在所述三维模型的外表面;
在依次叠加每个毛发剖面的几何模型的过程中,通过所述预设光照模型,确定所述每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对所述每个毛发剖面的几何模型进行着色。
可选地,所述通过所述预设光照模型,在所述三维模型上对所述多个毛发剖面的几何模型依次进行渲染,包括:
对所述多个毛发剖面的几何模型依次进行组合;
调用渲染接口,通过所述渲染接口,将组合后的几何模型叠加在所述三维模型的外表面;
在将组合后的几何模型叠加在所述三维模型的外表面的过程中,通过所述预设光照模型,确定每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对所述每个毛发剖面的几何模型进行着色。
可选地,所述根据确定的第一颜色值对所述每个毛发剖面的几何模型进行着色,包括:
对于第一毛发剖面,根据确定的第一颜色值和预设阴影值,确定第二颜色值,按照确定的第二颜色值对所述第一毛发剖面的几何模型进行着色,所述第一毛发剖面为所述多个毛发剖面中的第一个毛发剖面;
对于第二毛发剖面,根据确定的第一颜色值和目标阴影值,确定第三颜色值,按照确定的第三颜色值对所述第二毛发剖面的几何模型进行着色,所述目标阴影值小于所述第二毛发剖面的上一个毛发剖面的阴影值,所述第二毛发剖面为所述第一个毛发剖面之后的任一毛发剖面。
根据本申请实施例的第二方面,提供了一种毛发渲染装置,所述装置包括:
获取模块,用于获取多个初始剖面,所述多个初始剖面用于模拟毛发生长的横截面;
确定模块,用于按照毛发分布密度依次减小的规则,在所述多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面;
渲染模块,用于通过预设光照模型,在待绘制毛发的三维模型上对所述多个毛发剖面依次进行渲染,得到目标三维模型,所述预设光照模型用于模拟毛发的光照效果。
可选地,所述确定模块包括:
第一采样单元,用于按照第一毛发分布密度,对第一初始剖面中的像素点进行采样,得到多个第一采样点,将所述多个第一采样点标记为毛发分布点,得到所述第一初始剖面对应的毛发剖面,所述第一初始剖面为所述多个初始剖面中的第一个初始剖面;
第二采样单元,用于按照第二毛发分布密度,对第二初始剖面的前一个毛发剖面的毛发分布点进行采样,得到多个第二采样点,根据所述多个第二采样点在所述第二初始剖面上标记毛发分布点,得到所述第二初始剖面对应的毛发剖面,所述第二毛发分布密度小于所述前一个毛发剖面的毛发分布密度,所述第二初始剖面为所述第一个初始剖面之后的任一初始剖面。
可选地,所述第二采样单元具体用于:
将所述多个第二采样点在所述第二初始剖面上的映射点,标记为毛发分布点;或者,
按照预设偏移规则,对所述多个第二采样点进行位置偏移,将位置偏移后的所述多个第二采样点在所述第二初始剖面上的映射点,标记为毛发分布点。
可选地,所述第一采样单元用于:
对所述第一初始剖面中的像素点进行泊松采样;
所述第二采样单元用于:
对所述第二初始剖面的前一个毛发剖面的毛发分布点进行随机采样。
可选地,所述渲染模块包括:
建模单元,用于基于每个毛发剖面的毛发分布点,将所述每个毛发剖面沿着毛发生长方向进行延伸,得到所述每个毛发剖面的几何模型;
渲染单元,用于通过所述预设光照模型,在所述三维模型上对所述多个毛发剖面的几何模型依次进行渲染。
可选地,所述渲染单元具体用于:
调用渲染接口,通过所述渲染接口,将所述多个毛发剖面的几何模型,依次叠加在所述三维模型的外表面;
在依次叠加每个毛发剖面的几何模型的过程中,通过所述预设光照模型,确定所述每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对所述每个毛发剖面的几何模型进行着色。
可选地,所述渲染单元具体用于:
对所述多个毛发剖面的几何模型依次进行组合;
调用渲染接口,通过所述渲染接口,将组合后的几何模型叠加在所述三维模型的外表面;
在将组合后的几何模型叠加在所述三维模型的外表面的过程中,通过所述预设光照模型,确定每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对所述每个毛发剖面的几何模型进行着色。
可选地,所述渲染单元具体用于:
对于第一毛发剖面,根据确定的第一颜色值和预设阴影值,确定第二颜色值,按照确定的第二颜色值对所述第一毛发剖面的几何模型进行着色,所述第一毛发剖面为所述多个毛发剖面中的第一个毛发剖面;
对于第二毛发剖面,根据确定的第一颜色值和目标阴影值,确定第三颜色值,按照确定的第三颜色值对所述第二毛发剖面的几何模型进行着色,所述目标阴影值小于所述第二毛发剖面的上一个毛发剖面的阴影值,所述第二毛发剖面为所述第一个毛发剖面之后的任一毛发剖面。
根据本申请实施例的第三方面,提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取多个初始剖面,所述多个初始剖面用于模拟毛发生长的横截面;
按照毛发分布密度依次减小的规则,在所述多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面;
通过预设光照模型,在待绘制毛发的三维模型上对所述多个毛发剖面依次进行渲染,得到目标三维模型,所述预设光照模型用于模拟毛发的光照效果。
根据本申请实施例的第四方面,提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由计算机的处理器执行时,使得计算机能够执行一种毛发渲染方法,所述方法包括:
获取多个初始剖面,所述多个初始剖面用于模拟毛发生长的横截面;
按照毛发分布密度依次减小的规则,在所述多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面;
通过预设光照模型,在待绘制毛发的三维模型上对所述多个毛发剖面依次进行渲染,得到目标三维模型,所述预设光照模型用于模拟毛发的光照效果。
根据本申请实施例的第五方面,提供一种计算机程序产品,其在计算机上运行时,使得计算机执行一种毛发渲染方法,所述方法包括:
获取多个初始剖面,所述多个初始剖面用于模拟毛发生长的横截面;
按照毛发分布密度依次减小的规则,在所述多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面;
通过预设光照模型,在待绘制毛发的三维模型上对所述多个毛发剖面依次进行渲染,得到目标三维模型,所述预设光照模型用于模拟毛发的光照效果。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请实施例中,通过获取用于模拟毛发生长的横截面的多个初始剖面,然后按照毛发分布密度依次减小的规则,在多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面,再通过预设光照模型,在待绘制毛发的三维模型上对该多个毛发剖面依次进行渲染,实现了先生成多重毛发剖面的毛发分布图,然后根据每个毛发剖面的毛发分布图,对每个毛发剖面中的毛发统一进行渲染的效果,相对于根据每根毛发的几何模型,对每根毛发分别进行渲染的方式,本申请的渲染方式简单高效,提高了毛发渲染效率,对渲染设备的性能要求较低。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请实施例提供的一种电子设备的示意图。
图2是本申请实施例提供的一种毛发渲染方法的流程图。
图3是本申请实施例提供的一种三维模型的毛发渲染示意图。
图4是本申请实施例提供的另一种三维模型的毛发渲染示意图。
图5是本申请实施例提供的又一种三维模型的毛发渲染示意图。
图6是本申请实施例提供的一种毛发渲染装置的结构框图。
图7是本申请实施例提供的一种电子设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在对本申请实施例进行详细说明之前,先对本申请实施例的应用场景予以说明。
本申请实施例提供的毛发渲染方法可以应用于电影、动画、游戏、VR(VirtualReality,虚拟现实)或AR(Augmented Reality,增强现实)等计算机图形处理场景中,具体应用于对虚拟对象的毛发进行绘制的场景中,以对虚拟对象的毛发进行模拟,增加虚拟对象的真实感。其中,该虚拟对象通常为人、动物或仿生生物等。
例如,在动画制作场景中,在绘制完成一只动物的三维模型之后,可以通过本申请实施例提供的毛发渲染方法,对该三维模型的毛发进行绘制,从而模拟出该动物的毛发。
对于用户而言,电子设备进行毛发渲染的低延时、高效率是保证良好用户体验的必备条件。例如,如果采用对每根毛发进行几何建模,然后对每根毛发分别进行渲染的方案,由于每个生物上基本上都有成千上百万根毛发,因此也就需要进行成千上百万次建模和渲染操作,操作较为复杂,严重影响电子设备的渲染效率,导致用户体验较差,而且,对电子设备的硬件性能要求也较高。而本申请实施例则可以提供一种简易高效的毛发渲染方法,对电子设备的硬件性能要求较低,能够适用于硬件性能较低的电子设备中,且能够满足电子设备的实时渲染需求。
接下来,对本申请实施例的实施环境进行介绍。
本申请实施例提供的毛发渲染方法应用于具有图像处理功能的电子设备中,该电子设备可以为手机、平板电脑、便携式电脑、台式电脑或可穿戴设备等,也可以为集成有图像处理功能的VR或AR设备等。
图1是本申请实施例提供的一种电子设备的示意图,如图1所示,该电子设备包括CPU(Central Processing Unit,中央处理器)10和GPU(Graphics Processing Unit,图形处理器)20。其中,CPU10用于进行渲染前的预处理,比如,用于生成多个毛发剖面的毛发分布图;GPU用于进行图像渲染,比如,能够基于每个毛发剖面的毛发分布位置,通过光照模型对多个毛发剖面依次进行渲染。
接下来,对本申请实施例提供的毛发渲染方法进行详细介绍。
图2是本申请实施例提供的一种毛发渲染方法的流程图,该方法应用于具有图像处理功能的电子设备中,如图1所示,该方法包括如下步骤:
在步骤201中,获取多个初始剖面,该多个初始剖面用于模拟毛发生长的横截面。
也即是,在对待绘制毛发的三维模型进行渲染之前,可以先构建多个初始剖面,以用来模拟毛发生长的各个横截面。
其中,该多个初始剖面是按照毛发生长方向顺序排列的,即从发根到发梢的方向依次排列的,用于模拟与毛发生长方向相垂直的毛发的横截面。也即是,第一个初始剖面用于模拟发根位置的横截面,最后一个初始剖面用于模拟发梢位置的横截面。
需要说明的是,这多个初始剖面的具体数目可以可以由技术人员预先设置,可以由用户设置,也可以根据待绘制毛发的三维模型的毛发渲染精度确定,本申请实施例对此不做限定。例如,该多个初始剖面的数目可以为3、5、9或10等,本申请实施例不再一一举例。示例的,假设该多个初始剖面的数目为9,则可以可以获取按照毛发生长方向排列的9个初始剖面。
另外,该多个初始剖面中相邻两个初始剖面之间的距离可以相等,也可以不相等。例如,可以每隔相等距离,构建一个初始剖面。或者,这多个初始剖面之间的距离也可以依次减小或者依次增大。
在步骤202中,按照毛发分布密度依次减小的规则,在该多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面。
也即是,可以在每个初始剖面上选取某些位置点作为毛发分布点,从而模拟毛发的分布,将每个初始剖面转换为具有毛发分布点的毛发剖面。每个毛发剖面的毛发分布点能够指示每个毛发剖面上哪些位置分布有毛发,哪些位置没有毛发,而且,可以指示毛发的分布密度。
本申请实施例中,通过按照毛发分布密度依次减小的规则,确定多个毛发剖面,可以使得该多个毛发剖面的毛发分布密度和不透明度由内向外逐渐减小,从而模拟出发根稠密、透光度小,发尾稀疏、透光度大的真实毛发生长效果。
具体地,按照毛发分布密度依次减小的规则,在该多个初始剖面中的每个初始剖面上确定毛发分布点的操作包括:按照第一毛发分布密度,对第一初始剖面中的像素点进行采样,得到多个第一采样点,将该多个第一采样点标记为毛发分布点,得到第一初始剖面对应的毛发剖面;按照第二毛发分布密度,对第二初始剖面的前一个毛发剖面的毛发分布点进行采样,得到多个第二采样点,根据多个第二采样点在第二初始剖面上标记毛发分布点,得到第二初始剖面对应的毛发剖面。
其中,第一初始剖面为该多个初始剖面的第一个初始剖面,第二初始剖面为第一个初始剖面之后的任一初始剖面,第二毛发分布密度小于前一个毛发剖面的毛发分布密度。且第一毛发分布密度可以由技术人员预先设置,可以由用户设置,也可以根据待绘制毛发的三维模型的毛发渲染精度确定,本申请实施例对此不做限定。第二初始剖面的前一个毛发剖面是指第二初始剖面的前一个初始剖面对应的毛发剖面。
也即是,对于第一个初始剖面,可以对第一个初始剖面中的像素点进行采样,将采样点作为对应毛发剖面的毛发分布点。对于第一个初始剖面之后的任一初始剖面,则从该初始剖面的前一个毛发剖面的毛发分布点中进行采样,根据采样点确定对应毛发剖面的毛发分布点,并保证对应毛发剖面的毛发分布密度小于前一个毛发剖面的毛发分布密度。
其中,对第一初始剖面中的像素点进行采样,以及对第二初始剖面的前一个毛发剖面的毛发分布点进行采样的采样方式可以采取随机采样或泊松采样等方式。通过对第一初始剖面中的像素点进行泊松采样,可以保证对应毛发剖面的毛发分布点满足泊松分布。由于泊松分布适合描述单位空间内随机事件发生的次数,因此,能够较为真实地模拟对应毛发剖面中的毛发分布点。
其中,对采用点进行标记可以采用颜色标记或位置标记等方式。比如,对采样点用特定颜色进行标记,以与其他位置点进行区分。
可选地,可以对第一初始剖面中的像素点进行泊松采样,对第二初始剖面的前一个毛发剖面的毛发分布点进行随机采样。
具体地,根据多个第二采样点在第二初始剖面上标记毛发分布点的操作包括以下两种实现方式:
第一种实现方式:将多个第二采样点在第二初始剖面上的映射点,标记为毛发分布点。
也即是,可以将该第二采样点映射在第二初始剖面上,以将第二初始剖面上与该多个第二采样点位于相同位置的位置点标记为毛发分布点,
第二种实现方式:按照预设偏移规则,对多个第二采样点进行位置偏移,将位置偏移后的多个第二采样点在第二初始剖面上的映射点,标记为毛发分布点。
在该实现方式中,通过对第二毛发剖面上的毛发分布点施加偏移,可以模拟毛发的姿态和摆动,比如,可以真实模拟毛发的随风摆动。
其中,该预设偏移规则可以预先设置,也可以根据实际需要进行设置。具体地,该预设偏移规则可以包括偏移方向和偏移量,以使第二毛发剖面的毛发分布点相对于上一个毛发剖面上相同位置的毛发分布点,按照该偏移方向和偏移量进行偏移。
在步骤203中,通过预设光照模型,在待绘制毛发的三维模型上对该多个毛发剖面依次进行渲染,得到目标三维模型,该预设光照模型用于模拟毛发的光照效果。
其中,待绘制的三维模型为虚拟对象的三维模型,该虚拟对象可以为人、动物或仿生生物等的虚拟形象,该仿生生物可以为机器人、玩偶或其他自创生物等。例如,该三维模型可以为电影中的一个虚拟角色的三维模型,如狼人或大猩猩等。目标三维模型为绘制毛发后的三维模型。
其中,光照模型也称明暗模型,用于计算物体某点处的光强(颜色值)。该预设光照模型用于根据特定光照算法,计算每个毛发剖面上的毛发分布点在光照环境下的颜色值,进而可以模拟毛发在真实光照环境下的光照效果,提高毛发的真实感。
该预设光照模型可以预先设置。示例的,该预设光照模型可以为Lambert光照模型(一种漫反射模型)、Phong光照模型(一种镜面反射模型)、Blinn-Phong光照模型(一种修正镜面光反射模型)、Rendering Equation光照模型(一种全局光照模型)、Kajiya光照模型(一种各向异性反射模型)或Kajiya-Kay光照模型(一种经典毛发光照模型)。
其中,Kajiya光照模型和Kajiya-Kay光照模型是根据电磁波理论推导出来的模型,反映了各向异性表面的反射和折射,能够更为真实地模拟毛发的光照效果。
具体地,通过预设光照模型,在待绘制毛发的三维模型上对该多个毛发剖面依次进行渲染的操作包括:基于每个毛发剖面的毛发分布点,将每个毛发剖面沿着毛发生长方向进行延伸,得到每个毛发剖面的几何模型;通过预设光照模型,在该三维模型上对该多个毛发剖面的几何模型依次进行渲染。
也即是,可以先构建每个毛发剖面的几何模型,然后结合每个毛发剖面的几何模型和预设光照模型,对每个毛发剖面上的毛发统一进行渲染。如此,一次可以完成一个毛发剖面或多个毛发剖面的渲染,渲染效率较高。
具体地,基于每个毛发剖面的毛发分布点,将每个毛发剖面沿着毛发生长方向进行延伸时,可以将每个毛发剖面的毛发分布点,沿着毛发生长方向进行延伸,得到每个毛发剖面的几何模型。或者,也可以根据每个毛发剖面上毛发分布点的标记位置,将每个毛发剖面沿着毛发生长方向进行延伸,这样,即可将毛发分布点进行延伸,也可以将非毛发分布点进行延伸,且毛发分布点的延伸具有明显标记,可以与非毛发分布点进行区别。
通过预设光照模型,对该多个毛发剖面的几何模型依次进行渲染是指通过预设光照模型,对每个毛发剖面的毛发分布点作光照计算,得到每个毛发分布点在光照环境下的颜色值,然后根据得到的颜色值对每个毛发剖面进行着色。
需要说明的是,上述步骤201、步骤202以及步骤203中构建每个毛发剖面的几何模型的操作可以由电子设备的CPU执行,而步骤203中通过预设光照模型,对多个毛发剖面的几何模型依次进行渲染的操作可以由电子设备的GPU执行。例如,在通过CPU预处理得到每个毛发剖面的几何模型之后,可以将每个毛发剖面的几何模型发送给GPU,由GPU通过预设光照模型,对该多个毛发剖面的几何模型依次进行渲染。
具体地,通过预设光照模型,在待绘制毛发的三维模型上对该多个毛发剖面依次进行渲染的操作包括以下两种实现方式:
第一种实现方式:调用渲染接口,通过该渲染接口,将多个毛发剖面的几何模型,依次叠加在该三维模型的外表面;在依次叠加每个毛发剖面的几何模型的过程中,通过该预设光照模型,确定每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对每个毛发剖面的几何模型进行着色。
其中,该渲染接口是用来绘制三维场景的接口。示例的,该渲染接口为OpenGL(Open Graphics Library,开放图形库)。OpenGL是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口,用于从简单的图形比特绘制复杂的三维景象。
在第一种实现方式中,可以调用渲染接口,依次对该多个毛发剖面的几何模型进行渲染,即将多个毛发剖面依次贴图在该三维模型的外表面。而且,在依次叠加该多个毛发剖面的几何模型的过程中,每叠加一个毛发剖面,即会通过预设光照模型对该毛发剖面的几何模型进行光照计算和着色。也即是,毛发剖面的叠加和光照处理可以同时进行。
另外,在对该多个毛发剖面的几何模型进行渲染的过程中,在完成一个毛发剖面的渲染之后,还可以将渲染结果与上一个毛发剖面的渲染结果进行融混,使得多个毛发剖面的不透明度依次减小。
请参考图3-图5,假设待绘制毛发的三维模型是一只猫的三维模型,且预先处理得到3个毛发剖面的毛发分布,并确定得到这3个毛发剖面的几何模型,则可以依次将这3个毛发剖面的几何模型叠加在该三维模型的外表面,且在依次叠加每个毛发剖面的几何模型的过程中,通过预设光照模型,对每个毛发剖面的几何模型进行着色。
例如,将第一个毛发剖面的几何模型叠加在该三维模型的外表面,并通过该预设光照模型对第一个毛发剖面的几何模型进行光照处理,可以得到图3所示的毛发渲染示意图。之后,再将第二个毛发剖面的几何模型叠加在第一个毛发剖面的外表面,并通过该预设光照模型对第二个毛发剖面的几何模型进行光照处理,可以得到图4所示的毛发渲染示意图。之后,再将第三个毛发剖面的几何模型叠加在第二个毛发剖面的外表面,并通过该预设光照模型对第三个毛发剖面的几何模型进行光照处理,可以得到图5所示的毛发渲染示意图。
第二种实现方式:对该多个毛发剖面的几何模型依次进行组合;调用渲染接口,通过该渲染接口,将组合后的几何模型叠加在该三维模型的外表面;在将组合后的几何模型叠加在该三维模型的外表面的过程中,通过该预设光照模型,确定每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对每个毛发剖面的几何模型进行着色。
也即是,在第二种实现方式中,可以先对该多个毛发剖面的几何模型,按照毛发生长方向由内向外的顺序依次进行组合,基按照由内而外的顺序组织所有毛发剖面的渲染信息,然后再调用渲染接口对组合后的渲染信息进行渲染。如此,可以压缩渲染的几何信息,减少渲染的提交次数,进一步提高渲染效率。
具体地,根据确定的第一颜色值对每个毛发剖面的几何模型进行着色包括以下两种实现方式:
第一种实现方式:按照确定的第一颜色值,对每个毛发剖面的几何模型进行着色。
也即是,可以直接根据通过预设光照模型进行光照计算得到的颜色值,对毛发剖面进行着色,使得绘制的毛发满足光照效果。
第二种实现方式:对于第一毛发剖面,根据确定的第一颜色值和预设阴影值,确定第二颜色值,按照确定的第二颜色值对第一毛发剖面的几何模型进行着色;对于第二毛发剖面,根据确定的第一颜色值和目标阴影值,确定第三颜色值,按照确定的第三颜色值对第一个毛发剖面的几何模型进行着色。
其中,第一毛发剖面为该多个毛发剖面中的第一个毛发剖面,第二毛发剖面为第一个毛发剖面之后的任一毛发剖面。该预设阴影值为第一个毛发剖面的阴影值,且该预设阴影值可以由技术人员预先设置,可以由用户设置,也可以根据具体的三维模型和三维场景进行设置,本申请实施例对此不做限定。目标阴影值为第二毛发剖面的阴影值,且目标阴影值小于第二毛发剖面的上一个毛发剖面的阴影值。
本申请实施例中,通过将第二毛发剖面的阴影值设置为小于上一个毛发剖面的阴影值,即逐层减小该多个毛发剖面的阴影值,可以使得从发根到发梢的阴影效果逐层递减,从而可以真实模拟毛发间的音乐效果,进一步提高了毛发的真实感。
其中,根据确定的第一颜色值和预设阴影值,确定第二颜色值是指在确定的光照效果的基础上叠加阴影效果,确定叠加阴影效果后毛发的颜色值。
具体地,对于第一毛发剖面,可以计算1与预设阴影值的差值,将该差值与该第一颜色值进行相乘,得到第二颜色值。例如,第二颜色值=第一颜色值*(1-预设阴影值)。示例的,假设第一颜色值为200,预设阴影值为0.2,则第二颜色值=200*(1-0.2)=160。
相应地,对于第二毛发剖面,可以计算1与目标阴影值的差值,将该差值与该第一颜色值进行相乘,得到第三颜色值。例如,第三颜色值=第一颜色值*(1-目标阴影值)。示例的,假设第一颜色值为200,目标阴影值为0.1,则第二颜色值=200*(1-0.1)=180。
另外,在通过预设光照模型,对每个毛发剖面依次进行渲染的过程中,在完成一个毛发剖面的渲染之后,还可以将渲染结果与上一个毛发剖面的渲染结果进行融混,使得多个毛发剖面的不透明度依次减小。
本申请实施例中,通过获取用于模拟毛发生长的横截面的多个初始剖面,然后按照毛发分布密度依次减小的规则,在多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面,再通过预设光照模型,在待绘制毛发的三维模型上对该多个毛发剖面依次进行渲染,实现了先生成多重毛发剖面的毛发分布图,然后根据每个毛发剖面的毛发分布图,对每个毛发剖面中的毛发统一进行渲染的效果,相对于根据每根毛发的几何模型,对每根毛发分别进行渲染的方式,本申请的渲染方式简单高效,提高了毛发渲染效率,对渲染设备的性能要求较低。
另外,通过按照毛发分布密度依次减小的规则,确定多个毛发剖面,可以使得多个毛发剖面的毛发分布密度和不透明度由内而外逐渐较小,从而模拟出毛发从发根到发梢的毛发密度和不透明度逐渐减小的效果,提高毛发的真实感。
图6是本申请实施例提供的一种毛发渲染装置的结构框图,参照图6,该装置包括获取模块601,确定模块602和渲染模块603。
获取模块601,用于获取多个初始剖面,该多个初始剖面用于模拟毛发生长的横截面;
确定模块602,用于按照毛发分布密度依次减小的规则,在该多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面;
渲染模块603,用于通过预设光照模型,在待绘制毛发的三维模型上对该多个毛发剖面依次进行渲染,得到目标三维模型,该预设光照模型用于模拟毛发的光照效果。
可选地,该确定模块602包括:
第一采样单元,用于按照第一毛发分布密度,对第一初始剖面中的像素点进行采样,得到多个第一采样点,将该多个第一采样点标记为毛发分布点,得到该第一初始剖面对应的毛发剖面,该第一初始剖面为该多个初始剖面中的第一个初始剖面;
第二采样单元,用于按照第二毛发分布密度,对第二初始剖面的前一个毛发剖面的毛发分布点进行采样,得到多个第二采样点,根据该多个第二采样点在该第二初始剖面上标记毛发分布点,得到该第二初始剖面对应的毛发剖面,该第二毛发分布密度小于该前一个毛发剖面的毛发分布密度,该第二初始剖面为该第一个初始剖面之后的任一初始剖面。
可选地,该第二采样单元具体用于:
将该多个第二采样点在该第二初始剖面上的映射点,标记为毛发分布点;或者,
按照预设偏移规则,对该多个第二采样点进行位置偏移,将位置偏移后的该多个第二采样点在该第二初始剖面上的映射点,标记为毛发分布点。
可选地,该第一采样单元用于:
对该第一初始剖面中的像素点进行泊松采样;
该第二采样单元用于:
对该第二初始剖面的前一个毛发剖面的毛发分布点进行随机采样。
可选地,该渲染模块603包括:
建模单元,用于基于每个毛发剖面的毛发分布点,将该每个毛发剖面沿着毛发生长方向进行延伸,得到该每个毛发剖面的几何模型;
渲染单元,用于通过该预设光照模型,在该三维模型上对该多个毛发剖面的几何模型依次进行渲染。
可选地,该渲染单元具体用于:
调用渲染接口,通过该渲染接口,将该多个毛发剖面的几何模型,依次叠加在该三维模型的外表面;
在依次叠加每个毛发剖面的几何模型的过程中,通过该预设光照模型,确定该每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对该每个毛发剖面的几何模型进行着色。
可选地,该渲染单元具体用于:
对该多个毛发剖面的几何模型依次进行组合;
调用渲染接口,通过该渲染接口,将组合后的几何模型叠加在该三维模型的外表面;
在将组合后的几何模型叠加在该三维模型的外表面的过程中,通过该预设光照模型,确定每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对该每个毛发剖面的几何模型进行着色。
可选地,该渲染单元具体用于:
对于第一毛发剖面,根据确定的第一颜色值和预设阴影值,确定第二颜色值,按照确定的第二颜色值对该第一毛发剖面的几何模型进行着色,该第一毛发剖面为该多个毛发剖面中的第一个毛发剖面;
对于第二毛发剖面,根据确定的第一颜色值和目标阴影值,确定第三颜色值,按照确定的第三颜色值对该第二毛发剖面的几何模型进行着色,该目标阴影值小于该第二毛发剖面的上一个毛发剖面的阴影值,该第二毛发剖面为该第一个毛发剖面之后的任一毛发剖面。
本申请实施例中,通过获取用于模拟毛发生长的横截面的多个初始剖面,然后按照毛发分布密度依次减小的规则,在多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面,再通过预设光照模型,在待绘制毛发的三维模型上对该多个毛发剖面依次进行渲染,实现了先生成多重毛发剖面的毛发分布图,然后根据每个毛发剖面的毛发分布图,对每个毛发剖面中的毛发统一进行渲染的效果,相对于根据每根毛发的几何模型,对每根毛发分别进行渲染的方式,本申请的渲染方式简单高效,提高了毛发渲染效率,对渲染设备的性能要求较低。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是本申请实施例提供的一种电子设备的结构框图。该电子设备可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑等,还可以为用户设备、便携式终端、膝上型终端或台式终端等。
通常,电子设备包括有:处理器701和存储器702。
处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所执行以实现本申请中方法实施例提供的毛发渲染方法。
在一些实施例中,电子设备还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、触摸显示屏705、摄像头706、音频电路707、定位组件708和电源709中的至少一种。
外围设备接口703可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器701和存储器702。在一些实施例中,处理器701、存储器702和外围设备接口703被集成在同一芯片或电路板上;在一些其他实施例中,处理器701、存储器702和外围设备接口703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路704用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路704包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路704可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路704还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏705用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏705是触摸显示屏时,显示屏705还具有采集在显示屏705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器701进行处理。此时,显示屏705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏705可以为一个,设置电子设备的前面板;在另一些实施例中,显示屏705可以为至少两个,分别设置在电子设备的不同表面或呈折叠设计;在再一些实施例中,显示屏705可以是柔性显示屏,设置在电子设备的弯曲表面上或折叠面上。甚至,显示屏705还可以设置成非矩形的不规则图形,也即异形屏。显示屏705可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件706用于采集图像或视频。可选地,摄像头组件706包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器701进行处理,或者输入至射频电路704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器701或射频电路704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路707还可以包括耳机插孔。
定位组件708用于定位电子设备的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件708可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源709用于为电子设备中的各个组件进行供电。电源709可以是交流电、直流电、一次性电池或可充电电池。当电源709包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备还包括有一个或多个传感器710。该一个或多个传感器710包括但不限于:加速度传感器711、陀螺仪传感器712、压力传感器713、指纹传感器714、光学传感器715以及接近传感器716。
加速度传感器711可以检测以电子设备建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器711可以用于检测重力加速度在三个坐标轴上的分量。处理器701可以根据加速度传感器711采集的重力加速度信号,控制触摸显示屏705以横向视图或纵向视图进行用户界面的显示。加速度传感器711还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器712可以检测电子设备的机体方向及转动角度,陀螺仪传感器712可以与加速度传感器711协同采集用户对电子设备的3D动作。处理器701根据陀螺仪传感器712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器713可以设置在电子设备的侧边框和/或触摸显示屏705的下层。当压力传感器713设置在电子设备的侧边框时,可以检测用户对电子设备的握持信号,由处理器701根据压力传感器713采集的握持信号进行左右手识别或快捷操作。当压力传感器713设置在触摸显示屏705的下层时,由处理器701根据用户对触摸显示屏705的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器714用于采集用户的指纹,由处理器701根据指纹传感器714采集到的指纹识别用户的身份,或者,由指纹传感器714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器701授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器714可以被设置电子设备的正面、背面或侧面。当电子设备上设置有物理按键或厂商Logo时,指纹传感器714可以与物理按键或厂商Logo集成在一起。
光学传感器715用于采集环境光强度。在一个实施例中,处理器701可以根据光学传感器715采集的环境光强度,控制触摸显示屏705的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏705的显示亮度;当环境光强度较低时,调低触摸显示屏705的显示亮度。在另一个实施例中,处理器701还可以根据光学传感器715采集的环境光强度,动态调整摄像头组件706的拍摄参数。
接近传感器716,也称距离传感器,通常设置在电子设备的前面板。接近传感器716用于采集用户与电子设备的正面之间的距离。在一个实施例中,当接近传感器716检测到用户与电子设备的正面之间的距离逐渐变小时,由处理器701控制触摸显示屏705从亮屏状态切换为息屏状态;当接近传感器716检测到用户与电子设备的正面之间的距离逐渐变大时,由处理器701控制触摸显示屏705从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图7中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在本实施例中,该电子设备包括有一个或者一个以上的程序,这一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行本发明实施例提供的图2所示的毛发渲染方法的指令。
在另一实施例中,还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由计算机的处理器执行时,使得计算机能够执行上述毛发渲染方法。
在另一实施例中,还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述毛发渲染方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (16)

1.一种毛发渲染方法,其特征在于,所述方法包括:
获取多个初始剖面,所述多个初始剖面用于模拟毛发生长的横截面;
按照毛发分布密度依次减小的规则,在所述多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面;
通过预设光照模型,在待绘制毛发的三维模型上对所述多个毛发剖面依次进行渲染,得到目标三维模型,所述预设光照模型用于模拟毛发的光照效果;
其中,所述按照毛发分布密度依次减小的规则,在所述多个初始剖面中的每个初始剖面上确定毛发分布点,包括:
按照第一毛发分布密度,对第一初始剖面中的像素点进行采样,得到多个第一采样点,将所述多个第一采样点标记为毛发分布点,得到所述第一初始剖面对应的毛发剖面,所述第一初始剖面为所述多个初始剖面中的第一个初始剖面;
按照第二毛发分布密度,对第二初始剖面的前一个毛发剖面的毛发分布点进行采样,得到多个第二采样点,根据所述多个第二采样点在所述第二初始剖面上标记毛发分布点,得到所述第二初始剖面对应的毛发剖面,所述第二毛发分布密度小于所述前一个毛发剖面的毛发分布密度,所述第二初始剖面为所述第一个初始剖面之后的任一初始剖面。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个第二采样点在所述第二初始剖面上标记毛发分布点,包括:
将所述多个第二采样点在所述第二初始剖面上的映射点,标记为毛发分布点;或者,
按照预设偏移规则,对所述多个第二采样点进行位置偏移,将位置偏移后的所述多个第二采样点在所述第二初始剖面上的映射点,标记为毛发分布点。
3.根据权利要求1所述的方法,其特征在于,所述对第一初始剖面中的像素点进行采样,包括:
对所述第一初始剖面中的像素点进行泊松采样;
所述对第二初始剖面的前一个毛发剖面的毛发分布点进行采样,包括:
对所述第二初始剖面的前一个毛发剖面的毛发分布点进行随机采样。
4.根据权利要求1所述的方法,其特征在于,所述通过预设光照模型,在待绘制毛发的三维模型上对所述多个毛发剖面依次进行渲染,包括:
基于每个毛发剖面的毛发分布点,将所述每个毛发剖面沿着毛发生长方向进行延伸,得到所述每个毛发剖面的几何模型;
通过所述预设光照模型,在所述三维模型上对所述多个毛发剖面的几何模型依次进行渲染。
5.根据权利要求4所述的方法,其特征在于,所述通过所述预设光照模型,在所述三维模型上对所述多个毛发剖面的几何模型依次进行渲染,包括:
调用渲染接口,通过所述渲染接口,将所述多个毛发剖面的几何模型,依次叠加在所述三维模型的外表面;
在依次叠加每个毛发剖面的几何模型的过程中,通过所述预设光照模型,确定所述每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对所述每个毛发剖面的几何模型进行着色。
6.根据权利要求5所述的方法,其特征在于,所述通过所述预设光照模型,在所述三维模型上对所述多个毛发剖面的几何模型依次进行渲染,包括:
对所述多个毛发剖面的几何模型依次进行组合;
调用渲染接口,通过所述渲染接口,将组合后的几何模型叠加在所述三维模型的外表面;
在将组合后的几何模型叠加在所述三维模型的外表面的过程中,通过所述预设光照模型,确定每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对所述每个毛发剖面的几何模型进行着色。
7.根据权利要求5或6所述的方法,其特征在于,所述根据确定的第一颜色值对所述每个毛发剖面的几何模型进行着色,包括:
对于第一毛发剖面,根据确定的第一颜色值和预设阴影值,确定第二颜色值,按照确定的第二颜色值对所述第一毛发剖面的几何模型进行着色,所述第一毛发剖面为所述多个毛发剖面中的第一个毛发剖面;
对于第二毛发剖面,根据确定的第一颜色值和目标阴影值,确定第三颜色值,按照确定的第三颜色值对所述第二毛发剖面的几何模型进行着色,所述目标阴影值小于所述第二毛发剖面的上一个毛发剖面的阴影值,所述第二毛发剖面为所述第一个毛发剖面之后的任一毛发剖面。
8.一种毛发渲染装置,其特征在于,所述装置包括:
获取模块,用于获取多个初始剖面,所述多个初始剖面用于模拟毛发生长的横截面;
确定模块,用于按照毛发分布密度依次减小的规则,在所述多个初始剖面中的每个初始剖面上确定毛发分布点,得到多个毛发剖面;
渲染模块,用于通过预设光照模型,在待绘制毛发的三维模型上对所述多个毛发剖面依次进行渲染,得到目标三维模型,所述预设光照模型用于模拟毛发的光照效果;
其中,所述确定模块包括:
第一采样单元,用于按照第一毛发分布密度,对第一初始剖面中的像素点进行采样,得到多个第一采样点,将所述多个第一采样点标记为毛发分布点,得到所述第一初始剖面对应的毛发剖面,所述第一初始剖面为所述多个初始剖面中的第一个初始剖面;
第二采样单元,用于按照第二毛发分布密度,对第二初始剖面的前一个毛发剖面的毛发分布点进行采样,得到多个第二采样点,根据所述多个第二采样点在所述第二初始剖面上标记毛发分布点,得到所述第二初始剖面对应的毛发剖面,所述第二毛发分布密度小于所述前一个毛发剖面的毛发分布密度,所述第二初始剖面为所述第一个初始剖面之后的任一初始剖面。
9.根据权利要求8所述的装置,其特征在于,所述第二采样单元用于:
将所述多个第二采样点在所述第二初始剖面上的映射点,标记为毛发分布点;或者,
按照预设偏移规则,对所述多个第二采样点进行位置偏移,将位置偏移后的所述多个第二采样点在所述第二初始剖面上的映射点,标记为毛发分布点。
10.根据权利要求8所述的装置,其特征在于,所述第一采样单元用于:
对所述第一初始剖面中的像素点进行泊松采样;
所述第二采样单元用于:
对所述第二初始剖面的前一个毛发剖面的毛发分布点进行随机采样。
11.根据权利要求8所述的装置,其特征在于,所述渲染模块包括:
建模单元,用于基于每个毛发剖面的毛发分布点,将所述每个毛发剖面沿着毛发生长方向进行延伸,得到所述每个毛发剖面的几何模型;
渲染单元,用于通过所述预设光照模型,在所述三维模型上对所述多个毛发剖面的几何模型依次进行渲染。
12.根据权利要求11所述的装置,其特征在于,所述渲染单元用于:
调用渲染接口,通过所述渲染接口,将所述多个毛发剖面的几何模型,依次叠加在所述三维模型的外表面;
在依次叠加每个毛发剖面的几何模型的过程中,通过所述预设光照模型,确定所述每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对所述每个毛发剖面的几何模型进行着色。
13.根据权利要求12所述的装置,其特征在于,所述渲染单元用于:
对所述多个毛发剖面的几何模型依次进行组合;
调用渲染接口,通过所述渲染接口,将组合后的几何模型叠加在所述三维模型的外表面;
在将组合后的几何模型叠加在所述三维模型的外表面的过程中,通过所述预设光照模型,确定每个毛发剖面的几何模型中每个像素点的第一颜色值,根据确定的第一颜色值对所述每个毛发剖面的几何模型进行着色。
14.根据权利要求12或13所述的装置,其特征在于,所述渲染单元用于:
对于第一毛发剖面,根据确定的第一颜色值和预设阴影值,确定第二颜色值,按照确定的第二颜色值对所述第一毛发剖面的几何模型进行着色,所述第一毛发剖面为所述多个毛发剖面中的第一个毛发剖面;
对于第二毛发剖面,根据确定的第一颜色值和目标阴影值,确定第三颜色值,按照确定的第三颜色值对所述第二毛发剖面的几何模型进行着色,所述目标阴影值小于所述第二毛发剖面的上一个毛发剖面的阴影值,所述第二毛发剖面为所述第一个毛发剖面之后的任一毛发剖面。
15.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-7任一项所述的毛发渲染方法。
16.一种非临时性计算机可读存储介质,其特征在于,当所述存储介质中的指令由计算机的处理器执行时,使得计算机能够执行权利要求1-7任一项所述的毛发渲染方法。
CN201811573130.9A 2018-12-21 2018-12-21 毛发渲染方法、装置、电子设备及存储介质 Active CN109685876B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201811573130.9A CN109685876B (zh) 2018-12-21 2018-12-21 毛发渲染方法、装置、电子设备及存储介质
PCT/CN2019/127225 WO2020125785A1 (zh) 2018-12-21 2019-12-20 毛发渲染方法、装置、电子设备和存储介质
US17/257,285 US11393154B2 (en) 2018-12-21 2019-12-20 Hair rendering method, device, electronic apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811573130.9A CN109685876B (zh) 2018-12-21 2018-12-21 毛发渲染方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN109685876A CN109685876A (zh) 2019-04-26
CN109685876B true CN109685876B (zh) 2020-11-03

Family

ID=66188187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811573130.9A Active CN109685876B (zh) 2018-12-21 2018-12-21 毛发渲染方法、装置、电子设备及存储介质

Country Status (3)

Country Link
US (1) US11393154B2 (zh)
CN (1) CN109685876B (zh)
WO (1) WO2020125785A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109685876B (zh) 2018-12-21 2020-11-03 北京达佳互联信息技术有限公司 毛发渲染方法、装置、电子设备及存储介质
CN110298910A (zh) * 2019-07-04 2019-10-01 珠海金山网络游戏科技有限公司 一种光照计算方法、装置、计算设备及存储介质
CN111429557B (zh) * 2020-02-27 2023-10-20 网易(杭州)网络有限公司 一种毛发生成方法、毛发生成装置及可读存储介质
CN111462313B (zh) * 2020-04-02 2024-03-01 网易(杭州)网络有限公司 绒毛效果的实现方法、装置和终端
CN111508053B (zh) * 2020-04-26 2023-11-28 网易(杭州)网络有限公司 模型的渲染方法、装置、电子设备及计算机可读介质
CN113763525B (zh) * 2020-06-01 2024-03-12 上海米哈游天命科技有限公司 一种头发高光渲染方法、装置、设备及存储介质
CN112396680B (zh) * 2020-11-27 2022-11-25 完美世界(北京)软件科技发展有限公司 毛发流向图的制作方法及装置、存储介质、计算机设备
CN112419487B (zh) * 2020-12-02 2023-08-22 网易(杭州)网络有限公司 毛发三维重建方法、装置、电子设备及存储介质
CN112465945B (zh) * 2020-12-07 2024-04-09 网易(杭州)网络有限公司 一种模型生成方法、装置、存储介质及计算机设备
CN112767521B (zh) * 2021-01-27 2022-02-08 北京达佳互联信息技术有限公司 特效实现方法、装置、电子设备及存储介质
CN112907715B (zh) * 2021-03-19 2024-04-12 网易(杭州)网络有限公司 毛发模型制作方法、装置、存储介质及计算机设备
CN113223131B (zh) * 2021-04-16 2022-05-31 完美世界(北京)软件科技发展有限公司 一种模型的渲染方法、装置、存储介质以及计算设备
CN113313802B (zh) * 2021-05-25 2022-03-11 完美世界(北京)软件科技发展有限公司 图像渲染方法、装置、设备及存储介质
CN113409465B (zh) * 2021-06-23 2023-05-12 网易(杭州)网络有限公司 毛发模型的生成方法、装置、存储介质与电子设备
CN113450441B (zh) * 2021-06-23 2023-03-21 网易(杭州)网络有限公司 三维虚拟模型的渲染方法、装置和电子设备
CN114693856B (zh) * 2022-05-30 2022-09-09 腾讯科技(深圳)有限公司 对象生成方法、装置、计算机设备和存储介质
CN116152405B (zh) * 2023-04-23 2023-07-07 腾讯科技(深圳)有限公司 一种业务处理方法、装置及计算机设备、存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002032777A (ja) * 2000-07-19 2002-01-31 Sony Corp 画像処理装置及び画像処理方法、並びに、記憶媒体
US7450122B2 (en) * 2004-03-25 2008-11-11 Pixar Volumetric hair rendering
CN104468578B (zh) * 2014-12-10 2017-12-26 怀效宁 一种无线通讯的优先通讯系统和通讯方法
CN104376597B (zh) * 2014-12-05 2017-03-29 北京航空航天大学 一种基于多方向约束的头发重建方法
US20180005428A1 (en) * 2016-06-29 2018-01-04 Carlos Montero Method and apparatus for generating graphic images
CN107784134A (zh) * 2016-08-24 2018-03-09 南京乐朋电子科技有限公司 一种虚拟发型模拟系统
CN107256304B (zh) * 2017-06-02 2020-07-07 中北大学 一种枪弹弹头发射强度可靠性评估方法
CN109035381B (zh) * 2017-06-08 2021-11-09 福建天晴数码有限公司 基于ue4平台的卡通画头发渲染方法、存储介质
CN107393017A (zh) * 2017-08-11 2017-11-24 北京铂石空间科技有限公司 图像处理方法、装置、电子设备及存储介质
CN108399651B (zh) * 2018-02-09 2021-08-06 武汉技兴科技有限公司 一种人体发型三维建模及模型复用的方法
CN108629834B (zh) * 2018-05-09 2020-04-28 华南理工大学 一种基于单张图片的三维头发重建方法
CN108510500B (zh) * 2018-05-14 2021-02-26 深圳市云之梦科技有限公司 一种基于人脸肤色检测的虚拟人物形象的头发图层处理方法及系统
CN108961373B (zh) * 2018-05-23 2022-06-07 福建天晴在线互动科技有限公司 一种毛发渲染的方法及终端
CN109685876B (zh) 2018-12-21 2020-11-03 北京达佳互联信息技术有限公司 毛发渲染方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US20210312695A1 (en) 2021-10-07
CN109685876A (zh) 2019-04-26
WO2020125785A1 (zh) 2020-06-25
US11393154B2 (en) 2022-07-19

Similar Documents

Publication Publication Date Title
CN109685876B (zh) 毛发渲染方法、装置、电子设备及存储介质
CN110929651B (zh) 图像处理方法、装置、电子设备及存储介质
CN109427083B (zh) 三维虚拟形象的显示方法、装置、终端及存储介质
US11436779B2 (en) Image processing method, electronic device, and storage medium
JP2022527686A (ja) シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム
CN109754454B (zh) 物体模型的渲染方法、装置、存储介质及设备
CN109308727B (zh) 虚拟形象模型生成方法、装置及存储介质
CN110427110B (zh) 一种直播方法、装置以及直播服务器
CN111932664B (zh) 图像渲染方法、装置、电子设备及存储介质
CN112870707B (zh) 虚拟场景中的虚拟物体展示方法、计算机设备及存储介质
CN110488977A (zh) 虚拟现实显示方法、装置、系统及存储介质
CN110992493A (zh) 图像处理方法、装置、电子设备及存储介质
CN110033503B (zh) 动画显示方法、装置、计算机设备及存储介质
CN110853128B (zh) 虚拟物体显示方法、装置、计算机设备及存储介质
CN110136236B (zh) 三维角色的个性化脸部显示方法、装置、设备及存储介质
WO2018209710A1 (zh) 一种图像处理方法及装置
CN110956580A (zh) 图像换脸的方法、装置、计算机设备以及存储介质
CN110517346B (zh) 虚拟环境界面的展示方法、装置、计算机设备及存储介质
CN111539795A (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
CN111105474A (zh) 字体绘制方法、装置、计算机设备及计算机可读存储介质
CN110796083A (zh) 图像显示方法、装置、终端及存储介质
CN112884873B (zh) 虚拟环境中虚拟物体的渲染方法、装置、设备及介质
CN110052030B (zh) 虚拟角色的形象设置方法、装置及存储介质
CN111784841A (zh) 重建三维图像的方法、装置、电子设备及介质
CN110300275B (zh) 视频录制、播放方法、装置、终端及存储介质

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
GR01 Patent grant
GR01 Patent grant