一种真实感服装渲染中的闪粉面料实时渲染方法技术

技术编号:29226653 阅读:54 留言:0更新日期:2021-07-10 01:12
本发明专利技术公开了一种真实感服装渲染中的闪粉面料实时渲染方法,包括步骤:根据用户输入的缩放比例,将渲染像素的纹理坐标值映射到0到1之间;根据用户输入的闪粉数量,在单位范围的二维空间进行网格划分;根据渲染像素映射后的坐标值与闪粉半径,计算闪粉的不透明度;根据渲染像素的纹理坐标值,计算出0

【技术实现步骤摘要】
一种真实感服装渲染中的闪粉面料实时渲染方法


[0001]本专利技术涉及实时渲染
,具体涉及一种真实感服装渲染中的闪粉面料实时渲染方法。

技术介绍

[0002]闪粉面料是一种复杂的具有特殊材质结构的面料。该面料上随机分布了大量的闪亮颗粒。这类面料表面附有的颗粒在光照下会散发出光芒。根据附着的颗粒不同,闪粉的光学特性也各不相同,且大致可以分为两类。第一类是金属光泽较小的颗粒,它不像金属或者光滑物体那样会随者光照以及视角的变化而产生明显的闪烁,它们的光学特性更像是非金属或者是半透明物质,无论从什么视角对它们进行观察,它们的光亮程度都不会发生明显的变化,这类粉能让面料表面呈现出散乱的颜色感,多用于手机壳和服饰;另一类是存在一定金属光泽的材料,例如金葱粉和珠光粉,它们会随着视角而发生一定的散射,给人一定的闪烁感,多用于美妆和服饰。
[0003]面料实时渲染所调用的图形库程序编程接口为OpenGL。OpenGL是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口。OpenGL存在于Windows,部分UNIX平台和Mac OS,利用了图形加速硬件以高效实现渲染。这些实现一般由显示设备厂商提供,而且非常依赖于该厂商提供的硬件。它严格规范了图形库中每个函数的执行与输出,并封装了图形库函数的内部实现,是常用的图形库程序编程接口之一。本专利技术所涉及的内容主要与OpenGL的片段着色器编程部分相关,其编程语言使用GLSL语言。
[0004]面料实时渲染所用的渲染方法为前向渲染。与延迟渲染不同,前向渲染仅渲染一次就能够得到最终的渲染结果。前向渲染与延迟渲染相比,其弱点在于前向渲染无法很好地处理多光源的情况,而服装渲染由于其目的是渲染较小范围内的服装,环境光就能够较好地满足光源效果。而前向渲染的优势在于其速度快且占用显存小,更适合复杂渲染的实时渲染。前向渲染的一次渲染主要包括了顶点数据传入、顶点着色、曲面细分、几何着色、片元分装、片元剔除、光栅化、片段着色、测试与混合等步骤。而本专利技术是对渲染过程中的片段着色器过程进行编程,这主要是在计算每一个像素的最终颜色。
[0005]面料实时渲染所用到的计算方法是基于物理的渲染(PBR)的改进方法。基于物理的渲染将出射光区分为散射与反射部分,并遵循能量守恒的定律进行计算。其考虑了界面的微表面分布特点以及菲涅尔效应,使渲染的结果更接近于真实,是最常用的渲染计算方法。但是该方法主要适用于较常见的简单表面和折射性较差或不透光的材质。
[0006]目前主流的基于物理的渲染模型将材质的表面结构简化微表面模型,故不会不考虑闪粉面料表面的闪亮颗粒与光的交互。闪粉面料由于其独特的材质结构而拥有独特的光学特性,难以被通用的渲染模型所涵盖。且目前,我国真实感服装仿真软件大部分都不支持闪粉面料的实时渲染,闪粉材料的原理和渲染处于理性探讨阶段,与实际应用联系不够,且没有任何方法可以使用软件现有的材质模型来达到闪粉面料的渲染效果。

技术实现思路

[0007]针对上述技术问题以及本领域存在的不足之处,本专利技术提供了一种真实感服装渲染中的闪粉面料实时渲染方法,采用所述渲染方法所得到的渲染结果保证了闪粉面料渲染的真实性和实时性,能够实时地渲染闪粉面料并且其真实感满足了应用需求。
[0008]一种真实感服装渲染中的闪粉面料实时渲染方法,包括步骤:
[0009](1)根据用户输入的缩放比例,将渲染像素的纹理坐标值映射到0到1之间;
[0010](2)根据用户输入的闪粉数量,在单位范围的二维空间进行网格划分;
[0011](3)根据所述渲染像素映射后的坐标值与闪粉半径,计算闪粉的不透明度;
[0012](4)根据渲染像素的纹理坐标值,计算出0

