一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种透明多面体的渲染方法及装置与流程

2022-02-20 22:03:30 来源:中国专利 TAG:


1.本公开涉及图像渲染技术领域,尤其涉及一种透明多面体的渲染方法及装置。


背景技术:

2.在真实世界中,由于透明多面体的折射率较高,进入透明多面体内部的光线会在透明多面体内经过多次反射,然后再折射出透明多面体,因此透明多面体往往表现出非常高的视觉复杂性。
3.进行透明多面体的渲染时,为了提升透明多面体的真实感,需要计算光线在透明多面体内的反射,进而确定出光线折射出透明多面体的位置,以采样透明多面体的表面的颜色值。然而,光线很可能需要在透明多面体内部经过多次反射才会折射出透明多面体,因此计算光线在透明多面体内的反射是一个非常复杂的过程,进而导致渲染透明多面体时的计算量较大。


技术实现要素:

4.有鉴于此,本公开实施例提供了一种透明多面体的渲染方法及装置,用于减少渲染透明多面体时的计算量。
5.为了实现上述目的,本公开实施例提供技术方案如下:
6.第一方面,本公开的实施例提供了一种透明多面体的渲染方法,包括:
7.获取入射方向,所述入射方向为由渲染场景的视点位置发射的光线通过透明多面体表面上的目标位置折射进入所述透明多面体内部后的传播方向;
8.根据所述入射方向和所述透明多面体的内部法线贴图,获取出射方向,所述出射方向为所述光线折射出所述透明多面体后的传播方向;
9.根据所述出射方向对环境贴图进行采样,获取目标颜色值;
10.根据所述目标颜色值渲染所述目标位置。
11.作为本公开实施例一种可选的实施方式,所述根据所述入射方向和所述透明多面体的内部法线贴图,获取出射方向,包括:
12.将所述入射方向作为采样方向对所述内部法线贴图进行采样,获取法线方向;
13.判断所述采样方向与所述法线方向的夹角是否小于阈值角度;
14.若是,则根据所述采样方向和第一折射率获取所述出射方向;
15.若否,则根据所述采样方向和所述法线方向获取反射方向,并判断所述光线的反射次数是否小于阈值次数;
16.若所述反射次数小于所述阈值次数,则将所述反射方向作为所述采样方向重新对所述内部法线贴图进行采样获取所述法线方向以及判断所述采样方向与所述法线方向的夹角是否小于所述阈值角度;
17.若所述反射次数大于所述阈值次数,则根据所述反射方向和第二折射率获取所述出射方向。
18.作为本公开实施例一种可选的实施方式,所述第一折射率和所述第二折射率负相关。
19.作为本公开实施例一种可选的实施方式,所述环境贴图为实时对真实场景进行图像采集获取的二维图像。
20.作为本公开实施例一种可选的实施方式,所述根据所述出射方向对环境贴图进行采样,获取目标颜色值,包括:
21.通过球面环境映射将所述出射方向映射为二维纹理坐标;
22.根据所述二维纹理坐标对所述环境贴图进行采样,获取所述目标颜色值。
23.作为本公开实施例一种可选的实施方式,所述通过球面环境映射将所述出射方向映射为二维纹理坐标,包括:
24.根据所述出射方向获取第一向量,所述第一向量的向量坐标分别为所述出射方向的第一方向坐标、所述出射方向的第二方向坐标以及所述出射方向的第三方向坐标与预设值的和;
25.通过长度计算函数获取所述第一向量的模;
26.根据所述出射方向的第一坐标值和所述第一向量的模,获取所述二维纹理坐标中的第一坐标值;
27.根据所述出射方向的第二坐标值和所述第一向量的模,获取所述二维纹理坐标中的第二坐标值。
28.作为本公开实施例一种可选的实施方式,所述获取入射方向,包括:
29.根据所述视点位置与所述目标位置的连线的方向和各个颜色通道对应的折射率获取各个颜色通道对应的入射方向;
30.其中,各个颜色通道对应的折射率与各个颜色通道对应的光波波长负相关。
31.第二方面,本公开实施例提供一种透明多面体的渲染装置,包括:
32.第一获取单元,用于获取入射方向,所述入射方向为由渲染场景的视点位置发射的光线通过透明多面体表面上的目标位置折射进入所述透明多面体内部后的传播方向;
33.第二获取单元,用于根据所述入射方向和所述透明多面体的内部法线贴图,获取出射方向,所述出射方向为所述光线折射出所述透明多面体后的传播方向;
34.采样单元,用于根据所述出射方向对环境贴图进行采样,获取目标颜色值;
35.渲染单元,用于根据所述目标颜色值渲染所述目标位置。
36.作为本公开实施例一种可选的实施方式,所述第二获取单元,具体用于将所述入射方向作为采样方向对所述内部法线贴图进行采样,获取法线方向;判断所述采样方向与所述法线方向的夹角是否小于阈值角度;若是,则根据所述采样方向和第一折射率获取所述出射方向;若否,则根据所述采样方向和所述法线方向获取反射方向,并判断所述光线的反射次数是否小于阈值次数;若所述反射次数小于所述阈值次数,则将所述反射方向作为所述采样方向重新对所述内部法线贴图进行采样获取所述法线方向以及判断所述采样方向与所述法线方向的夹角是否小于所述阈值角度;若所述反射次数大于所述阈值次数,则根据所述反射方向和第二折射率获取所述出射方向。
37.作为本公开实施例一种可选的实施方式,所述第一折射率和所述第二折射率负相关。
38.作为本公开实施例一种可选的实施方式,所述环境贴图为实时对真实场景进行图像采集获取的二维图像。
39.作为本公开实施例一种可选的实施方式,所述采样单元,具体用于通过球面环境映射将所述出射方向映射为二维纹理坐标,根据所述二维纹理坐标对所述环境贴图进行采样,获取所述目标颜色值。
40.作为本公开实施例一种可选的实施方式,所述采样单元,具体用于根据所述出射方向获取第一向量,所述第一向量的向量坐标分别为所述出射方向的第一方向坐标、所述出射方向的第二方向坐标以及所述出射方向的第三方向坐标与预设值的和;通过长度计算函数获取所述第一向量的模;根据所述出射方向的第一坐标值和所述第一向量的模,获取所述二维纹理坐标中的第一坐标值;根据所述出射方向的第二坐标值和所述第一向量的模,获取所述二维纹理坐标中的第二坐标值。
41.作为本公开实施例一种可选的实施方式,所述第一获取单元,具体用于,根据所述视点位置与所述目标位置的连线的方向和各个颜色通道对应的折射率获取各个颜色通道对应的入射方向;
42.其中,各个颜色通道对应的折射率与各个颜色通道对应的光波波长负相关。
43.第三方面,本公开实施例提供一种电子设备,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在调用计算机程序时,使得所述电子设备实现上述任一实施例所述的透明多面体的渲染方法。
44.第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述任一实施例所述的透明多面体的渲染方法。
45.第五方面,本公开实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述任一实施例所述的透明多面体的渲染方法。
46.本公开实施例提供的透明多面体的渲染方法在进行透明多面体的渲染时,首先获取由渲染场景的视点位置发射的光线通过透明多面体表面上的目标位置折射进入所述透明多面体时的入射方向,然后根据入射方向和透明多面体的内部法线贴图,获取光线折射出透明多面体后的出射方向,再根据出射方向对环境贴图进行采样,获取目标颜色值以及根据所述目标颜色值渲染所述目标位置。由于本公开实施例提供的透明多面体的渲染方法可以光线进入透明多面体后的方向和透明多面体的内部法线贴图计算出快捷的计算出光线折射出所述透明多面体后的传播方向,因此本公开实施例可以简化光线在透明多面体内的反射的计算,进而减少渲染透明多面体时的计算量,提升渲染透明多面体的实时性。
附图说明
47.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
48.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
49.图1为本公开实施例提供的透明多面体的渲染方法的步骤流程图之一;
50.图2为本公开实施例提供的入射方向的示意图;
51.图3为本公开实施例提供的内部法线贴图的示意图;
52.图4为本公开实施例提供的出射方向的示意图;
53.图5为本公开实施例提供的透明多面体的渲染方法的步骤流程图之二;
54.图6为本公开实施例提供的内部反射光路示意图;
55.图7为本公开实施例提供的球面环境映射模型的示意图;
56.图8为本公开不同颜色通道对应的入射方向示意图;
57.图9为本公开实施例提供的透明多面体的渲染装置的结构示意图;
58.图10为本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
59.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
60.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
61.在本公开实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本公开实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本公开实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
62.本公开实施例中的透明多面体可也为钻石、棱镜、玻璃碎片等,下述实施例中以透明多面体为钻石为例对本公开实施例提供的透明多面体的渲染方法进行说明,但本公开实施例并不限定于此。
63.基于上述内容,本公开实施例提供了一种透明多面体的渲染方法,参照图1所示,该透明多面体的渲染方法包括如下步骤:
64.s11、获取入射方向。
65.其中,所述入射方向为由渲染场景的视点位置发射的光线通过透明多面体表面上的目标位置折射进入所述透明多面体内部后的传播方向。
66.本公开实施例中渲染场景的视点位置可以为渲染场景中虚拟相机所在位置。即,渲染场景中观察待渲染的透明多面体的位置点。
67.示例性的,参照图2所示,渲染场景的视点位置21与透明多面体200表面上的目标位置22之间的连线的方向为f1,因此由视点位置21发射的光线首先沿方向f1传播到目标位置22。光线到达目标位置22后,由于透明多面体200对光线的折射作用,光线会折射进入所述透明多面体内部,且折射后的方向为f2,因此图2所示实施例中的入射方向为方向f2。
68.s12、根据所述入射方向和所述透明多面体的内部法线贴图(normal mapping),获取出射方向。
69.其中,所述出射方向为所述光线折射出所述透明多面体后的传播方向。
70.本发明实施例中的内部法线贴图是指用于在渲染过程中采样获取透明多面体内部法线方向的图像,内部法线贴图中记录有透明多面体内各个位置的法线方向,任意光线可以根据传播方向对内部法线贴图进行采样,以获取对应的法线方向。
71.具体的,光线在透明多面体内传播过程中,若光线的传播方向与对应的法线方向满足折射出透明多面体的条件,则光线会折射出透明多面体,若光线的传播方向与对应的法线方向满足全反射条件,则光线会发生全反射,光线的传播方向变为反射方向继续传播,直到光线传播方向与对应的法线方向满足折射出透明多面体的条件。上述实施例中可以根据传播方向对透明多面体的内部法线贴图进行此采样获取对应的法线方向,再判断传播方向与对应的法线方向是否满足折射出透明多面体的条件,若不满足折射出透明多面体的条件,则进行下一次的法线方向的采样以及足折射出透明多面体的条件的判断,直到满足折射出透明多面体的条件;若满足折射出透明多面体的条件,则根据传播方向和法线方向获取出射方向。
72.本公开实施例中的透明多面体的内部法线贴图可以是根据透明多面体模型预先生成的。获取内部法线贴图的过程可以包括:将虚拟相机设置于透明多面体模型内部,然后分别采集上下左右六个方向上各个位置的法线方向,从而渲染出透明多面体的内部法线贴图。示例性的,参照图3所示,内部法线贴图可以包括:第一内部法线贴图31、第二内部法线贴图32、第三内部法线贴图33、第四内部法线贴图34、第五内部法线贴图35以及第六内部法线贴图36。第一内部法线贴图31、第二内部法线贴图32、第三内部法线贴图33、第四内部法线贴图34、第五内部法线贴图35以及第六内部法线贴图36,围合形成闭合立方体空间,因此任意方向均可以在透明多面体的内部法线贴图上唯一的采集到一个法线方向。
73.进一步的,根据所述入射方向和所述透明多面体的内部法线贴图,获取出射方向的实现方式可以包括:
74.根据入射方向在内部法线贴图上采样,获取对应的法线方向;
75.根据法线方向确定光线发生折射或反射;
76.若光线发生折射,则根据入射方向、法线方向以及折射率计算出射方向;
77.若光线发生反射,则重新根据反射方向获取对应的法线方向以及根据法线方向确定光线发生折射或反射,直到光线发生折射时,根据反射方向、法线方向以及折射率计算出射方向。
78.示例性的,参照图4所示,光线由目标位置22折射进入透明多面体200内部时的入射方向为f2。进入透明多面体200内部后,光线发生了多次反射,并在多此反射后,折射出了所述透明多面体200,且光线折射出所述透明多面体200后的传播方向为f3,因此图4所示实例中出射方向为方向f3。
79.s13、根据所述出射方向对环境贴图(environment mapping)进行采样,获取目标颜色值。
80.本发明实施例中的环境贴图是指用于在渲染过程中采样获取透明多面体的反射的环境中的光线的颜色信息的图像,环境贴图中记录有透明多面体各个位置所反射的光线的颜色信息,透明多面体任意位置反射光线可以根据传播方向对环境贴图进行采样,以获取对应的颜色信息。
81.作为本公开实施例一种可选的实施方式,所述环境贴图为实时对真实场景进行图
像采集获取的二维图像。
82.设置环境贴图为实时对真实场景进行图像采集获取的二维图像可以使透明多面体的渲染效果随着增强现实(augmented reality,ar)场景变化而变化,进而提升渲染出的透明多面体的真实感。
83.s14、根据所述目标颜色值渲染所述目标位置。
84.需要说明的是,本公开实施例中根据目标颜色值渲染所述目标位置可以为将目标位置的颜色渲染为所述目标颜色值,也可以为将目标颜色作为目标位置的颜色之一与目标位置的其它颜色进行加权融合,然后再根据融合得到的颜色渲染所述目标位置。例如:将目标颜色作为目标位置折射光颜色与目标位置的反射光颜色进行加权融合,然后再根据融合得到的颜色渲染所述目标位置。
85.需要说明的是,本公开实施例的实现原理之一为:根据光路可逆原理,光线由光源传播至视点位置的光路与光线由视点位置传播至光源的光路是互逆的。为了简化相关计算,上述实施例中以视点位置为起点、光源为终点来进行光路的计算,并将计算得到的光路进行方向转换后作为光线由光源传播至视点位置的光路。视点位置与光源之间的光路主要可以分为三部分,第一分部为:光线在视点位置与透明多面体表面之间的传播路径,第二部分为:光线在透明多面体内的传播路径,第三部分为:光线在透明多面体表面与光源之间的传播路径。上述实施例中分别确定了该三部分光路,因此可以确定透明多面体的各个位置所透射的环境贴图的颜色,进而根据透明多面体的各个位置所透射的环境贴图的颜色进行透明多面体的渲染。
86.还需要说明的是,上述实施例提供的透明多面体的渲染方法实现了对透明多面体的目标位置的渲染,且通过类似方式可以实现对透明多面体的其它位置进行渲染,因此上述实施例可以实现透明多面体的整体渲染。
87.本公开实施例提供的透明多面体的渲染方法在进行透明多面体的渲染时,首先获取由渲染场景的视点位置发射的光线通过透明多面体表面上的目标位置折射进入所述透明多面体时的入射方向,然后根据入射方向和透明多面体的内部法线贴图,获取光线折射出透明多面体后的出射方向,再根据出射方向对环境贴图进行采样,获取目标颜色值以及根据所述目标颜色值渲染所述目标位置。由于本公开实施例提供的透明多面体的渲染方法可以光线进入透明多面体后的方向和透明多面体的内部法线贴图计算出快捷的计算出光线折射出所述透明多面体后的传播方向,因此本公开实施例可以简化光线在透明多面体内的反射的计算,进而减少渲染透明多面体时的计算量,提升渲染透明多面体的实时性。
88.作为对上述实施例提供的透明多面体的渲染方法的扩展和细化,本公开实施例提供了另一种透明多面体的渲染方法,参照图5所示,该透明多面体的渲染方法包括如下步骤:
89.s501、获取入射方向。
90.其中,所述入射方向为由渲染场景的视点位置发射的光线通过透明多面体表面上的目标位置折射进入所述透明多面体内部后的传播方向
91.s502、将所述入射方向作为采样方向对所述内部法线贴图进行采样,获取法线方向。
92.s503、判断所述采样方向与所述法线方向的夹角是否小于阈值角度。
93.具体的,阈值角度可以根据预设值的透明多面的折射率设置,具体可以为设置为光线发生全反射时光线入射角度与法线的夹角的临界值。
94.在上述步骤s503中,若采样方向与所述法线方向的夹角小于所述阈值角度,则执行如下步骤s504。
95.s504、根据所述采样方向和第一折射率获取所述出射方向。
96.具体的,第一折射率可以为预设值的透明多面体的折射率。第一折射率的值可以由开发人员基于透明多面体的材质设置,本公开实施例中对第一折射率的大小不做限定。
97.具体的,上述步骤s504(根据所述采样方向和第一折射率获取所述出射方向)的实施方式包括:
98.根据所述采样方向、所述法线方向以及所述第一折射率,获取所述出射方向。
99.在上述步骤s503中,若所述采样方向与所述法线方向的夹角大于或等于所述阈值角度,则执行如下步骤s505:
100.s505、根据所述采样方向和所述法线方向获取反射方向。
101.具体的,根据反射定律可知,光线的入射角与光线的反射角相同;其中,入射角和反射角分别为入射方向和反射方向与法线的夹角。上述实施例中入射方向即为采样方向,因此根据所述采样方向和所述法线方向获取反射方向的实现方式可以包括:根据所述采样方向和所述法线方向获取反射角,根据所述反射角和所述法线方向获取反射方向。
102.s506、判断所述光线的反射次数是否小于阈值次数。
103.本公开实施例中的光线的反射次数是指光线在透明多面体内部发生反射的次数。示例性的,参照图6所示,光线的传播路径依次包括:由点a沿方向r1传播到点b,由点b沿方向r2传播到点c,由点c沿方向r3传播到点d,由点d沿方向r4传播到点e,由点e沿方向r5传播到点f,最终由点f折射出透明多面体。光线在透明多面体内部共发生了4次反射,方向r2为第1次反射的反射方向,方向r3为第2次反射的反射方向,方向r4为第3次反射的反射方向,方向r5为第4次反射的反射方向。
104.在上述步骤s506中,若所述反射次数小于所述阈值次数,则将所述反射方向作为所述采样方向对所述内部法线贴图进行采样,重新获取所述法线方向以及判断所述采样方向与所述法线方向的夹角是否小于所述阈值角度。
105.即,如图5所示,将所述反射方向作为所述采样方向返回步骤s502,并从s502开始重新执行本技术实施例的步骤流程。
106.在上述步骤s506中,若所述反射次数等于所述阈值次数,则执行如下步骤s507。
107.s507、根据所述反射方向和第二折射率获取所述出射方向。
108.作为本公开实施例一种可选的实施方式,所述第一折射率和所述第二折射率负相关。
109.进一步可选的,所述第一折射率和所述第二折射率互为倒数。即,第一折射率为ior,第二折射率为1/ior。
110.设置第一折射率与第二折射率互为倒数可以使透明度多面体对光线的折射更加符合真实物体对光线的折射,进而使渲染的透明多面体更加逼真。
111.具体的,上述步骤s507(根据所述反射方向和第二折射率获取所述出射方向)的实施方式包括:
112.根据所述反射方向对内部采样贴图进行采样,获取法线方向;
113.根据所述反射方向、所述法线方向以及所述第二折射率,获取所述出射方向。
114.上述实施例在反射次数等于阈值次数时,会以第二折射率将光线折射出透明多面体模型,因此上述实施例可以避免光线在透明多面体内部反射次数过多,进而避免透明多面体的渲染过程的计算过于复杂。
115.s508、根据所述出射方向对环境贴图进行采样,获取目标颜色值。
116.当所述环境贴图为实时对真实场景进行图像采集获取的二维图像时,根据所述出射方向对环境贴图进行采样,获取目标颜色值,包括:
117.通过球面环境映射(sphericalenvironmentmapping)将所述出射方向映射为二维纹理坐标;
118.根据所述二维纹理坐标对所述环境贴图进行采样,获取所述目标颜色值。
119.由于出射方向为三维场景中的方向,而实时对真实场景进行图像采集时,图像采样装置只能采集到非常有限的范围内的图像,且得到的图像是一张二维图像,因此需要通过球面环境映射将所述出射方向映射为二维纹理坐标,然后再根据所述二维纹理坐标对所述环境贴图进行采样,获取所述目标颜色值。
120.以下对球面环境映射的原理进行说明。
121.球面环境映射是一种通过单张二维图像来表示整个场景环境的技术。如图7所示,球面环境映射模型中设定场景中具有能够反射场景环境且体积趋近于无穷小的球面71,且与球面71之间的距离趋近于无穷大的位置处设置有虚拟相机,由于球面71可以反射场景环境,因此通过虚拟相机对球面进行拍照时,可以获取完整的场景环境信息。进一步的,由于虚拟相机与球面71之间的距离趋近于无穷大,因此如图7所示,虚拟相机拍摄球面各个位置的视线方向v均相互平行。将球面环境映射模型放入opengl的视口坐标系,则视线方向v恒定为(0,0,1)。再由反射定律可知:法线方向n为入射方向v与反射方向r的和,因此有:n=v r。进行采样时,反射方向r即为所述出射方向。设:出射方向为(r
x
、ry、rz),代入n=v r,可得:
122.n=(0,0,1) (r
x
、ry、rz)=(r
x
、ry、rz 1)。
123.求法线方向n的模|n|可以得:
[0124][0125]
进一步的,由法线方向n和法线方向模|n|可以计算得到归一化法线n

