CN114119821A - 虚拟对象的毛发渲染方法、装置及设备 - Google Patents

虚拟对象的毛发渲染方法、装置及设备 Download PDF

Info

Publication number
CN114119821A
CN114119821A CN202111372566.3A CN202111372566A CN114119821A CN 114119821 A CN114119821 A CN 114119821A CN 202111372566 A CN202111372566 A CN 202111372566A CN 114119821 A CN114119821 A CN 114119821A
Authority
CN
China
Prior art keywords
hair
vertex
rendering
virtual object
data
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
Application number
CN202111372566.3A
Other languages
English (en)
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.)
Hongenperfect Beijing Education Technology Development Co ltd
Original Assignee
Hongenperfect Beijing Education Technology Development 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 Hongenperfect Beijing Education Technology Development Co ltd filed Critical Hongenperfect Beijing Education Technology Development Co ltd
Priority to CN202111372566.3A priority Critical patent/CN114119821A/zh
Publication of CN114119821A publication Critical patent/CN114119821A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

本申请公开了一种虚拟对象的毛发渲染方法、装置及设备,涉及渲染技术领域,整个渲染过程能够控制虚拟对象模型的毛发长度,使得渲染出的毛发具有变化和走向,提高虚拟对象模型的毛发渲染效果。其中方法包括:针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据,并将毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据,该虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息,传输模型数据至渲染引擎,以使得渲染引擎根据模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,并沿着毛发的顶点偏移信息对各个顶点位置上的纹理资源信息进行多层毛发渲染。

Description