1之间的随机数,然后计算出随机强度修正系数;
[0013](5)根据用户输入的闪粉颜色以及计算得到的随机强度修正系数,计算闪粉部分的渲染结果;或者,
[0014]根据用户输入的闪粉颜色,对闪粉颜色进行随机色相修正后,根据修正后的闪粉颜色以及计算得到的随机强度修正系数,计算闪粉部分的渲染结果;
[0015](6)根据计算得到的闪粉的不透明度以及基底面料的原有渲染结果,计算最终渲染的结果。
[0016]步骤(1)中,所述渲染像素映射后的坐标值计算公式如下:
[0017]P
i
=mod(P
uv
·
α,1.0),
[0018]其中,P
uv
表示渲染像素的纹理坐标值,P
i
表示所述渲染像素映射后的坐标值,α代表用户输入的缩放比例。
[0019]步骤(2)中,所述网格划分的细度与闪粉数量直接相关,网格在所述二维空间的两个维度上都划分成一定数量的等份,其数量值为闪粉数量的100倍。
[0020]作为优选,步骤(2)中,所述闪粉数量为1

200之间的整数。
[0021]步骤(3)中,所述不透明度的计算公式如下:
[0022][0023]其中,α
glitter
表示不透明度,n表示以所述渲染像素映射后的坐标值为中心、以所述闪粉半径为半径的圆内所包含的网格点数,r
i
表示所述渲染像素映射后的坐标值到上述n个网格点的距离,R表示闪粉半径,一般取1/6000左右。
[0024]步骤(4)中:
[0025]所述随机数的计算方法如下:
[0026]P'=(12.9898,78.233),
[0027]x=fract(sin(P
·
P')*43758.5453123),
[0028]其中,x表示计算得到的随机数,fract()表示取小数部分的函数,P表示所述渲染像素映射后的坐标值;
[0029]所述随机强度修正系数计算如下:
[0030][0031]其中,K
r
表示随机强度修正系数,x
i
表示计算得到的随机数,n表示以所述渲染像素映射后的坐标值为中心、以所述闪粉半径为半径的圆内所包含的网格点数,r
i
表示所述渲染像素映射后的坐标值到上述n个网格点的距离,R表示闪粉半径,一般取1/6000左右。
[0032]步骤(5)中,所述随机色相的计算公式如下:
[0033]H
random
=f
random
(P
uv
)*360,
[0034]C
hue
=f
HSVtoRGB
((H
random
,1,1)),
[0035][0036]其中,H
random
表示随机色相,f
random
()函数表示根据一个二维向量计算一个0到1之间的随机数,P
uv
代表所述渲染像素映射后的坐标值,C
hue
表示色相为H
ran本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种真实感服装渲染中的闪粉面料实时渲染方法,其特征在于,包括步骤:(1)根据用户输入的缩放比例,将渲染像素的纹理坐标值映射到0到1之间;(2)根据用户输入的闪粉数量,在单位范围的二维空间进行网格划分;(3)根据所述渲染像素映射后的坐标值与闪粉半径,计算闪粉的不透明度;(4)根据渲染像素的纹理坐标值,计算出0

1之间的随机数,然后计算出随机强度修正系数;(5)根据用户输入的闪粉颜色以及计算得到的随机强度修正系数,计算闪粉部分的渲染结果;或者,根据用户输入的闪粉颜色,对闪粉颜色进行随机色相修正后,根据修正后的闪粉颜色以及计算得到的随机强度修正系数,计算闪粉部分的渲染结果;(6)根据计算得到的闪粉的不透明度以及基底面料的原有渲染结果,计算最终渲染的结果。2.根据权利要求1所述的真实感服装渲染中的闪粉面料实时渲染方法,其特征在于,步骤(1)中,所述渲染像素映射后的坐标值计算公式如下:P
i
=mod(P
uv
·
α,1.0),其中,P
uv
表示渲染像素的纹理坐标值,P
i
表示所述渲染像素映射后的坐标值,α代表用户输入的缩放比例。3.根据权利要求1所述的真实感服装渲染中的闪粉面料实时渲染方法,其特征在于,步骤(2)中,所述网格划分的细度与闪粉数量直接相关,网格在所述二维空间的两个维度上都划分成一定数量的等份,其数量值为闪粉数量的100倍。4.根据权利要求1所述的真实感服装渲染中的闪粉面料实时渲染方法,其特征在于,步骤(2)中,所述闪粉数量为1

200之间的整数。5.根据权利要求1所述的真实感服装渲染中的闪粉面料实时渲染方法,其特征在于,步骤(3)中,所述不透明度的计算公式如下:其中,α
glitter
表示不透明度,n表示以所述渲染像素映射后的坐标值为中心、以所述闪粉半径为半径的圆内所包含的网格点数,r
i
表示所述渲染像素映射后的坐标值到上述n个网格点的距离,R表示闪粉半径。6.根据权利要求1所述的真实感服装渲染中的闪粉面料实时渲染方法,其特征在于,步骤(4)中:所述随机数的计算方法如下:P'=(12.9898,78.233),x=fract(sin(P
·
P')*43758.5453123),其中,x表示计算得到的随机数,fract()表示取小数部分的函数,P表示所述渲染像素映射后的坐标值;所述随机强度修正系数计算如下:
其中,K
r
表示随机强度修正系数,x
i
表示计算得到的随机数,n表示以所述渲染像素映射后的坐标值为中心、以所述闪粉半径为半径的圆内所包含的网格点数,r
i
表示所述渲染像...

【专利技术属性】
技术研发人员:朱浩栋郭亮骆立康刘郴金小刚
申请(专利权)人:浙江凌迪数字科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1