为:
[0126][0127]
由于球面71趋于无穷小,因此球面71可视为位于原点上的球面,而对位于原点的球面球面坐标数值等同于法线向量的数值,又因为最终需要进行采样的图像为二维图像,因此只要计算n

在x轴和y轴上的分量即可。
[0128]
其中,n

在x轴上的分量为:
[0129]
[0130]n′
在y轴上的分量为:
[0131][0132]
又因为n

x
和n
′y的取值范围均为[-1,1],环境贴图的采样坐标范围为[0,1],因此需要进一步将取值范围[-1,1]的输入映射为取值范围为[0,1]的输出。通过函数可以实现将取值范围[-1,1]的输入映射为[0,1]的输出,至此可以获取将三维方向映射为二维纹理坐标的公式为:
[0133][0134]
其中:出射方向的三维坐标为(r
x
、ry、rz),二维纹理坐标为(s,t),将出射方向的三维坐标代入上上述公式即可将所述出射方向映射为二维纹理坐标。
[0135]
进一步的,上述步骤通过球面环境映射将所述出射方向映射为二维纹理坐标的实现方式可以包括如下步骤a值步骤d:
[0136]
步骤a、根据所述出射方向获取第一向量。
[0137]
其中,所述第一向量的向量坐标分别为所述出射方向的第一方向坐标、所述出射方向的第二方向坐标以及所述出射方向的第三方向坐标与预设值的和。
[0138]
设:预设值为1、出射方向的三维坐标为(r
x
、ry、rz),则有第一向量为:(r
x
,ry,rz 1)。
[0139]
步骤b、通过长度计算函数获取所述第一向量的模。
[0140]
可选的,所述长度计算函数可以为长度计算函数opengl着色语言(opengl shading language,glsl)中的长度计算函(length())。
[0141]
由于球面环境映射中计算可视为求向量(r
x
、ry、rz 1)的模,而长度计算函数可以优化该计算,从而减少3个平方以及一个开根号的计算。
[0142]
即,计算的值可以优化为通过length()获取第一向量的模:2lengt(r
x
,ry,rz 1)。
[0143]
步骤c、根据所述出射方向的第一坐标值和所述第一向量的模,获取所述二维纹理坐标中的第一坐标值。
[0144]
即,将公式:
[0145][0146]
优化为:
[0147][0148]
其中,s为所述二维纹理坐标中的第一坐标值,2lengt(r
x
,ry,rz 1)为第一向量的模,r
x
为所述出射方向的第一坐标值。
[0149]
步骤d、根据所述出射方向的第二坐标值和所述第一向量的模,获取所述二维纹理坐标中的第二坐标值。
[0150]
即,将公式:
[0151][0152]
优化为:
[0153][0154]
其中,t为所述二维纹理坐标中的第二坐标值,2lengt(r
x
,ry,rz 1)为第一向量的模,ry为所述出射方向的第二坐标值。
[0155]
综上所述,将三维方向映射为二维纹理坐标的公式可以优化为:
[0156][0157]
返回图5,在步骤s507之后,本公开实施例提供的透明多面体的渲染方法还包括如下步骤:
[0158]
s509、根据所述目标颜色值渲染所述目标位置。
[0159]
由于本公开实施例提供的透明多面体的渲染方法可以光线进入透明多面体后的方向和透明多面体的内部法线贴图计算出快捷的计算出光线折射出所述透明多面体后的传播方向,因此本公开实施例可以简化光线在透明多面体内的反射的计算,进而减少渲染透明多面体过程中的计算资源的消耗,提升渲染透明多面体的实时性。
[0160]
作为本公开实施例一种可选的实施方式,上述步骤s11和s501中获取入射方向,包括:
[0161]
根据所述视点位置与所述目标位置的连线的方向和各个颜色通道对应的折射率获取各个颜色通道对应的入射方向;
[0162]
其中,各个颜色通道对应的折射率与各个颜色通道对应的光波波长负相关。
[0163]
具体的,以下以渲染系统的颜色通道包括:红色通道r、绿色通道g以及蓝色通道b为对上述实施例进行说明。如图8所示,由视点位置21发射的光线(红色光r、绿色光g以及蓝色光b混合而成)沿方向f1传播到目标位置22后,由于不同颜色的光的波长不同,且红色光r的波长大于绿色光g的波长,绿色光g的波长大于蓝色光b的波长,因此分别以不同的折射率计算红色光r、绿色光g、蓝色光b入射方向,红色光r、绿色光g、蓝色光b分别以fr、fg、fb入射
方向折射到透明多面体200的内部,并最终以不同的出射方向折射出所述透明多面体。进一步的,如图8所示,由于透明多面体表面上的目标位置进入的红色光r、绿色光g、蓝色光b以不同的出射方向折射出所述透明多面体,因此根据所述出射方向对环境贴图进行采样可以获取3个采样值,分别为:cr(r1,g1,b1)、cg(r2,g2,b2)、cb(r3,g3,b3),而cr(r1,g1,b1)中只有的红色分量r1可以通过目标位置传输到视点位置,cg(r2,g2,b2)中只有的绿色分量g2可以通过目标位置传输到视点位置,cb(r3,g3,b
23
)中只有的绿色分量b2可以通过目标位置传输到视点位置,因此可以确定目标颜色值为:(r1,g2,b3)。
[0164]
由于上述实施例对不同颜色通道使用了不同的折射率,因此上述实施例可以准确的模拟透明多面体的色散效果,进而提升透明多面体的渲染效果。
[0165]
基于同一发明构思,作为对上述方法的实现,本公开实施例还提供了一种透明多面体的渲染装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的透明多面体的渲染装置能够对应实现前述方法实施例中的全部内容。
[0166]
本公开实施例提供了一种透明多面体的渲染装置。图9为该透明多面体的渲染装置的结构示意图,如图9所示,该透明多面体的渲染装置900包括:
[0167]
第一获取单元91,用于获取入射方向,所述入射方向为由渲染场景的视点位置发射的光线通过透明多面体表面上的目标位置折射进入所述透明多面体内部后的传播方向;
[0168]
第二获取单元92,用于根据所述入射方向和所述透明多面体的内部法线贴图,获取出射方向,所述出射方向为所述光线折射出所述透明多面体后的传播方向;
[0169]
采样单元93,用于根据所述出射方向对环境贴图进行采样,获取目标颜色值;
[0170]
渲染单元94,用于根据所述目标颜色值渲染所述目标位置。
[0171]
作为本公开实施例一种可选的实施方式,所述第二获取单元92,具体用于将所述入射方向作为采样方向对所述内部法线贴图进行采样,获取法线方向;判断所述采样方向与所述法线方向的夹角是否小于阈值角度;若是,则根据所述采样方向和第一折射率获取所述出射方向;若否,则根据所述采样方向和所述法线方向获取反射方向,并判断所述光线的反射次数是否小于阈值次数;若所述反射次数小于所述阈值次数,则将所述反射方向作为所述采样方向重新对所述内部法线贴图进行采样获取所述法线方向以及判断所述采样方向与所述法线方向的夹角是否小于所述阈值角度;若所述反射次数大于所述阈值次数,则根据所述反射方向和第二折射率获取所述出射方向。
[0172]
作为本公开实施例一种可选的实施方式,所述第一折射率和所述第二折射率负相关。
[0173]
作为本公开实施例一种可选的实施方式,所述环境贴图为实时对真实场景进行图像采集获取的二维图像。
[0174]
作为本公开实施例一种可选的实施方式,所述采样单元93,具体用于通过球面环境映射将所述出射方向映射为二维纹理坐标,根据所述二维纹理坐标对所述环境贴图进行采样,获取所述目标颜色值。
[0175]
作为本公开实施例一种可选的实施方式,所述采样单元93,具体用于根据所述出射方向获取第一向量,所述第一向量的向量坐标分别为所述出射方向的第一方向坐标、所述出射方向的第二方向坐标以及所述出射方向的第三方向坐标与预设值的和;通过长度计
算函数获取所述第一向量的模;根据所述出射方向的第一坐标值和所述第一向量的模,获取所述二维纹理坐标中的第一坐标值;根据所述出射方向的第二坐标值和所述第一向量的模,获取所述二维纹理坐标中的第二坐标值。
[0176]
作为本公开实施例一种可选的实施方式,所述第一获取单元91,具体用于,根据所述视点位置与所述目标位置的连线的方向和各个颜色通道对应的折射率获取各个颜色通道对应的入射方向;
[0177]
其中,各个颜色通道对应的折射率与各个颜色通道对应的光波波长负相关。
[0178]
基于同一发明构思,本公开实施例还提供了一种电子设备。图10为本公开实施例提供的电子设备的结构示意图,如图10所示,本实施例提供的电子设备包括:存储器101和处理器102,所述存储器101用于存储计算机程序;所述处理器102用于在调用执行计算机程序时,使得所述电子设备实现上述实施例提供的透明多面体的渲染方法。
[0179]
本公开实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述实施例提供的透明多面体的渲染方法。
[0180]
本公开实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述实施例提供的透明多面体的渲染方法。
[0181]
本领域技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
[0182]
处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0183]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。
[0184]
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
[0185]
最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依
然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献