虚拟对象的毛发渲染方法、装置及设备
技术领域
本申请涉及渲染技术领域,尤其是涉及到一种虚拟对象的毛发渲染方法、装置及设备。
背景技术
随着计算机图形学技术的飞速发展,虚拟对象越来越多被应用至教育类应用程序的游戏或动画制作当中,教育类应用程序的种类也不断增多。为了能够吸引更多的儿童用户,提升虚拟对象制作的真实感必不可少,而动物类虚拟对象的毛发制作因其光照复杂,数量众多,物理效果不好抽象等原因,一直是实时图形学的难题。在早期,只能通过若干面片替代,后来随着硬件技术的提升,发展出了基于经验模型和基于物理构建毛发的三维模型,并基于三维模型来对虚拟对象的毛发进行渲染。
具体在针对虚拟对象进行毛发渲染过程中,通常会将三维模型进行多层渲染,每一层都通过一个杂色图往法线方向扩展,每次扩展后都按照一定的单位值透空贴图,这样每渲染一层,就会减少固定数的渲染,中远距离就会产生毛发由粗到细的展示效果。然而,相关技术的虚拟对象在毛发渲染过程中,局部毛发使用固定长度的渲染方式,导致渲染出的毛发长短比较统一,并不具有毛发长短功能的走向性,使得毛发渲染效果达不到理想效果。
发明内容
有鉴于此,本申请提供了一种虚拟对象的毛发渲染方法、装置及设备,主要目的在于解决现有技术中渲染出的毛发长短比较统一,并不具有毛发长短功能的走向性,使得毛发渲染效果达不到理想效果的问题。
根据本申请的第一个方面,提供了一种虚拟对象的毛发渲染方法,应用于制作端,包括:
针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据;
将所述毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据,所述虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息;
传输所述模型数据至渲染引擎,以使得所述渲染引擎根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,并沿着所述毛发的顶点偏移信息对所述各个顶点位置上的纹理资源信息进行多层毛发渲染。
进一步地,所述毛发变化的属性数据包括毛发走势数据和毛发长度数据,所述针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据,具体包括:
针对虚拟对象模型设置第一顶点绘制修改器,使用所述第一绘制修改器中顶点颜色通道的颜色偏移值来存储毛发走势数据;
针对虚拟对象模型设置第二顶点绘制修改器,使用所述第二绘制修改器中顶点透明度通道的颜色渐变值来存储毛发长度数据。
进一步地,所述针对虚拟对象模型设置第一顶点绘制修改器,使用所述第一绘制修改器中顶点颜色通道的颜色偏移值来存储毛发走势数据,具体包括:
针对虚拟对象模型设置第一顶点绘制修改器,使用所第一顶点绘制修改器添加虚拟对象模型中毛发的颜色变化;
根据所述虚拟对象模型中毛发的颜色变化,确定顶点颜色通道的颜色偏移值,并使用所述颜色偏移值来存储毛发走势数据。
进一步地,所述针对虚拟对象模型设置第二顶点绘制修改器,使用所述第二绘制修改器中顶点透明度通道的颜色渐变值来存储毛发长度数据,具体包括:
针对虚拟对象模型设置第二顶点绘制修改器,使用所述第二顶点绘制修改器添加虚拟对象模型中毛发的长度变化;
根据所述虚拟对象模型中毛发的长度变化,确定顶点透明度通道的颜色渐变值,并使用所述颜色渐变值来存储毛发长度数据。
进一步地,在所述将所述毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据之前,所述方法还包括:
针对虚拟对象模型添加顶点,确定虚拟对象模型的顶点位置;
根据所述虚拟对象模型的顶点位置,将所述对象模型按照贴图纹理坐标展开为贴图资源的纹理坐标信息和法线方向信息,汇总得到各个顶点位置上的纹理资源信息;
结合所述对象模型的顶点位置和所述各个顶点位置上的纹理资源信息,制作虚拟对象模型的顶点资源数据。
根据本申请的第二个方面,提供了一种虚拟对象的毛发渲染方法,应用于渲染引擎端,包括:
接收模型数据,并读取所述模型数据中虚拟对象模型的顶点资源数据和毛发变化的属性数据,所述虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息;
根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,所述顶点偏移信息包括虚拟对象模型的毛发方向信息和毛发长度信息;
按照所述毛发长度信息对所述各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行多层毛发渲染。
进一步地,所述毛发变化的属性数据包括毛发走势数据和毛发长度数据,所述毛发走势数据包括毛发在不同颜色通道的的颜色值,所述毛发长度数据包括毛发在不同透明程度上灰度值,所述根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,具体包括:
根据所述毛发走势数据中毛发在不同颜色通道上颜色值和顶点位置坐标,计算沿着法线方向所形成虚拟对象模型的毛发方向信息;
将所述毛发长度数据中毛发在不同透明度上的灰度值映射为虚拟对象模型的毛发长度信息。
进一步地,所述按照所述毛发长度信息对所述各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行多层毛发渲染,具体包括:
根据所述毛发长度信息,确定毛发渲染的渲染层数;
针对每层毛发渲染,在顶点着色器中读入各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行外扩绘制,确定每层毛发渲染后的顶点偏移位置信息;
根据所述毛发渲染的渲染层数,在所述每层毛发渲染后的顶点偏移位置基础上,重复执行多层毛发渲染。
进一步地,在所述针对每层毛发渲染,在顶点着色器中读入各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行外扩绘制,确定每层毛发渲染后的顶点偏移位置信息之后,所述方法还包括:
针对所述每层毛发渲染后的顶点偏移位置信息,在片元着色器中对所述虚拟对象模型在世界空间中的各项异性信息进行拟合,并利用拟合后的颜色信息进行像素填充,得到每层毛发渲染数据;
根据所述毛发渲染的渲染层数,在所述每层毛发渲染数据基础上,重复执行多层毛发渲染。
进一步地,在所述针对所述每层毛发渲染后的顶点偏移位置信息,在片元着色器中对所述虚拟对象模型在世界空间中的各项异性信息进行拟合,并利用拟合后的颜色信息进行像素填充,得到每层毛发渲染数据之前,所述方法还包括:
获取游戏场景中环境光照信息和高光信息;
利用所述游戏场景中环境光照信息和高光信息进行插值得到的各个片元的法线信息,确定所述虚拟对象模型在世界空间中的各项异性信息。
根据本申请的第三个方面,提供了一种虚拟对象的毛发渲染装置,包括:
设置单元,用于针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据;
导出单元,用于将所述毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据,所述虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息;
传输单元,用于传输所述模型数据至渲染引擎,以使得所述渲染引擎根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,并沿着所述毛发的顶点偏移信息对所述各个顶点位置上的纹理资源信息进行多层毛发渲染。
进一步地,所述毛发变化的属性数据包括毛发走势数据和毛发长度数据,所述设置单元包括:
第一设置模块,用于针对虚拟对象模型设置第一顶点绘制修改器,使用所述第一绘制修改器中顶点颜色通道的颜色偏移值来存储毛发走势数据;
第二设置模块,用于针对虚拟对象模型设置第二顶点绘制修改器,使用所述第二绘制修改器中顶点透明度通道的颜色渐变值来存储毛发长度数据。
进一步地,所述第一设置模块,具体用于针对虚拟对象模型设置第一顶点绘制修改器,使用所第一顶点绘制修改器添加虚拟对象模型中毛发的颜色变化;
所述第一设置模块,具体还用于根据所述虚拟对象模型中毛发的颜色变化,确定顶点颜色通道的颜色偏移值,并使用所述颜色偏移值来存储毛发走势数据。
进一步地,所述第二设置模块,具体用于针对虚拟对象模型设置第二顶点绘制修改器,使用所述第二顶点绘制修改器添加虚拟对象模型中毛发的长度变化;
所述第二设置模块,具体还用于根据所述虚拟对象模型中毛发的长度变化,确定顶点透明度通道的颜色渐变值,并使用所述颜色渐变值来存储毛发长度数据。
进一步地,所述装置还包括:
确定单元,用于在所述将所述毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据之前,针对虚拟对象模型添加顶点,确定虚拟对象模型的顶点位置;
展开单元,用于根据所述虚拟对象模型的顶点位置,将所述对象模型按照贴图纹理坐标展开为贴图资源的纹理坐标信息和法线方向信息,汇总得到各个顶点位置上的纹理资源信息;
制作单元,用于结合所述对象模型的顶点位置和所述各个顶点位置上的纹理资源信息,制作虚拟对象模型的顶点资源数据。
根据本申请的第四个方面,提供了一种虚拟对象的毛发渲染装置,包括:
接收单元,用于接收模型数据,并读取所述模型数据中虚拟对象模型的顶点资源数据和毛发变化的属性数据,所述虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息;
计算单元,用于根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,所述顶点偏移信息包括虚拟对象模型的毛发方向信息和毛发长度信息;
渲染单元,用于按照所述毛发长度信息对所述各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行多层毛发渲染。
进一步地,所述毛发变化的属性数据包括毛发走势数据和毛发长度数据,所述毛发走势数据包括毛发在不同颜色通道的的颜色值,所述毛发长度数据包括毛发在不同透明程度上灰度值,所述计算单元包括:
计算模块,用于根据所述毛发走势数据中毛发在不同颜色通道上颜色值和顶点位置坐标,计算沿着法线方向所形成虚拟对象模型的毛发方向信息;
映射模块,用于将所述毛发长度数据中毛发在不同透明度上的灰度值映射为虚拟对象模型的毛发长度信息。
进一步地,所述渲染单元包括:
确定模块,用于根据所述毛发长度信息,确定毛发渲染的渲染层数;
外扩模块,用于针对每层毛发渲染,在顶点着色器中读入各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行外扩绘制,确定每层毛发渲染后的顶点偏移位置信息;
渲染模块,用于根据所述毛发渲染的渲染层数,在所述每层毛发渲染后的顶点偏移位置基础上,重复执行多层毛发渲染。
进一步地,所述渲染单元还包括:
拟合模块,用于在所述针对每层毛发渲染,在顶点着色器中读入各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行外扩绘制,确定每层毛发渲染后的顶点偏移位置信息之后,针对所述每层毛发渲染后的顶点偏移位置信息,在片元着色器中对所述虚拟对象模型在世界空间中的各项异性信息进行拟合,并利用拟合后的颜色信息进行像素填充,得到每层毛发渲染数据;
所述渲染模块,具体用于根据所述毛发渲染的渲染层数,在所述每层毛发渲染数据基础上,重复执行多层毛发渲染。
根据本申请的第五个方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述方法的步骤。
根据本申请的第六个方面,提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法的步骤。
借由上述技术方案,本申请提供的一种虚拟对象的毛发渲染方法、装置及设备,与目前现有技术中针对虚拟对象的局部毛发使用固定长度进行渲染的方式相比,本申请针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据,将毛发变化的属性数据结合虚拟对象模型的顶点资源数据导出至模型数据,该虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息,进一步传输模型数据至渲染引擎,以使得渲染引擎根据模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,并沿着毛发的顶点偏移信息对各个顶点位置上的纹理资源信息进行多层毛发渲染,整个渲染过程利用顶点绘制修改器来存储毛发变化的属性数据,以使得渲染引擎对虚拟对象模型加入毛发长度控制和方向控制,进而调节和控制毛发长度和方向,使得渲染出的毛发具有变化和走向,提高虚拟对象模型的毛发渲染效果。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种虚拟对象的毛发渲染方法的流程示意图;
图2a示出了本申请实施例提供选用顶点颜色通道来存储毛发走势数据的效果图;
图2b示出了本申请实施例提供选用顶点透明度通道来存储毛发长短数据的效果图;
图3示出了本申请实施例提供的另一种虚拟对象的毛发渲染方法的流程示意图;
图4示出了本申请实施例提供的另一种虚拟对象的毛发渲染方法的流程示意图;
图5示出了本申请实施例提供的一种虚拟对象的毛发渲染装置的结构示意图;
图6示出了本申请实施例提供的另一种虚拟对象的毛发渲染装置的结构示意图;
图7示出了本申请实施例提供的另一种虚拟对象的毛发渲染装置的结构示意图;
图8示出了本申请实施例提供的另一种虚拟对象的毛发渲染装置的结构示意图;
图9示出了本发明实施例提供的一种计算机设备的装置结构示意图。
具体实施方式
现在将参照若干示例性实施例来论述本发明的内容。应当理解,论述了这些实施例仅是为了使得本领域普通技术人员能够更好地理解且因此实现本发明的内容,而不是暗示对本发明的范围的任何限制。
如本文中所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实施例”和“一种实施例”要被解读为“至少一个实施例”。术语“另一个实施例”要被解读为“至少一个其他实施例”。
随着线上教育的不断发展,教育类应用程序不断涌现,相应的教育内容、教育种类和教育功能不断增多,甚至还可以在教育类应用程序中添加游戏或者动画来帮助儿童去提高知识、视野、思维等能力水平,例如,针对识别功能的教育类应用程序,通过在应用程序中显示动物的习性、生长环境、日常食物等,可以帮助儿童识别出各种动物,针对手绘功能的教育类应用程序,通过在应用程序中展示画板以及相应动物的图片,可以让儿童手绘各种动物。
对于出现在教育类应用程序中所出现具有毛发的虚拟对象,如小动物、小玩偶、小树叶等,通过制作相应游戏或者动画可以控制其在应用程序中出现相应的操作,例如,控制小老虎晃脑袋,控制小树叶飘落等。具体在针对虚拟对象进行毛发渲染过程中,通常会将三维模型进行多层渲染,每一层都通过一个杂色图往法线方向扩展,每次扩展后都按照一定的单位值透空贴图,这样每渲染一层,就会减少固定数的渲染,中远距离就会产生毛发由粗到细的展示效果。然而,相关技术的虚拟对象在毛发渲染过程中,局部毛发使用固定长度的渲染方式,导致渲染出的毛发长短比较统一,并不具有毛发长短功能的走向性,使得毛发渲染效果达不到理想效果。
为了解决该问题,本实施例提供了一种虚拟对象的毛发渲染方法,如图1所示,该方法应用于针对教育类应用程序中游戏或动画制作的客户端,包括如下步骤:
101、针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据。
虚拟对象模型的设计是教育类应用程序中游戏或动画生成中的一个重要环节,在制作虚拟对象模型过程中,毛发作为虚拟对象模型的重要环节,毛发制作是否真实影响到虚拟对象的展示效果。这里毛发制作主要针对动物毛发,还可以为人物头发、草地等。
由于虚拟对象模型都是由若干面组成,每个面又是由顶点和边线组成,通过修改虚拟对象模型可以改变虚拟对象模型的形状,例如,将多个顶点折叠为一个顶点。具体在制作毛发过程中,针对虚拟对象模型,可以使用顶点绘制修改器对顶点数据进行设置,例如,在虚拟对象上绘制顶点颜色,控制哪些点进行逐面绘制,控制绘制顶点长度,进一步使用设置后的顶点数据来控制虚拟对象模型的毛发生成。
由于顶点绘制修改器中设置有资源通道,使用不同资源通道可以实现顶点不同的展示效果,例如,使用顶点颜色通道指定颜色值,可以获取到顶点不同的色彩变化,使用顶点透明度通道和照明通道指定绘制值,分别得到顶点颜色的透明度和着色,这里使用顶点绘制修改器中的资源通道来存储毛发变化的属性数据,并通过毛发变化的属性数据来实现不同的毛发效果。示例性的,针对虚拟对象模型A,可以选定对象A进行顶点绘制,使用颜色通道指定顶点颜色,应用到顶点的颜色量取决于顶点距面上绘制光标所在位置的距离,选择的面越多,新颜色的变化越多,使用透明度通道控制颜色强度,以实现颜色渐变效果。
对于本实施例的执行主体可以为虚拟对象的毛发渲染装置或设备,可以配置在游戏或动画制作的客户端,该游戏或动画制作的应用端可创建或导入虚拟对象模型,并针对虚拟对象模型进行编辑,这里使用顶点绘制修改器中的资源通道来存储毛发变化的属性数据,该毛发变化的属性数据至少包括毛发长度、毛发方向、毛发密度等,能够从多维度展示虚拟对象在动画过程中的毛发效果。具体在针对虚拟对象模型的毛发进行渲染过程中,由于教育类应用程序在使用过程中通常为实时渲染,而实时渲染对帧率的要求较低,从而会得到比较好的渲染效果。
102、将所述毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据。
其中,虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息。顶点是3d世界中的基本元素,在计算机所能绘制的3d世界中,任何物体都是由多边形构成的,可以是三边形,可以是四边形等。由于三边形,即三角形所具有的特殊性质决定其在3d世界中得到广泛应用。构成三角形需要三个点,这些点即为虚拟对象模型的顶点数据。顶点位置信息为模型空间中单个顶点的xyz坐标值,各顶点位置上的纹理资源信息为模型空间中单个顶点的资源属性信息,具体可以包括顶点的纹理uv坐标值、顶点法线、顶点大小、顶点漫反射等。
考虑到虚拟对象模型,这里各个顶点位置上的纹理资源信息相当于一个位图,可以被应用在图元上,例如,可以创建一些图案,也可以将一些青草、泥土和岩石用于一些三维图元,并将其堆成山,这样形成山坡的背景,或者路标、悬崖,这里主要是使用顶点形成虚拟对象模型的毛发。进一步地,该纹理资源信息还可以加入纹理技术,如纹理融合(不透明或透明)、光线映射等,以提高虚拟对象模型的毛发展示效果。
在游戏或动画中,虚拟对象模型是用多边形网格来描述的,模型数据能够存储描述虚拟对象模型的所有多面形的顶点信息,该顶点信息不仅包括毛明变化的属性信息,如顶点长度,顶点方向,顶点颜色,还包括顶点资源纹理信息,如顶点三维坐标,顶点法线向量,顶点的纹理坐标等。进一步地,由于在将顶点纹理资源数据导出至模型数据的过程中可能会存在模型的纹理丢失或纹理效果不理想,这里还可以将使用顶点纹理坐标预先在虚拟对象模型加上顶点纹理资源的展开形成纹理贴图,以将顶点纹理资源信息通过纹理贴图的形式导出至模型数据中,并保留相应的顶点纹理资源信息。
103、传输所述模型数据至渲染引擎,以使得所述渲染引擎根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,并沿着所述毛发的顶点偏移信息对所述各个顶点位置上的纹理资源信息进行多层毛发渲染。
可以理解的是,由于虚拟对象模型的复杂性,在实际应用中经常使用游戏或动画等建模工具制作,模型的面数可能数以千计,需要特定的数据格式将模型数据存成文件,并交由渲染引擎进行绘制,此时渲染引擎在接收到模型数据后,需要根据模型的格式解析模型数据并读取到工程中进行渲染。
具体在渲染引擎中,解析模型数据后会相应获取到模型的顶点、法线、纹理坐标等虚拟对象模型的顶点信息,以及模型组织的索引数据、图元数据等,另外描述了对应的虚拟对象模型的贴图资源路径、光照参数数据等。进一步利用读取到的模型数据进行计算,这里计算涉及到光照计算、渲染层数计算、渲染位置计算等,并根据计算得到的数据结果进行渲染。
具体应用场景中,针对虚拟对象模型进行毛发渲染过程,首先读取模型数据的顶点位置进行顶点定位,同时提取模型顶点上纹理资源信息和毛发变化的属性数据,使用毛发变化的属性数据计算毛发的顶点偏移信息,该顶点偏移信息一方面表现为毛发方向特效,另一方面表现为毛发长短特效,进一步利用毛发的顶点偏移信息对虚拟对象模型的毛发进行逐层绘制,以使得虚拟对象模型的毛发在相应方向上达到指定长度。
本申请实施例提供的虚拟对象的毛发渲染方法,与目前现有技术中针对虚拟对象的局部毛发使用固定长度进行渲染的方式相比,本申请针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据,将毛发变化的属性数据结合虚拟对象模型的顶点资源数据导出至模型数据,该虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息,进一步传输模型数据至渲染引擎,以使得渲染引擎根据模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,并沿着毛发的顶点偏移信息对各个顶点位置上的纹理资源信息进行多层毛发渲染,整个渲染过程利用顶点绘制修改器来存储毛发变化的属性数据,以使得渲染引擎对虚拟对象模型加入毛发长度控制和方向控制,进而调节和控制毛发长度和方向,使得渲染出的毛发具有变化和走向,提高虚拟对象模型的毛发渲染效果。
进一步地,考虑到虚拟对象模型上毛发的特殊性,为了达到更逼真的毛发渲染效果,上述毛发变化的属性数据包括毛发走势数据和毛发长度数据,该毛发走势数据相当于毛发方向的走势,由于虚拟对象模型不同部位的毛发方向值不同,有些部位沿着法线方向,有些部位与法线方向呈一定角度,这里可以针对虚拟对象模型设置第一顶点绘制修改器,使用第一绘制修改器中顶点颜色通道的颜色偏移值来存储毛发走势数据;该毛发长度数据相当于毛发长短,由于虚拟对象模型不同部位毛发长短不一致,例如,动物耳朵鼻周围毛发较短,而尾巴部位毛发较长,这里可以针对虚拟对象模型设置第二顶点绘制修改器,使用第二绘制修改器中顶点透明度通道的颜色渐变值来存储毛发长度数据。
进一步地,为了提高毛发变化的属性数据的处理效率,在上述第一顶点绘制修改器中,针对虚拟对象还可以预先设置不同部位毛发走势的模板以及不同部位之间的毛发走势的关联系数,例如,在虚拟对象尾巴摇晃时设置尾巴部位毛发走势与摇晃方向相反,在虚拟对象尾巴竖直向上时设置尾巴部位毛发走势为垂直方向。同理,在第二顶点绘制修改器,针对虚拟对象还可以预先设置不同部位毛发长短的模板以及不同部位之间毛发长短的关联系数,例如,设置虚拟对象尾巴部位毛发长度大于身体部位毛发长度,并沿着尾巴根部至端部毛发逐渐变长。这样通过对毛发变化的属性数据预先设置模板以及关联系数,可生成并存储虚拟对象不同部位的毛发走势和毛发长短,并实现对毛发变化的属性数据进行批量处理,提高数据处理效率,同时还可以在批量处理后的毛发变化的属性数据基础上进行个性化修改,例如,针对个别部位的毛发长短进行调整或者针对个别部位的毛发走势进行修正。
具体地,由于虚拟对象模型上具有不同颜色变化,而颜色变化的偏移值可以说明虚拟对象模型对不同部位具有不同的毛发方向需求,例如,尾巴部位需要向下,而耳朵部位需要向上这里在存储毛发走势数据过程中,可以针对虚拟对象模型设置第一顶点绘制修改器,使用所第一顶点绘制修改器添加虚拟对象模型中毛发的颜色变化,根据虚拟对象模型中毛发的颜色变化,确定顶点颜色通道的颜色偏移值,这里可以设置颜色偏移值越大,毛发沿着法线方向偏移角度越大,颜色偏移值越小,毛发沿着法线方向偏移角度越小,并使用颜色偏移值来存储毛发走势数据。
具体地,由于虚拟对象模型上颜色具有不同透明度变化,而不同透明度变化可以说明虚拟对象模型对不同部位具有不同的毛发长度需求,例如,嘴、爪子和耳朵周围等部位具有短毛需求,而背部尾巴等部位具有长毛需求,这里在存储毛发长度数据过程中,可针对虚拟对象模型设置第二顶点绘制修改器,使用第二顶点绘制修改器添加虚拟对象模型中毛发的长度变化,根据虚拟对象模型中毛发的长度变化,确定顶点透明度通道的颜色渐变值,这里可以设置毛发越长的地方对应透明度越高,毛发越短的地方对应透明度越低,并使用颜色渐变值来存储毛发长度数据。
实际应用场景中,使用第一顶点绘制修改器对虚拟对象模型刷各种颜色变化,并选用顶点颜色通道来存储毛发走势数据的效果图如图2a所示,针对虚拟对象模型的不同毛发走势使用不同颜色值,这里图中并未展示相应颜色,使用第二顶点绘制修改器对虚拟对象模型刷不同灰度,并选用顶点透明度通道来存储毛发长短数据的效果图如图2b所示,针对虚拟对象模型的不同毛发长短使用不同灰度值,如图中所展示,脸部、四肢灰度值较高,毛发较短,尾部身体灰度值较低,毛发较长。
进一步地,考虑到导出模型数据的完整性,这里在将毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据之前,还需要制作虚拟对象的顶点资源数据,具体可以针对虚拟对象模型添加顶点,确定虚拟对象模型的顶点位置,并根据虚拟对象模型的顶点位置,将对象模型按照贴图纹理坐标展开为贴图资源的纹理坐标信息和法线方向信息,汇总得到各个顶点位置上的纹理资源信息,结合对象模型的顶点位置和各个顶点位置上的纹理资源信息,制作虚拟对象模型的顶点资源数据。
上述实施例内容为在教育类应用程序的游戏或动画制作的客户端侧描述虚拟对象的毛发渲染过程,进一步地,为了完整说明本实施例的实施方式,本实施例还提供了另一种虚拟对象的毛发渲染方法,应用于渲染引擎端,如图3所示,该方法包括:
201、接收模型数据,并读取所述模型数据中虚拟对象模型的顶点资源数据和毛发变化的属性数据。
具体在渲染引擎中,由于模型数据携带有虚拟对象模型需要渲染的相关数据,渲染引擎通过读取虚拟对象模型的顶点资源数据和毛发变化的属性数据,可以针对虚拟对象模型的毛发进行着色和渲染。
202、根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息。
通常情况下,虚拟对象模型在被绘制到屏幕上之前,需要将其从3d世界转换到屏幕二维坐标系中,渲染引擎可以使用自己算法,也可以使用月营建来完成坐标转换。这里毛发的顶点偏移信息为顶点在法线方向上的坐标偏移值,由于毛发的属性变化数据体现虚拟对象模型在毛发方向和毛发长度上的属性特征,具体可以根据毛发属性的变化数据分别提取顶点方向变化信息和顶点长度变化信息,进而根据顶点方向变化信息和长度变化信息,确定顶点在法线方向上的坐标偏移值。
这里顶点的方向变化信息使用颜色通道的颜色值来表现,具体可以使用rgb来表现毛发方向变化,顶点的长度变化信息使用透明度通道的渐变值来表现,具体可以使用颜色透明度0-1来表现毛发长短变化。
203、按照所述毛发长度信息对所述各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行多层毛发渲染。
这里针对虚拟对象模型的渲染过程主要包括顶点着色部分和片元着色部分,在顶点着色部分主要是使用顶点着色器来按照毛发长度信息对虚拟对象模型的顶点沿着毛发方向信息进行逐层外扩绘制,通过绘制各个顶点位置上文理资源信息来绘制虚拟对象毛发,通过外扩绘制层数来控制对象毛发长度以及对象毛发方向,在片元着色部分主要使用片元着色器来对虚拟对象模型中面进行填充,通过光照所形成的各项异性信息控制对象毛发具有更好的高光效果。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,本实施例提供了另一种虚拟对象的毛发渲染方法,如图4所示,该方法包括:
301、接收模型数据,并读取所述模型数据中虚拟对象模型的顶点资源数据和毛发变化的属性数据。
具体在读取模型数据中虚拟对象模型的顶点资源数据和毛发变化的属性数据过程中,考虑到不同数据类型所支持解析类型不同,这里可以分别对顶点资源数据和毛发变化的属性数据对应数据类型进行判断,进而定义相应数据类型支持的数据解析器,使用相应数据类型的数据解析器对顶点资源数据和毛发变化的属性数据所附带的资源列表进行逐个加载解析。
302、根据所述毛发走势数据中毛发在不同颜色通道上颜色值和顶点位置坐标,计算沿着法线方向所形成虚拟对象模型的毛发方向信息。
由于毛发在不同颜色通道上对应有rgb颜色值,顶点位置坐标对应有xyz值,这里可以利用rgb颜色值确定xyz方向的偏移值,并根据偏移值和顶点位置坐标计算沿法线方向所形成虚拟对象模型的毛发方向信息,每个颜色通道对应一个坐标方向,具体数值以相应颜色通道上的颜色值确定,例如,r通道对应x坐标方向,r通道上颜色值为0.5,x坐标方向的偏移值即为0.5,进一步将偏移值与顶点位置坐标求和得到沿着法线方向所形成虚拟对象模型的毛发方向信息。
进一步地,考虑到偏移值可能受到多种条件因素影响,还可以在计算偏移值的过程中加入影响因子,并结合影响因子来确定偏移值,例如,其它通道对偏移值的影响因子,环境光照对偏移值的影响因子等。
303、将所述毛发长度数据中毛发在不同透明度上的灰度值映射为虚拟对象模型的毛发长度信息。
由于毛发在不同透明度通道上对应有灰度值,这里使用该灰度值作为毛发长短的表征,灰度值越大,毛发越长,具体可以预先设置虚拟对象模型的标准毛发长度,使用灰度值与标准毛发长度的乘积来表征虚拟对象模型的毛发长度,得到虚拟对象模型的毛发方向信息,例如,设置标准毛发长度为2,灰度值分布在0-1之间,虚拟对象模型耳朵部位的灰度值为0.2,计算得到默毛发长度为0.4,尾巴部位的灰度值为1,计算得到毛发长度为2。
304、根据所述毛发长度信息,确定毛发渲染的渲染层数。
由于虚拟对象模型的渲染过程相当于基于顶点位置偏移信息进行外扩绘制的过程,具体外扩绘制的层数可以根据毛发长度信息来确定,首先确定每层初始间距,并使用毛发长度信息与每层初始间距的比值来计算毛发渲染层数。毛发越短,需要的渲染层数越少,例如,对于毛发长度为1,每层初始间距为0.05的情况,需要对该顶点的毛发渲染20次可达到相应毛发长度,对于毛发长度为1,需要对该顶点的毛发渲染10次可达到相应毛发长度。
305、针对每层毛发渲染,在顶点着色器中读入各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行外扩绘制,确定每层毛发渲染后的顶点偏移位置信息。
可以理解的是,顶点着色器可以访问虚拟对象模型中的顶点数据,这里可以使用实例数组索引作为顶点数据进行渲染过程的绘图索引,该绘图索引可以是针对每层毛发渲染过程顶点形成的索引,还可以是整个虚拟对象模型顶点所形成的索引,具体可根据渲染层数的需求进行设置,进一步顶点着色器可以按照绘图索引遍历虚拟对象模型中的绘制元素,该绘制元素相当于顶点位置上纹理资源信息,进而对纹理资源信息沿着毛发方向进行外扩绘制,并在外扩绘制过程通过外扩层数来控制毛发长短,每次外扩绘制后即变更一次虚拟对象模型的轮廓,直至毛发达到设定的长度信息和方向信息。
306、针对所述每层毛发渲染后的顶点偏移位置信息,在片元着色器中对所述虚拟对象模型在世界空间中的各项异性信息进行拟合,并利用拟合后的颜色信息进行像素填充,得到每层毛发渲染数据。
在渲染过程中,顶点数据经过顶点着色器的一系列变换,输出的顶点偏移位置信息需要交给片元着色器进行光栅化阶段,这里需要定义一个结构体,用于顶点着色器的输出与片元着色器的输入,从而实现信息的传递,结构体中每个变量需要语义,而且至少包含偏移位置,否则渲染器得不到裁剪空间的坐标,无法显示在屏幕上。
为了能够更好地展现虚拟对象模型的毛发效果,具体在利用拟合后的颜色信息进行像素填充,得到每层毛发渲染数据之前,可以获取场景中环境光照信息和高光信息,并利用游戏场景中环境光照信息和高光信息进行插值得到的各个片元的法线信息,确定虚拟对象模型在世界空间中的各项异性信息。
这里针对渲染过程中来实现各项异性光照时,并不是让每一个顶点在不同的方向都拥有不同法线信息,其计算是基于片元着色器的,如果各项同性,只需要通过插值得到各个片元的法线信息即可,而对于各项异性来说,需要在片元着色器中根据法线扰动规则重新计算法线,这样,虽然看起来是一个平面,但它上面的像素却会因为法线扰动而形成一些纹理、凹槽的效果,从而展示出更多的细节表现,而且,法线的扰动通常是有规律的,所以在不同的方向上,表现出的效果可能会不一样,从而表现出各项异性信息。
307、根据所述毛发渲染的渲染层数,在所述每层毛发渲染数据基础上,重复执行多层毛发渲染。
应说明的是,由于相关技术中毛发长度属于顶点阶段的渲染过程,无法采样纹理,本发明实施例通过在虚拟对象模型中存储顶点颜色值和顶点透明度值,以通过顶点颜色值和顶点透明度值来反映毛发走势和毛发长度,进而在执行多层毛发渲染过程中,按照毛发长度信息和毛发方向信息绘制得到每层毛发渲染数据,从而在渲染过程中可以不断调节和控制毛发长度和毛发方向,提高毛发渲染效果。
进一步的,作为图1方法的具体实现,本申请实施例提供了一种可应用于教育类应用程序的游戏或动画制作端的虚拟对象的毛发渲染装置,如图5所示,该装置包括:设置单元41,导出单元42、传输单元43。
设置单元41,可以用于针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据;
导出单元42,可以用于将所述毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据,所述虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息;
传输单元43,可以用于传输所述模型数据至渲染引擎,以使得所述渲染引擎根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,并沿着所述毛发的顶点偏移信息对所述各个顶点位置上的纹理资源信息进行多层毛发渲染。
本发明实施例提供的虚拟对象的毛发渲染装置,与目前现有技术中针对虚拟对象的局部毛发使用固定长度进行渲染的方式相比,本申请针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据,将毛发变化的属性数据结合虚拟对象模型的顶点资源数据导出至模型数据,该虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息,进一步传输模型数据至渲染引擎,以使得渲染引擎根据模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,并沿着毛发的顶点偏移信息对各个顶点位置上的纹理资源信息进行多层毛发渲染,整个渲染过程利用顶点绘制修改器来存储毛发变化的属性数据,以使得渲染引擎对虚拟对象模型加入毛发长度控制和方向控制,进而调节和控制毛发长度和方向,使得渲染出的毛发具有变化和走向,提高虚拟对象模型的毛发渲染效果。
在具体的应用场景中,如图6所示,所述毛发变化的属性数据包括毛发走势数据和毛发长度数据,所述设置单元41包括:
第一设置模块411,可以用于针对虚拟对象模型设置第一顶点绘制修改器,使用所述第一绘制修改器中顶点颜色通道的颜色偏移值来存储毛发走势数据;
第二设置模块412,可以用于针对虚拟对象模型设置第二顶点绘制修改器,使用所述第二绘制修改器中顶点透明度通道的颜色渐变值来存储毛发长度数据。
在具体的应用场景中,所述第一设置模块411,具体可以用于针对虚拟对象模型设置第一顶点绘制修改器,使用所第一顶点绘制修改器添加虚拟对象模型中毛发的颜色变化;
所述第一设置模块411,具体还可以用于根据所述虚拟对象模型中毛发的颜色变化,确定顶点颜色通道的颜色偏移值,并使用所述颜色偏移值来存储毛发走势数据。
在具体的应用场景中,所述第二设置模块412,具体可以用于针对虚拟对象模型设置第二顶点绘制修改器,使用所述第二顶点绘制修改器添加虚拟对象模型中毛发的长度变化;
所述第二设置模块412,具体还可以用于根据所述虚拟对象模型中毛发的长度变化,确定顶点透明度通道的颜色渐变值,并使用所述颜色渐变值来存储毛发长度数据。
在具体的应用场景中,如图6所示,所述装置还包括:
确定单元44,可以用于在所述将所述毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据之前,针对虚拟对象模型添加顶点,确定虚拟对象模型的顶点位置;
展开单元45,可以用于根据所述虚拟对象模型的顶点位置,将所述对象模型按照贴图纹理坐标展开为贴图资源的纹理坐标信息和法线方向信息,汇总得到各个顶点位置上的纹理资源信息;
制作单元46,可以用于结合所述对象模型的顶点位置和所述各个顶点位置上的纹理资源信息,制作虚拟对象模型的顶点资源数据。
需要说明的是,本实施例提供的一种可应用于教育类应用程序的游戏或动画制作端的虚拟对象的毛发渲染装置所涉及各功能单元的其它相应描述,可以参考图1中的对应描述,在此不再赘述。
进一步地,作为图3-图4方法的具体实现,本申请实施例提供了一种应用于渲染引擎端的虚拟对象的毛发渲染装置,如图7所示,该装置包括:接收单元51、计算单元52、渲染单元53。
接收单元51,可以用于接收模型数据,并读取所述模型数据中虚拟对象模型的顶点资源数据和毛发变化的属性数据,所述虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息;
计算单元52,可以用于根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,所述顶点偏移信息包括虚拟对象模型的毛发方向信息和毛发长度信息;
渲染单元53,可以用于按照所述毛发长度信息对所述各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行多层毛发渲染。
在实际应用场景中,如图8所示,所述毛发变化的属性数据包括毛发走势数据和毛发长度数据,所述毛发走势数据包括毛发在不同颜色通道的的颜色值,所述毛发长度数据包括毛发在不同透明程度上灰度值,所述计算单元52包括:
计算模块521,可以用于根据所述毛发走势数据中毛发在不同颜色通道上颜色值和顶点位置坐标,计算沿着法线方向所形成虚拟对象模型的毛发方向信息;
映射模块522,可以用于将所述毛发长度数据中毛发在不同透明度上的灰度值映射为虚拟对象模型的毛发长度信息。
在实际应用场景中,如图8所示,所述渲染单元53包括:
确定模块531,可以用于根据所述毛发长度信息,确定毛发渲染的渲染层数;
外扩模块532,可以用于针对每层毛发渲染,在顶点着色器中读入各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行外扩绘制,确定每层毛发渲染后的顶点偏移位置信息;
渲染模块533,可以用于根据所述毛发渲染的渲染层数,在所述每层毛发渲染后的顶点偏移位置基础上,重复执行多层毛发渲染。
在实际应用场景中,如图8所示,所述渲染单元53还包括:
拟合模块534,可以用于在所述针对每层毛发渲染,在顶点着色器中读入各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行外扩绘制,确定每层毛发渲染后的顶点偏移位置信息之后,针对所述每层毛发渲染后的顶点偏移位置信息,在片元着色器中对所述虚拟对象模型在世界空间中的各项异性信息进行拟合,并利用拟合后的颜色信息进行像素填充,得到每层毛发渲染数据;
所述渲染模块533,具体可以用于根据所述毛发渲染的渲染层数,在所述每层毛发渲染数据基础上,重复执行多层毛发渲染。
需要说明的是,本实施例提供的一种可应用于渲染引擎端的虚拟对象的毛发渲染装置所涉及各功能单元的其它相应描述,可以参考图3-图4中的对应描述,在此不再赘述。
基于上述如图1所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1所示的虚拟对象的毛发渲染方法;基于上述如图3-图4所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图3-图4所示的虚拟对象的毛发渲染方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1所示的方法,以及图5-图6所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种虚拟对象的毛发渲染的实体设备,具体可以为计算机,智能手机,平板电脑,智能手表,服务器,或者网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1所示的虚拟对象的毛发渲染方法。
基于上述如图3-图4所示的方法,以及图7-图8所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了另一种虚拟对象的毛发渲染的实体设备,具体可以为计算机,智能手机,平板电脑,智能手表,或者网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图3-图4所示的虚拟对象的毛发渲染方法。
可选的,上述两种实体设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
在示例性实施例中,参见图9,上述实体设备包括通信总线、处理器、存储器和通信接口,还可以包括、输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的画作挂载方法。
本领域技术人员可以理解,本实施例提供的一种虚拟对象的毛发渲染的实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述店铺搜索信息处理的实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本申请的技术方案,与目前现有方式相比,本申请在整个渲染过程利用顶点绘制修改器来存储毛发变化的属性数据,以使得渲染引擎增加对虚拟对象模型加入毛发长度控制和方向控制,进而调节和控制毛发长度和方向,使得渲染出的毛发具有变化和走向,提高虚拟对象模型的毛发渲染效果。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

Claims (14)

1.一种虚拟对象的毛发渲染方法,其特征在于,应用于制作端,包括:
针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据;
将所述毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据,所述虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息;
传输所述模型数据至渲染引擎,以使得所述渲染引擎根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,并沿着所述毛发的顶点偏移信息对所述各个顶点位置上的纹理资源信息进行多层毛发渲染。
2.根据权利要求1所述的方法,其特征在于,所述毛发变化的属性数据包括毛发走势数据和毛发长度数据,所述针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据,具体包括:
针对虚拟对象模型设置第一顶点绘制修改器,使用所述第一绘制修改器中顶点颜色通道的颜色偏移值来存储毛发走势数据;
针对虚拟对象模型设置第二顶点绘制修改器,使用所述第二绘制修改器中顶点透明度通道的颜色渐变值来存储毛发长度数据。
3.根据权利要求2所述的方法,其特征在于,所述针对虚拟对象模型设置第一顶点绘制修改器,使用所述第一绘制修改器中顶点颜色通道的颜色偏移值来存储毛发走势数据,具体包括:
针对虚拟对象模型设置第一顶点绘制修改器,使用所第一顶点绘制修改器添加虚拟对象模型中毛发的颜色变化;
根据所述虚拟对象模型中毛发的颜色变化,确定顶点颜色通道的颜色偏移值,并使用所述颜色偏移值来存储毛发走势数据。
4.根据权利要求2所述的方法,其特征在于,所述针对虚拟对象模型设置第二顶点绘制修改器,使用所述第二绘制修改器中顶点透明度通道的颜色渐变值来存储毛发长度数据,具体包括:
针对虚拟对象模型设置第二顶点绘制修改器,使用所述第二顶点绘制修改器添加虚拟对象模型中毛发的长度变化;
根据所述虚拟对象模型中毛发的长度变化,确定顶点透明度通道的颜色渐变值,并使用所述颜色渐变值来存储毛发长度数据。
5.根据权利要求1-4中任一项所述的方法,其特征在于,在所述将所述毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据之前,所述方法还包括:
针对虚拟对象模型添加顶点,确定虚拟对象模型的顶点位置;
根据所述虚拟对象模型的顶点位置,将所述对象模型按照贴图纹理坐标展开为贴图资源的纹理坐标信息和法线方向信息,汇总得到各个顶点位置上的纹理资源信息;
结合所述对象模型的顶点位置和所述各个顶点位置上的纹理资源信息,制作虚拟对象模型的顶点资源数据。
6.一种虚拟对象的毛发渲染方法,其特征在于,应用于渲染引擎端,包括:
接收模型数据,并读取所述模型数据中虚拟对象模型的顶点资源数据和毛发变化的属性数据,所述虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息;
根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,所述顶点偏移信息包括虚拟对象模型的毛发方向信息和毛发长度信息;
按照所述毛发长度信息对所述各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行多层毛发渲染。
7.根据权利要求6所述的方法,其特征在于,所述毛发变化的属性数据包括毛发走势数据和毛发长度数据,所述毛发走势数据包括毛发在不同颜色通道的的颜色值,所述毛发长度数据包括毛发在不同透明程度上灰度值,所述根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,具体包括:
根据所述毛发走势数据中毛发在不同颜色通道上颜色值和顶点位置坐标,计算沿着法线方向所形成虚拟对象模型的毛发方向信息;
将所述毛发长度数据中毛发在不同透明度上的灰度值映射为虚拟对象模型的毛发长度信息。
8.根据权利要求6所述的方法,其特征在于,所述按照所述毛发长度信息对所述各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行多层毛发渲染,具体包括:
根据所述毛发长度信息,确定毛发渲染的渲染层数;
针对每层毛发渲染,在顶点着色器中读入各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行外扩绘制,确定每层毛发渲染后的顶点偏移位置信息;
根据所述毛发渲染的渲染层数,在所述每层毛发渲染后的顶点偏移位置基础上,重复执行多层毛发渲染。
9.根据权利要求8所述的方法,其特征在于,在所述针对每层毛发渲染,在顶点着色器中读入各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行外扩绘制,确定每层毛发渲染后的顶点偏移位置信息之后,所述方法还包括:
针对所述每层毛发渲染后的顶点偏移位置信息,在片元着色器中对所述虚拟对象模型在世界空间中的各项异性信息进行拟合,并利用拟合后的颜色信息进行像素填充,得到每层毛发渲染数据;
根据所述毛发渲染的渲染层数,在所述每层毛发渲染数据基础上,重复执行多层毛发渲染。
10.根据权利要求9所述的方法,其特征在于,在所述针对所述每层毛发渲染后的顶点偏移位置信息,在片元着色器中对所述虚拟对象模型在世界空间中的各项异性信息进行拟合,并利用拟合后的颜色信息进行像素填充,得到每层毛发渲染数据之前,所述方法还包括:
获取游戏场景中环境光照信息和高光信息;
利用所述游戏场景中环境光照信息和高光信息进行插值得到的各个片元的法线信息,确定所述虚拟对象模型在世界空间中的各项异性信息。
11.一种虚拟对象的毛发渲染装置,其特征在于,包括:
设置单元,用于针对虚拟对象模型,利用顶点绘制修改器中的资源通道来存储毛发变化的属性数据;
导出单元,用于将所述毛发变化的属性数据结合所述虚拟对象模型的顶点资源数据导出至模型数据,所述虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息;
传输单元,用于传输所述模型数据至渲染引擎,以使得所述渲染引擎根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,并沿着所述毛发的顶点偏移信息对所述各个顶点位置上的纹理资源信息进行多层毛发渲染。
12.一种虚拟对象的毛发渲染装置,其特征在于,包括:
接收单元,用于接收模型数据,并读取所述模型数据中虚拟对象模型的顶点资源数据和毛发变化的属性数据,所述虚拟对象模型的顶点资源数据记录有顶点位置信息和各个顶点位置上的纹理资源信息;
计算单元,用于根据所述模型数据中毛发变化的属性数据计算毛发的顶点偏移信息,所述顶点偏移信息包括虚拟对象模型的毛发方向信息和毛发长度信息;
渲染单元,用于按照所述毛发长度信息对所述各个顶点位置上的纹理资源信息沿着所述毛发方向信息进行多层毛发渲染。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述虚拟对象的毛发渲染方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述虚拟对象的毛发渲染方法的步骤。
CN202111372566.3A 2021-11-18 2021-11-18 虚拟对象的毛发渲染方法、装置及设备 Pending CN114119821A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111372566.3A CN114119821A (zh) 2021-11-18 2021-11-18 虚拟对象的毛发渲染方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111372566.3A CN114119821A (zh) 2021-11-18 2021-11-18 虚拟对象的毛发渲染方法、装置及设备

Publications (1)

Publication Number Publication Date
CN114119821A true CN114119821A (zh) 2022-03-01

Family

ID=80397944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111372566.3A Pending CN114119821A (zh) 2021-11-18 2021-11-18 虚拟对象的毛发渲染方法、装置及设备

Country Status (1)

Country Link
CN (1) CN114119821A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116883567A (zh) * 2023-07-07 2023-10-13 上海散爆信息技术有限公司 一种绒毛渲染方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116883567A (zh) * 2023-07-07 2023-10-13 上海散爆信息技术有限公司 一种绒毛渲染方法和装置

Similar Documents

Publication Publication Date Title
CN106710003B (zh) 一种基于OpenGL ES的三维拍照方法和系统
US8514238B2 (en) System and method for adding vector textures to vector graphics images
US6677944B1 (en) Three-dimensional image generating apparatus that creates a three-dimensional model from a two-dimensional image by image processing
US9142056B1 (en) Mixed-order compositing for images having three-dimensional painting effects
US20020027555A1 (en) Method of rendering motion blur image and apparatus therefor
CN108959392B (zh) 在3d模型上展示富文本的方法、装置及设备
US8988461B1 (en) 3D drawing and painting system with a 3D scalar field
KR20080018407A (ko) 3차원 캐릭터의 변형을 제공하는 캐릭터 변형 프로그램을기록한 컴퓨터 판독가능 기록매체
CN111476877B (zh) 一种阴影渲染的方法及装置、电子设备、存储介质
US7777745B2 (en) Edge effect
US20030107572A1 (en) Method and apparatus for reducing the polygon count of a textured, three dimensional model of an object
CN105184843B (zh) 一种基于OpenSceneGraph的三维动画制作方法
CN106898040A (zh) 虚拟资源对象渲染方法和装置
CN116670723A (zh) 用于定制产品的合成视图的高质量渲染的系统和方法
CN114119818A (zh) 场景模型的渲染方法、装置及设备
US7663638B2 (en) Stroked fill
CN114119821A (zh) 虚拟对象的毛发渲染方法、装置及设备
CN113936086A (zh) 毛发模型的生成方法、装置、电子设备以及存储介质
US9317967B1 (en) Deformation of surface objects
CN116243831B (zh) 一种虚拟云展厅交互方法及系统
JP5893142B2 (ja) 画像処理装置および画像処理方法
JP2023178274A (ja) メッシュ頂点位置についての求根および反復を用いて表面を近似するポリゴンメッシュを生成する方法およびシステム
Gois et al. Interactive shading of 2.5 D models.
US10636210B2 (en) Dynamic contour volume deformation
Birukov et al. Elaboration of visualization modes for lighting simulation in catia cad system

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