CN112200902A - 图像渲染方法、装置、电子设备及存储介质 - Google Patents
图像渲染方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112200902A CN112200902A CN202011069636.3A CN202011069636A CN112200902A CN 112200902 A CN112200902 A CN 112200902A CN 202011069636 A CN202011069636 A CN 202011069636A CN 112200902 A CN112200902 A CN 112200902A
- Authority
- CN
- China
- Prior art keywords
- color
- target pixel
- pixel point
- dimensional model
- refraction
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 83
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000013507 mapping Methods 0.000 claims description 35
- 238000012937 correction Methods 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000003287 optical effect Effects 0.000 abstract description 18
- 230000000694 effects Effects 0.000 description 40
- 239000013078 crystal Substances 0.000 description 34
- 230000006870 function Effects 0.000 description 17
- 239000003086 colorant Substances 0.000 description 7
- 239000000463 material Substances 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000031700 light absorption Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000002834 transmittance Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 238000010521 absorption reaction Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
Abstract
本公开关于一种图像渲染方法、装置、电子设备及存储介质,该方法包括:确定待渲染对象的三维模型中的目标像素点的折射颜色、反射颜色以及贴图颜色,目标像素点表示三维模型中所要显示在屏幕上的像素点;根据目标像素点在三维模型上的法线与世界空间的预设坐标轴的空间关系,从折射颜色和反射颜色中选择至少一个,并根据所选择的颜色与贴图颜色确定目标像素点的渲染颜色;根据渲染颜色对目标像素点进行渲染。本公开可以在体现具有透明度的对象的光学特性的前提下,减小电子设备渲染此类对象的计算量。
Description
技术领域
本公开涉及图形处理领域,尤其涉及图像渲染方法、装置、电子设备及存储介质。
背景技术
随着数字图形技术的发展,各种电子设备的屏幕中可以显示的虚拟对象越来越多,也越来越复杂。
部分虚拟对象具有一定的透明度,例如:虚拟水晶。相关技术方案中,利用真实的物理理论进行实时光线追踪,严格按照从眼睛发出的光线进入模型后的反射、折射和吸收效应,得到模型表面每个像素的颜色。
这种具有一定透明度的虚拟对象的光学特性比较复杂,例如:光线追踪是反复迭代的,入射光被折射后的出射光又变成了下一个环节的入射光,因此需要经过多次迭代计算,计算量大。
可见,如何在体现其光学特性的前提下减小电子设备渲染此类虚拟对象的计算量就显得尤为重要。
发明内容
本公开提供一种图像渲染方法、装置、电子设备及存储介质,以至少解决相关技术中计算量大的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种图像渲染方法,包括:
确定待渲染对象的三维模型中的目标像素点的折射颜色、反射颜色以及贴图颜色,所述目标像素点表示所述三维模型中所要显示在屏幕上的像素点;
根据所述目标像素点在所述三维模型上的法线与世界空间的预设坐标轴的空间关系,从所述折射颜色和所述反射颜色中选择至少一个,并根据所选择的颜色与所述贴图颜色确定所述目标像素点的渲染颜色;
根据所述渲染颜色对所述目标像素点进行渲染。
在第一方面的一种可能的实现方式中,所述折射颜色的确定过程,包括:
确定从预设观察点出发的光线经所述目标像素点穿过所述三维模型后与背景图片的第一交点,所述光线经所述目标像素点进入所述三维模型内部发生折射并射出所述三维模型,所述背景图片为预设图片或当前拍摄画面;
根据所述背景图片上的所述第一交点的颜色,确定所述目标像素点的折射颜色。
在第一方面的一种可能的实现方式中,所述确定从预设观察点出发的光线经所述目标像素点穿过所述三维模型后与背景图片的第一交点,包括:
根据所述预设观察点到所述目标像素点的连线方向、所述目标像素点在所述三维模型上的法线方向以及所述三维模型的折射率,确定光线经所述目标像素点进入所述三维模型内部发生折射后的折射方向;
根据所述折射方向、光线射出所述三维模型时与所述三维模型的表面的交点的法线方向以及所述三维模型的折射率,确定光线射出所述三维模型的射出方向;
根据所述射出方向,确定光线经所述目标像素点穿过所述三维模型后与所述背景图片的第一交点。
在第一方面的一种可能的实现方式中,所述反射颜色的确定过程,包括:
确定从预设观察点出发的光线经所述目标像素点反射后与背景图片的第二交点,所述背景图片为预设图片或当前拍摄画面;
根据所述背景图片上的所述第二交点的颜色,确定所述目标像素点的反射颜色。
在第一方面的一种可能的实现方式中,所述贴图颜色的确定过程,包括:
获得多帧贴图序列;
确定所述目标像素点对应的贴图点;
根据所述贴图点在所述贴图序列中的颜色确定所述目标像素点的贴图颜色。
在第一方面的一种可能的实现方式中,所述根据所述目标像素点在所述三维模型上的法线与世界空间的预设坐标轴的空间关系,从所述折射颜色和所述反射颜色中选择至少一个,并根据所选择的颜色与所述贴图颜色确定所述目标像素点的渲染颜色,包括:
确定所述目标像素点在所述三维模型上的法线与所述世界空间的预设坐标轴的夹角;
根据所述夹角的绝对值与阈值的大小关系,从所述折射颜色和所述反射颜色中选择一个,并根据所选择的颜色与所述贴图颜色确定所述目标像素点的渲染颜色。
在第一方面的一种可能的实现方式中,所述根据所述夹角的绝对值与阈值的大小关系,从所述折射颜色和所述反射颜色中选择一个,包括:
当所述夹角的绝对值小于所述阈值时,选择所述折射颜色;
当所述夹角的绝对值不小于所述阈值时,选择所述反射颜色。
在第一方面的一种可能的实现方式中,所述根据所述目标像素点在所述三维模型上的法线与世界空间的预设坐标轴的空间关系,从所述折射颜色和所述反射颜色中选择至少一个,并根据所选择的颜色与所述贴图颜色确定所述目标像素点的渲染颜色,包括:
确定所述目标像素点在所述三维模型上的法线与所述世界空间的预设坐标轴的夹角;
根据所述夹角确定折射权重和反射权重,使用所述折射权重、所述反射权重和预设贴图权重,对所述折射颜色、所述反射颜色和所述贴图颜色进行加权计算,确定所述目标像素点的渲染颜色。
在第一方面的一种可能的实现方式中,还包括:
对所述目标像素点的所述反射颜色和/或所述目标像素点的所述折射颜色进行矫正,
其中,对所述目标像素点的所述反射颜色进行矫正时使用的矫正系数为第一系数,对所述目标像素点的所述折射颜色进行矫正时使用的矫正系数为第二系数,所述第一系数与所述第二系数不同。
根据本公开实施例的第二方面,提供一种图像渲染装置,包括:
第一颜色确定单元,被配置为执行确定待渲染对象的三维模型中的目标像素点的折射颜色、反射颜色以及贴图颜色,所述目标像素点表示所述三维模型中所要显示在屏幕上的像素点;
第二颜色确定单元,被配置为执行根据所述目标像素点在所述三维模型上的法线与世界空间的预设坐标轴的空间关系,从所述折射颜色和所述反射颜色中选择至少一个,并根据所选择的颜色与所述贴图颜色确定所述目标像素点的渲染颜色;
渲染单元,被配置为执行根据所述渲染颜色对所述目标像素点进行渲染。
在第二方面的一种可能的实现方式中,所述第一颜色确定单元确定折射颜色的过程,被配置为执行:
确定从预设观察点出发的光线经所述目标像素点穿过所述三维模型后与背景图片的第一交点,所述光线经所述目标像素点进入所述三维模型内部发生折射并射出所述三维模型,所述背景图片为预设图片或当前拍摄画面;根据所述背景图片上的所述第一交点的颜色,确定所述目标像素点的折射颜色。
在第二方面的一种可能的实现方式中,所述第一颜色确定单元确定从预设观察点出发的光线经所述目标像素点穿过所述三维模型后与背景图片的第一交点的过程,被配置为执行:
根据所述预设观察点到所述目标像素点的连线方向、所述目标像素点在所述三维模型上的法线方向以及所述三维模型的折射率,确定光线经所述目标像素点进入所述三维模型内部发生折射后的折射方向;根据所述折射方向、光线射出所述三维模型时与所述三维模型的表面的交点的法线方向以及所述三维模型的折射率,确定光线射出所述三维模型的射出方向;根据所述射出方向,确定光线经所述目标像素点穿过所述三维模型后与所述背景图片的第一交点。
在第二方面的一种可能的实现方式中,所述第一颜色确定单元确定反射颜色的过程,被配置为执行:
确定从预设观察点出发的光线经所述目标像素点反射后与背景图片的第二交点,所述背景图片为预设图片或当前拍摄画面;根据所述背景图片上的所述第二交点的颜色,确定所述目标像素点的反射颜色。
在第二方面的一种可能的实现方式中,所述第一颜色确定单元确定贴图颜色的过程,被配置为执行:
获得多帧贴图序列;确定所述目标像素点对应的贴图点;根据所述贴图点在所述贴图序列中的颜色确定所述目标像素点的贴图颜色。
在第二方面的一种可能的实现方式中,所述第二颜色确定单元,被具体配置为执行:
确定所述目标像素点在所述三维模型上的法线与所述世界空间的预设坐标轴的夹角;根据所述夹角的绝对值与阈值的大小关系,从所述折射颜色和所述反射颜色中选择一个,并根据所选择的颜色与所述贴图颜色确定所述目标像素点的渲染颜色。
在第二方面的一种可能的实现方式中,所述第二颜色确定单元根据所述夹角的绝对值与阈值的大小关系,从所述折射颜色和所述反射颜色中选择一个,被具体配置为执行:
当所述夹角的绝对值小于所述阈值时,选择所述折射颜色;当所述夹角的绝对值不小于所述阈值时,选择所述反射颜色。
在第二方面的一种可能的实现方式中,所述第二颜色确定单元,被具体配置为执行:
确定所述目标像素点在所述三维模型上的法线与所述世界空间的预设坐标轴的夹角;根据所述夹角确定折射权重和反射权重,使用所述折射权重、所述反射权重和预设贴图权重,对所述折射颜色、所述反射颜色和所述贴图颜色进行加权计算,确定所述目标像素点的渲染颜色。
在第二方面的一种可能的实现方式中,还包括:
矫正单元,被配置为执行对所述目标像素点的所述反射颜色和/或所述目标像素点的所述折射颜色进行矫正,
其中,对所述目标像素点的所述反射颜色进行矫正时使用的矫正系数为第一系数,对所述目标像素点的所述折射颜色进行矫正时使用的矫正系数为第二系数,所述第一系数与所述第二系数不同。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现第一方面提供的任一种图像渲染方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行第一方面提供的任一种图像渲染方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,当在电子设备上执行时,适于执行初始化有第一方面提供的图像渲染方法的步骤的程序。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开通过反射颜色和折射颜色的确定过程,可以使得待渲染对象具有反射和/或折射的光学特性。同时,本公开并未考虑待渲染对象的光线吸收效应,因此有效减少了渲染过程中的计算量。而且,本公开在反射颜色、折射颜色的前提下,为待渲染对象添加了贴图颜色,通过贴图颜色可以有效提高对象的图像展示效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种图像渲染方法的流程图;
图2是根据一示例性实施例示出的一种三维模型的反射现象、折射现象示意图;
图3是根据一示例性实施例示出的一种贴图序列的示意图;
图4是根据一示例性实施例示出的一种图像渲染装置的框图;
图5是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
可选的,本公开提供的图像渲染方法可以应用于各种电子设备中,例如:计算机、平板电脑、手机、投影设备、智能穿戴设备等。为方便起见,后续实施例中,本公开将使用手机为例进行说明。
图1是根据一示例性实施例示出的一种图像渲染方法的流程图,如图1所示,该方法可以包括以下步骤。
在步骤S11中,确定待渲染对象的三维模型中的目标像素点的折射颜色、反射颜色以及贴图颜色,目标像素点表示三维模型中所要显示在屏幕上的像素点。
可选的,本公开中的待渲染对象可以为具有透明度的对象,该对象可以为虚拟对象,也可以为实体对象。可选的,本公开中的待渲染对象可以为具有多个表面的三维对象。可选的,上述多个表面中的至少一个表面具有反射效果。例如:水晶材质的虚拟动物或水晶材质的虚拟物品等。可以理解的是,水晶具有多个光滑表面,可以反射光线;同时,水晶具有一定的透明度,光线可以通过折射现象透过水晶。可以理解的是,水晶等本公开中的待渲染对象可以具有反射现象和折射现象。可选的,本公开中的待渲染对象可以为由多个边以及平面构成的具有透明度的对象。例如:正立方体由六个平面以及十二个边构成。当然,本公开中的待渲染对象可以为非对称结构,例如:为不规则的三维模型。在图像渲染领域,因为由多个边以及平面构成的对象可以理解为通过硬切割方式切割得到的棱角分明的三维对象,因此本领域技术人员常将此类三维对象称为硬边多边形。在图像渲染领域,硬边多边形中的各平面一般为三角形。
本公开中的待渲染对象可以为魔法表情,魔法表情是使用摄像头拍摄画面时使用计算机图形手段加入到画面中的虚拟装饰物。例如:用户使用摄像头自拍时,屏幕中显示的画面上除摄像头拍摄的画面外还包括了一个显示在用户头部的“水晶皇冠”,该“水晶皇冠”即为魔法表情。
同时,为了提高水晶等本公开中的待渲染对象的显示效果,本公开还可以为待渲染对象的三维模型设置贴图。可选的,该贴图可以为能够提高本公开中的待渲染对象中至少一个像素点的亮度的贴图。方便起见,本公开将此贴图称为高光贴图。高光贴图可以有效还原和模拟水晶等本公开中的待渲染对象在部分区域的光线集中导致的高光现象。
可选的,步骤S11中折射颜色的确定过程,可以包括:
确定从预设观察点出发的光线经目标像素点穿过三维模型后与背景图片的第一交点,光线经目标像素点进入三维模型内部发生折射并射出三维模型,背景图片为预设图片或当前拍摄画面;
根据背景图片上的第一交点的颜色,确定目标像素点的折射颜色。
可以理解的是,由于从不同位置观察三维模型都可以看到不同的区域,因此通过预设观察点可以确定待渲染对象的三维模型中所要显示在屏幕上的各像素点,即各目标像素点。其中,预设观察点可以为虚拟摄像机的镜头位置。
如图2所示,假设三维模型为水晶模型,人眼所在位置为预设观察点,第一像素点为目标像素点,则由于折射现象,人所观察到的第一像素点的颜色受到了图2所示的第一交点的影响。图2中折射光线的箭头体现的是从人眼发出的光线经过第一像素点折射进入图2所示的水晶模型并在水晶模型的第三交点再次折射后与背景图片相交于第一交点。第二法线为水晶模型表面的第三交点的法线。相应的,对于人眼观察到的其他目标像素点,均可以确定与其对应的与折射相关的交点的位置。
其中,背景图片可以为电子设备的摄像头当前所拍摄的画面,例如:用户通过手机拍摄图片或视频的过程中,本公开可以将虚拟水晶显示在电子设备的屏幕上,此时,用户所拍摄的至少部分图像将通过反射现象和/或折射现象体现在虚拟水晶上。可见,背景图片为电子设备的摄像头当前所拍摄的画面,可以使得本公开渲染的待渲染对象能更好地融合周边环境,增强待渲染对象给观看者带来的沉浸感。
本公开可以为背景图片的各像素点设置对应的空间位置。例如:背景图片的各像素点距离预设观察点的距离均为第一预设距离。再如:背景图片的中心点与预设观察点的连线与背景图片垂直且该连线的距离为第二预设距离。其中,第二预设距离和第一预设距离可以相同,也可以不同。当然,本公开也可以实际测量或预测背景图片的各像素点距离预设观察点(即为电子设备的镜头所在位置)的距离。例如:通过深度摄像头采集背景图片中各像素点距离预设观察点的距离,或通过深度分析技术对背景图片中各像素点的深度进行预测。
在其他实施例中,本公开提供的上述确定从预设观察点出发的光线经目标像素点穿过三维模型后与背景图片的第一交点的过程,可以具体包括:
根据预设观察点到目标像素点的连线方向、目标像素点在三维模型上的法线方向以及三维模型的折射率,确定光线经目标像素点进入三维模型内部发生折射后的折射方向;
根据折射方向、光线射出三维模型时与三维模型的表面的交点的法线方向以及三维模型的折射率,确定光线射出三维模型的射出方向;
根据射出方向,确定光线经目标像素点穿过三维模型后与背景图片的第一交点。
下面提供三种确定第一交点的具体方法(即下方的方法一、方法二和方法三):
方法一,包括:步骤1.1至步骤1.3。
步骤1.1、将预设观察点到目标像素点的连线方向作为入射方向,按照折射定律,根据该入射方向、目标像素点在三维模型上的法线方向以及三维模型的折射率,确定光线经目标像素点进入三维模型内部发生折射后的折射方向。
其中,折射定律中,入射角θ0、折射角θ1、入射光线经过的介质0的折射率n0以及折射光线经过的介质1的折射率n1具有如下关系:
n0×sinθ0=n1×sinθ1
其中,入射角为入射光线与法线的夹角,折射角为折射光线与折射光线的夹角。
本公开实施例中的预设观察点到目标像素点的连线方向即为入射光线的入射方向,目标像素点在三维模型上的法线方向即为法线,根据入射方向和法线即可得到入射角θ0。由于入射光线经过的介质为空气,因此本公开可知其折射率n0。三维模型的折射率即为折射光线经过的介质1的折射率n1。通过上述等式即可求得折射角θ1,进而根据法线光线确定光线经目标像素点进入三维模型内部发生折射后的折射方向。
可选的,本公开可以通过函数1:ray0=normalize(refract(-V,N1,n0/n1))确定光线经目标像素点进入三维模型内部发生折射后的折射方向,其中,ray0表示光线从介质0经过三维模型表面的目标像素点进入介质1内部的折射方向,V表示三维模型表面的目标像素点到预设观察点(如虚拟摄像机的位置)的方向,-V即光线射入方向,N1表示三维模型表面的目标像素点的法线方向,n0/n1表示介质0的折射率和介质1的折射率之比。其中,介质0代表空气,介质1代表三维模型的材质。refract(-V,N1,n0/n1)代表根据折射定律求折射方向,normalize代表归一化处理。
步骤1.2、将光线从目标像素点沿折射方向行进并与三维模型表面相交的点确定为第三交点;将第三交点的法线方向确定为光线射出三维模型时与三维模型的表面的交点的法线方向,按照折射定律,根据步骤1.1确定的折射方向、光线射出三维模型时与三维模型的表面的交点的法线方向以及三维模型的折射率,确定光线射出三维模型的射出方向。
可以理解的是,光线射出三维模型时仍可能会发生折射现象(当折射光线垂直射出三位模型表面时,无折射现象),因此仍可以通过上述等式确定光线射出三维模型的射出方向。由于三维模型表面不同的点的法线方向可能不同,因此在确定光线射出三维模型的射出方向时,需要确定光线射出三维模型时与三维模型的表面的交点,进而根据该交点的法线方向来确定光线射出三维模型的射出方向。
本公开方法一可以通过按照严格的光学原理确定光线射出三维模型时与三维模型的表面的交点。例如:获得三维模型的三维尺寸参数,光线从目标像素点出发沿确定的折射方向行进,则必然与三维模型表面的一个点相交,这个点即为根据光学原理确定的光线射出三维模型时与三维模型的表面的交点。可以理解的是,按照严格的光学原理确定交点可以使得三维模型的光学效果更逼真,但是计算量较大。
本公开可以通过函数2:ray1=normalize(refract(ray0,N2,n1/n2))确定光线经目标像素点射出三维模型的射出方向。其中,ray1表示光线从介质1射出到介质2时的射出方向,N2代表光线射出时与三维模型的表面的第三交点的法线方向,n1/n2表示介质1的折射率与介质2的折射率之比。其中,介质1代表三维模型的材质。介质2可以与介质0相同,即:均为空气。因此n2可以等于n0。
步骤1.3、根据第三交点的位置和射出方向,确定光线经目标像素点穿过三维模型后与背景图片的第一交点。
在确定第三交点的位置后,光线从第三交点出发沿射出方向行进后与背景图片的交点即为第一交点。
本公开方法一可以通过按照严格的光学原理确定第一交点,因此可以使得折射效果更符合实际,但是计算量较大。
下面以水晶为例说明:如图2所示,根据第一像素点到预设观察点的连线方向、图2所示第一法线方向以及水晶的折射率,可以通过光学原理确定光线经第一像素点进入三维模型内部发生折射后的折射方向。光线在水晶内部沿折射方向行进后会再次遇到水晶的表面,从而再次通过折射现象射出水晶。此时,本公开可以根据折射方向、光线射出三维模型时与三维模型的表面的交点的法线方向以及水晶的折射率,确定光线射出三维模型的射出方向。进而,本公开通过该射出方向和第三交点可以确定光线射出水晶后与背景图片的第一交点。
可以理解的是,本公开将三维模型置入三维坐标系后,本公开可以获得三维模型上各点的坐标以及三维模型的尺寸。在此基础上,本公开可以通过第一像素点的坐标和折射方向,即可确定光线经第一像素点在三维模型内部沿折射方向行进后与三维模型的表面的交点的坐标,该坐标即为光线射出三维模型时与三维模型表面的交点。
方法二,包括:步骤2.1至步骤2.3。
步骤2.1、将预设观察点到目标像素点的连线方向作为入射方向,按照折射定律,根据该入射方向、目标像素点在三维模型上的法线方向以及三维模型的折射率,确定光线经目标像素点进入三维模型内部发生折射后的折射方向。
步骤2.1与方法一中步骤1.1相同,不再赘述。
步骤2.2、将目标像素点在三维模型上的法线方向的反方向确定为:光线射出三维模型时与三维模型的表面的交点的法线方向,按照折射定律,根据步骤1.1确定的折射方向、光线射出三维模型时与三维模型的表面的交点的法线方向的反方向以及三维模型的折射率,确定光线射出三维模型的射出方向。
本公开可以通过函数3:ray1=normalize(refract(ray0,-N1,n1/n2))确定光线经目标像素点射出三维模型的射出方向。其中,ray1表示光线从介质1射出到介质2时的射出方向,-N1代表光线射出时与三维模型的表面的第三交点的法线方向(-N1为N1的反方向),n1/n2表示介质1的折射率与介质2的折射率之比。其中,介质1代表三维模型的材质。介质2可以与介质0相同,即:均为空气。因此n2可以等于n0。
步骤2.2无需根据三维模型的尺寸参数来确定第三交点的实际位置,因此有效减少了计算量。
步骤2.3、将光线从目标像素点出发沿步骤2.1确定的折射方向行进第一预设距离后,再沿步骤2.2确定的射出方向行进后与背景图片的交点,确定为光线经目标像素点穿过三维模型后与背景图片的第一交点。
步骤2.3可以进一步通过第一预设距离来模拟三维模型在折射方向上的厚度,有效减少了计算量。
进一步,在其他实施例中,步骤2.3可以包括:将光线从目标像素点出发沿步骤2.1确定的折射方向行进第一预设距离后,再沿步骤2.2确定的射出方向行进第二预设距离后达到的点,确定为光线经目标像素点穿过三维模型后与背景图片的第一交点。
本公开可以通过函数4:intersection=position+ray0*step_length1+ray1*step_length2计算光线经目标像素点穿过三维模型后与背景图片的第一交点的坐标,其中,intersection代表第一交点在世界坐标系下的坐标,position代表目标像素点(如图2所示的第一像素点)的坐标,step_length1表示第一预设距离,step_length2表示第二预设距离。ray0*step_length1代表沿ray0行进step_length1,ray1*step_length2代表沿ray1行进step_length2。position+ray0*step_length1+ray1*step_length2代表光线从position出发沿ray0行进step_length1后,再沿ray1行进step_length2达到的点。
这种通过第二预设距离来模拟三维模型与背景图片距离的方式,进一步有效减少了计算量。
可选的,第一预设距离和第二预设距离可以相等或不相等。
方法三,包括:步骤3.1至步骤3.3。
步骤3.1、将预设观察点到目标像素点的连线方向作为入射方向,按照折射定律,根据该入射方向、目标像素点在三维模型上的法线方向以及三维模型的折射率,确定光线经目标像素点进入三维模型内部发生折射后的折射方向。
步骤3.1与方法一中步骤1.1相同,不再赘述。
步骤3.2、将目标像素点在三维模型上的法线方向的反方向确定为:光线射出三维模型时与三维模型的表面的交点的法线方向,按照折射定律,根据步骤1.1确定的折射方向、光线射出三维模型时与三维模型的表面的交点的法线方向的反方向以及三维模型的折射率,确定光线射出三维模型的射出方向。
步骤3.2与方法二中步骤2.2相同,不再赘述。
步骤3.3、将光线从目标像素点出发沿目标像素点在三维模型上的法线方向行进第一预设距离后,再沿步骤3.2确定的射出方向行进第二预设距离后达到的点,确定为光线经目标像素点穿过三维模型后与背景图片的第一交点。
步骤3.3可以进一步通过法线方向替换折射方向,有效减少了计算量。
本公开可以通过函数5:intersection=position+N1*step_length1+ray1*step_length2计算光线经目标像素点穿过三维模型后与背景图片的第一交点的坐标,其中,intersection代表第一交点在世界坐标系下的坐标,position代表目标像素点(如图2所示的第一像素点)的坐标,step_length1表示第一预设距离,step_length2表示第二预设距离,N1表示三维模型表面的目标像素点的法线方向。
可选的,第一预设距离和第二预设距离可以相等或不相等。
其中,三维模型的折射率可以是预设的折射率,例如:真实的水晶的折射率位于1.544至1.553的范围内,则本公开可以将水晶的三维模型的折射率设置为1.55。当三维模型的外界环境为空气介质时,本公开可以仅根据三维模型的折射率来进行处理。当三维模型的外界环境为其他介质(如水)时,本公开可以根据三维模型的折射率和外接环境的折射率来进行处理。可以理解的是,三维模型的外界环境包含的介质可以有多种,例如:三维模型的某个方向的外界环境的介质为水,三维模型的另一个方向的外界环境的介质为冰。
可选的,本公开可以首先在世界坐标系下获得第一交点在世界坐标系下的坐标,然后将其转换为屏幕空间坐标系下的坐标,进而确定第一交点的颜色。
可选的,上述函数1至函数5中各参数均为世界坐标系下的参数。
可选的,本公开可以根据函数6:screen_pos=MpMv*intersection将世界坐标系下的第一交点的坐标转换为屏幕空间坐标系下的坐标。其中,screen_pos表示第一交点在屏幕空间坐标系下的坐标,Mp表示投影矩阵,Mv表示摄像机矩阵。
可选的,本公开可以根据函数7:uv=screen_pos.xy/screen_pos.w*0.5+0.5确定第一交点在纹理空间中的坐标。其中,uv表示第一交点在纹理空间中的坐标。screen_pos.xy表示第一交点在屏幕空间坐标系下的X轴坐标和Y轴坐标,screen_pos.w表示第一交点在齐次坐标系4x4矩阵的最后一个维度的坐标。可选的,uv取值范围可以为0~1。可选的,screen_pos.xy的取值范围可以为-1~1。本公开可以通过函数7将-1~1范围的坐标变换到0~1范围的坐标。
在一可选实施例中,图1所示方法还可以包括:
对目标像素点的反射颜色和/或目标像素点的折射颜色进行矫正,其中,对目标像素点的反射颜色进行矫正时使用的矫正系数为第一系数,对目标像素点的折射颜色进行矫正时使用的矫正系数为第二系数,第一系数与第二系数不同。
可选的,第一系数可以大于第二系数。例如:第一系数大于预设矫正系数,第二系数小于预设矫正系数。
当三维模型为水晶时,较小的第二系数可以降低水晶的色彩的对比度和透光度,营造一种朦胧的感觉。例如:第二系数可以使用小于2.2的值。
当三维模型为水晶时,较大的第一系数可以提高水晶的色彩的对比度和反射强度,营造一种反射强烈的感觉,例如:第一系数可以使用不小于2.2的值。
通过对反射颜色和/或折射颜色进行矫正,可以有效提高折射效果和/或反射效果。同时,由于反射颜色的矫正系数和折射颜色的矫正系数不同,因此能更好地表现三维模型的材质的光学特征。例如:当三维模型的材质为水晶时,可以更好的体现水晶棱角分明、朦胧的内在体积感和强烈的外部反射。
可选的,第一系数和第二系数可以为gamma矫正的矫正系数。可选的,第一系数不小于2.2。可选的,第二系数小于2.2。
在一可选实施例中,图1所示方法还可以包括:
对目标像素点的反射颜色和/或目标像素点的折射颜色进行矫正。
可选的,对不同的目标像素点的折射颜色进行矫正时使用的各矫正系数相同或不同。
可选的,对不同的目标像素点的反射颜色进行矫正时使用的各矫正系数相同或不同。
通过对不同的目标像素点使用不同的矫正系数,可以使得三维模型的不同位置具有不同的光学特征,可以很好的体现三维模型不同位置的光学现象。
当本公开中折射颜色和反射颜色的矫正系数不同,且不同的目标像素点使用不同的矫正系数时,本公开可以能更好地表现待渲染对象(例如水晶)棱角分明、朦胧的内在体积感和强烈的外部反射。
可选的,本公开可以根据函数8:refraction_color=pow(texture2d(photo_tex,uv),power_refr)确定三维模型上的目标像素点的折射颜色,其中,refraction_color表示三维模型上的目标像素点的折射颜色,photo_tex表示背景图片的纹理,texture2d(photo_tex,uv)表示photo_tex上纹理坐标为uv的点的颜色,power_refr为gamma矫正的第二系数,pow(texture2d(photo_tex,uv),power_refr)代表获取背景图片上纹理坐标为uv的点的颜色并通过power_refr对其进行gamma矫正。对于水晶而言,为了降低水晶的透光度,营造一种朦胧的感觉。第二系数可以使用小于2.2的值,来降低色彩的对比度,提高水晶显示效果。
可选的,步骤S11中反射颜色的确定过程,可以包括:
确定从预设观察点出发的光线经目标像素点反射后与背景图片的第二交点;
根据背景图片上的第二交点的颜色,确定目标像素点的反射颜色。
其中,确定从预设观察点出发的光线经目标像素点反射后与背景图片的第二交点的过程,可以具体包括:
根据预设观察点到目标像素点的连线方向以及目标像素点在三维模型上的法线方向,确定从预设观察点出发的光线经目标像素点反射后的反射方向;
根据反射方向确定光线经目标像素点反射后与背景图片的第二交点。
如图2所示,从预设观察点出发的光线到达第一像素点后,光线被反射为反射光线并与背景图片相交于第二交点。
可选的,本公开可以通过函数9:ray2=normalize(reflect(-V,N1))确定从预设观察点出发的光线到达目标像素点后的反射方向。其中,ray2表示从预设观察点出发的光线到达第一像素点后的反射方向,-V即光线射入方向,N1表示三维模型表面的目标像素点的法线方向。
可选的,和折射类似,在确定反射方向后,就可以确定反射光线与背景图片的第二交点,进而通过坐标系变换获得在屏幕空间坐标系下的X轴坐标和Y轴坐标。
可选的,本公开可以通过函数10:uv2=ray2.xy*0.5+0.5确定反射光线与背景图片的第二交点在纹理空间的坐标。其中,uv2表示反射光线与背景图片的第二交点在纹理空间的坐标。ray2.xy表示第二交点在屏幕空间坐标系下的X轴坐标和Y轴坐标。
可选的,本公开可以通过函数11:reflection_color=pow(texture2d(photo_tex,uv2),power_refl)确定三维模型上的目标像素点的反射颜色。其中,reflection_color表示三维模型上的目标像素点的反射颜色。pow(texture2d(photo_tex,uv2),power_refl)代表获取photo_tex上纹理坐标为uv2的点的颜色,并给颜色做一个gamma矫正,power_refl为gamma矫正的第一系数。对于水晶效果,为了提高水晶的反射强度,营造一种反射强烈的感觉,power_refl可以使用不小于2.2的值,来提高色彩的对比度。
可选的,本公开可以确定待渲染对象的三维模型中所要显示在屏幕上的部分或全部像素点对应的折射颜色。可选的,本公开可以确定待渲染对象的三维模型中的部分或全部像素点对应的折射颜色。
可选的,本公开可以确定待渲染对象的三维模型中所要显示在屏幕上的部分或全部像素点对应的反射颜色。可选的,本公开可以确定待渲染对象的三维模型中的部分或全部像素点对应的反射颜色。
可选的,步骤S110中贴图颜色的确定过程,可以包括:
获得多帧贴图序列;
确定目标像素点对应的贴图点;
根据贴图点在贴图序列中的颜色确定目标像素点的贴图颜色。
其中,上述多帧贴图序列可以按照矩阵方式排列,如图3所示,贴图序列由16帧贴图构成,图3中数字0至15所在的每一个小方格均为一帧贴图。当然,在实际应用中,可以通过各帧贴图在矩阵中的位置(行和列)来确定贴图。例如:第二行第三列的一帧贴图。
可选的,目标像素点对应的贴图点的坐标可以为目标像素点经过序列帧排布转换后的纹理坐标。
其中,本公开使用的贴图可以为能提高三维模型局部或全部区域亮度的高光贴图。本公开增加了用贴图序列帧装饰的高光贴图,可以让待渲染对象(例如水晶)闪烁更为丰富,视觉冲击更为强烈。除此之外,也可以通过调整贴图来达到更多样的显示效果。
可选的,本公开可以通过函数12:uv3=GetUVAnimTexCoord(uv,row,col,frame_count,speed)确定三维模型中所要显示在屏幕上的目标像素点经过序列帧排布转换后的纹理坐标,其中,uv3表示三维模型中所要显示在屏幕上的目标像素点经过序列帧排布转换后的纹理坐标。row表示贴图在矩阵中的行数,col表示贴图在矩阵中的列数,frame_count表示贴图序列的帧数,speed表示贴图序列的播放速度。
可选的,本公开可以通过函数13:deco_color=texture2d(deco_tex,uv3)确定三维模型中所要显示在屏幕上的目标像素点的贴图颜色,其中,deco_color表示三维模型中所要显示在屏幕上的像素点的贴图颜色。deco_tex表示多帧贴图序列。
由于是多帧贴图序列,因此按照本公开依次将像素点的各贴图颜色控制像素点的显示效果时,三维模型上可以呈现出随时间变化的闪烁点。
在步骤S12中,根据目标像素点在三维模型上的法线与世界空间的预设坐标轴的空间关系,从折射颜色和反射颜色中选择至少一个,并根据所选择的颜色与贴图颜色确定目标像素点的渲染颜色。
步骤S12可以具体包括:
确定目标像素点在三维模型上的法线与世界空间的预设坐标轴的夹角;
根据夹角确定折射权重和反射权重,使用折射权重、反射权重和预设贴图权重,对折射颜色、反射颜色和贴图颜色进行加权计算,确定目标像素点的渲染颜色。
其中,上述预设坐标轴可以为Y轴、X轴或Z轴。可选的,上述预设坐标轴可以为Y轴。
可选的,折射权重、反射权重可以和上述夹角的取值具有预设对应关系,从而可以根据夹角的取值确定折射权重、反射权重。当然,本公开也可以首先将取值与阈值比较,根据比较结果确定折射权重、反射权重。例如:当夹角的绝对值小于阈值时,确定折射权重为m1,反射权重为m2。当夹角的绝对值不小于阈值时,确定折射权重为m2,反射权重为m1。其中,m1的取值范围可以为[0,1],m2的取值范围可以为[0,1]。可选的,m1为1,m2为0。可选的,反射权重和折射权重之和为1。
可选的,预设贴图权重可以为1,也可以为其他数值,本领域技术人员可以根据需要对预设贴图权重进行设定和修改。预设贴图权重越大,则目标像素点的贴图效果越高,例如:当贴图为高亮贴图时,目标像素点的亮度越高。
可选的,通过阈值的设置,本公开可以使得三维模型被划分为上中下三个部分,其中,中部的像素点在三维模型上的法线与世界空间的预设坐标轴的夹角的绝对值小于阈值,上部和下部的像素点在三维模型上的法线与世界空间的预设坐标轴的夹角的绝对值不小于阈值。这样,当m1为1且m2为0时,本公开就可以使得三维模型实现上部、下部体现反射效果,中部体现折射效果。这就使得本公开无需在所有目标像素点均体现反射和折射,节省了计算量,同时,上部、下部体现反射效果,中部体现折射效果,也使得三维模型很好的保留了其具有透明度的材质光学特性。通过上述夹角和阈值的比较,本公开可以使得待渲染对象中不同的区域具有不同的显示效果且界面明显,可以使得待渲染对象具有清晰明确的界限,避免了混合的浑浊的过渡。
当然,本公开还可以使得三维模型实现上部、下部体现较强的反射效果和较弱的折射效果,中部体现较强的折射效果和较弱的反射效果。上述反射效果和折射效果的强弱由其对应的权重控制。当反射权重和折射权重的取值范围均为[0,1]时,可以通过反射权重和折射权重的取值来控制目标像素点所呈现的折射效果的强弱和反射效果的强弱。
可选的,本公开可以通过函数14:yon_factor=step(ref_factor,abs(dot(axis_y,N1)))确定目标像素点在三维模型上的法线与世界空间的预设坐标轴的夹角的绝对值与阈值的比较结果,其中,yon_factor表示目标像素点在三维模型上的法线与世界空间的预设坐标轴的夹角的绝对值与阈值的比较结果。axis_y表示世界空间的预设坐标轴,N1代表目标像素点在三维模型上的法线。当上述夹角的绝对值小于阈值时,yon_factor为1,当上述夹角的绝对值不小于阈值时,yon_factor为0。当然,yon_factor可以表示目标像素点在三维模型上的法线与世界空间的预设坐标轴的夹角的绝对值与阈值的比值。
本公开可以根据yon_factor确定折射权重和反射权重,例如:当yon_factor为1时,确定折射权重为1,反射权重为0;当yon_factor为0时,确定折射权重为0,反射权重为1。
当然,在本公开其他实施例中,也可以无需使用权重,而是从折射颜色和反射颜色中选择一个。例如:步骤S12可以具体包括:
确定目标像素点在三维模型上的法线与世界空间的预设坐标轴的夹角;
根据夹角的绝对值与阈值的大小关系,从折射颜色和反射颜色中选择一个,并根据所选择的颜色与贴图颜色确定目标像素点的渲染颜色。
从折射颜色和反射颜色中选择一个颜色的方案,无需使用折射权重和反射权重,也无需进行加权计算,更加简便。
可选的,上述根据夹角的绝对值与阈值的大小关系,从折射颜色和反射颜色中选择一个,可以具体包括:
当夹角的绝对值小于阈值时,选择折射颜色;
当夹角的绝对值不小于阈值时,选择反射颜色。
虽然未使用权重,但是本公开实施例仍可以使得三维模型实现上部、下部体现反射效果,中部体现折射效果。这就使得本公开无需在所有目标像素点均体现反射和折射,节省了计算量,同时,上部、下部体现反射效果,中部体现折射效果,也使得三维模型很好的保留了其具有透明度的材质光学特性。通过上述夹角和阈值的比较,本公开可以使得待渲染对象中不同的区域具有不同的显示效果且界面明显,可以使得待渲染对象具有清晰明确的界限,避免了混合的浑浊的过渡。当然,本公开还可以使得三维模型实现上部、下部体现较强的反射效果和较弱的折射效果,中部体现较强的折射效果和较弱的反射效果。
可选的,本公开可以通过函数15:final_color=mix(refraction_color,reflection_color,yon_factor)+deco_color确定像素点对应的渲染颜色,其中,final_color表示像素点对应的渲染颜色,mix(refraction_color,reflection_color,yon_factor)+deco_color表示使用yon_factor来将refraction_color和reflection_color加权求和,然后再与deco_color相加。
可选的,图1中各步骤可以由电子设备中进行图形处理的器件来执行,例如:图形处理器(Graphics Processing Unit,GPU)。
在步骤S13中,根据渲染颜色对目标像素点进行渲染。
可以理解的是,本公开中的目标像素点可以有多个,本公开对各目标像素点进行渲染后,各目标像素点将显示在屏幕上且颜色为本公开确定的渲染颜色。
本公开通过反射颜色和折射颜色的确定过程,可以使得待渲染对象具有反射和折射的光学特性。同时,本公开并未考虑待渲染对象的光线吸收效应,因此有效减少了渲染过程中的计算量。而且,本公开在反射颜色、折射颜色的前提下,为待渲染对象添加了贴图颜色,通过贴图颜色可以有效提高对象的图像展示效果。对于具有透明度的待渲染对象,如果使用透明度参数来对其进行渲染,则渲染过程中进行混合计算的性能开销较大且会使得待渲染对象出现固有色不明显的问题。在这种情况下,就需要使用更多的手绘贴图来增强待渲染对象的材质效果。本公开通过反射、折射来体现待渲染对象的透明效果和光学特性,相对于使用透明度参数而言,渲染过程中进行混合计算的性能开销较小。同时本公开避免了透明度参数带来的待渲染对象固有色不明显的问题,无需使用更多的手绘贴图来增强待渲染对象的材质效果。可见,本公开节约了内存开销和制作贴图的时间成本。
图4是根据一示例性实施例示出的一种图像渲染装置的框图,参照图4,该装置包括:第一颜色确定单元121、第二颜色确定单元122和渲染单元123。
该第一颜色确定单元121,被配置为执行确定待渲染对象的三维模型中的目标像素点的折射颜色、反射颜色以及贴图颜色,目标像素点表示三维模型中所要显示在屏幕上的像素点;
该第二颜色确定单元122,被配置为执行根据目标像素点在三维模型上的法线与世界空间的预设坐标轴的空间关系,从折射颜色和反射颜色中选择至少一个,并根据所选择的颜色与贴图颜色确定目标像素点的渲染颜色;
该渲染单元123,被配置为执行根据渲染颜色对目标像素点进行渲染。
可选的,第一颜色确定单元121确定折射颜色的过程,被配置为执行:
确定从预设观察点出发的光线经目标像素点穿过三维模型后与背景图片的第一交点,光线经目标像素点进入三维模型内部发生折射并射出三维模型,背景图片为预设图片或当前拍摄画面;根据背景图片上的第一交点的颜色,确定目标像素点的折射颜色。
可选的,第一颜色确定单元121确定从预设观察点出发的光线经目标像素点穿过三维模型后与背景图片的第一交点的过程,被配置为执行:
根据预设观察点到目标像素点的连线方向、目标像素点在三维模型上的法线方向以及三维模型的折射率,确定光线经目标像素点进入三维模型内部发生折射后的折射方向;根据折射方向、光线射出三维模型时与三维模型的表面的交点的法线方向以及三维模型的折射率,确定光线射出三维模型的射出方向;根据射出方向,确定光线经目标像素点穿过三维模型后与背景图片的第一交点。
可选的,第一颜色确定单元121确定反射颜色的过程,被配置为执行:
确定从预设观察点出发的光线经目标像素点反射后与背景图片的第二交点,背景图片为预设图片或当前拍摄画面;根据背景图片上的第二交点的颜色,确定目标像素点的反射颜色。
可选的,第一颜色确定单元121确定贴图颜色的过程,被配置为执行:
获得多帧贴图序列;确定目标像素点对应的贴图点;根据贴图点在贴图序列中的颜色确定目标像素点的贴图颜色。
可选的,第二颜色确定单元122,被具体配置为执行:
确定目标像素点在三维模型上的法线与世界空间的预设坐标轴的夹角;根据夹角的绝对值与阈值的大小关系,从折射颜色和反射颜色中选择一个,并根据所选择的颜色与贴图颜色确定目标像素点的渲染颜色。
可选的,第二颜色确定单元122根据夹角的绝对值与阈值的大小关系,从折射颜色和反射颜色中选择一个,被具体配置为执行:
当夹角的绝对值小于阈值时,选择折射颜色;当夹角的绝对值不小于阈值时,选择反射颜色。
可选的,第二颜色确定单元122,被具体配置为执行:
确定目标像素点在三维模型上的法线与世界空间的预设坐标轴的夹角;根据夹角确定折射权重和反射权重,使用折射权重、反射权重和预设贴图权重,对折射颜色、反射颜色和贴图颜色进行加权计算,确定目标像素点的渲染颜色。
可选的,本公开另一示例性实施例示出的一种图像渲染装置还可以包括:
矫正单元,被配置为执行对目标像素点的反射颜色和/或目标像素点的折射颜色进行矫正,
其中,对目标像素点的反射颜色进行矫正时使用的矫正系数为第一系数,对目标像素点的折射颜色进行矫正时使用的矫正系数为第二系数,第一系数与第二系数不同。
可选的,本公开另一示例性实施例示出的一种图像渲染装置还可以包括:
矫正单元,被配置为执行对目标像素点的反射颜色和/或目标像素点的折射颜色进行矫正。
可选的,对不同的目标像素点的折射颜色进行矫正时使用的各矫正系数相同或不同。
可选的,对不同的目标像素点的反射颜色进行矫正时使用的各矫正系数相同或不同。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开另一示例性实施例示出的一种电子设备可以如图5所示,包括:
处理器501;
用于存储处理器501可执行指令的存储器502;
其中,处理器501被配置为执行指令,以实现本公开提供的任一种图像渲染方法。
本公开另一示例性实施例示出了一种包括指令的存储介质,例如图5中包括指令的存储器502,当存储介质中的指令由图5所示的电子设备的处理器501执行时,使得电子设备能够执行本公开提供的任一种图像渲染方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本公开另一示例性实施例示出了一种计算机程序产品,当在电子设备上执行时,适于执行初始化有本公开提供的图像渲染方法的步骤的程序。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种图像渲染方法,其特征在于,包括:
确定待渲染对象的三维模型中的目标像素点的折射颜色、反射颜色以及贴图颜色,所述目标像素点表示所述三维模型中所要显示在屏幕上的像素点;
根据所述目标像素点在所述三维模型上的法线与世界空间的预设坐标轴的空间关系,从所述折射颜色和所述反射颜色中选择至少一个,并根据所选择的颜色与所述贴图颜色确定所述目标像素点的渲染颜色;
根据所述渲染颜色对所述目标像素点进行渲染。
2.根据权利要求1所述的图像渲染方法,其特征在于,所述折射颜色的确定过程,包括:
确定从预设观察点出发的光线经所述目标像素点穿过所述三维模型后与背景图片的第一交点,所述光线经所述目标像素点进入所述三维模型内部发生折射并射出所述三维模型,所述背景图片为预设图片或当前拍摄画面;
根据所述背景图片上的所述第一交点的颜色,确定所述目标像素点的折射颜色。
3.根据权利要求2所述的图像渲染方法,其特征在于,所述确定从预设观察点出发的光线经所述目标像素点穿过所述三维模型后与背景图片的第一交点,包括:
根据所述预设观察点到所述目标像素点的连线方向、所述目标像素点在所述三维模型上的法线方向以及所述三维模型的折射率,确定光线经所述目标像素点进入所述三维模型内部发生折射后的折射方向;
根据所述折射方向、光线射出所述三维模型时与所述三维模型的表面的交点的法线方向以及所述三维模型的折射率,确定光线射出所述三维模型的射出方向;
根据所述射出方向,确定光线经所述目标像素点穿过所述三维模型后与所述背景图片的第一交点。
4.根据权利要求1所述的图像渲染方法,其特征在于,所述反射颜色的确定过程,包括:
确定从预设观察点出发的光线经所述目标像素点反射后与背景图片的第二交点,所述背景图片为预设图片或当前拍摄画面;
根据所述背景图片上的所述第二交点的颜色,确定所述目标像素点的反射颜色。
5.根据权利要求1至4中任一项所述的图像渲染方法,其特征在于,所述根据所述目标像素点在所述三维模型上的法线与世界空间的预设坐标轴的空间关系,从所述折射颜色和所述反射颜色中选择至少一个,并根据所选择的颜色与所述贴图颜色确定所述目标像素点的渲染颜色,包括:
确定所述目标像素点在所述三维模型上的法线与所述世界空间的预设坐标轴的夹角;
根据所述夹角的绝对值与阈值的大小关系,从所述折射颜色和所述反射颜色中选择一个,并根据所选择的颜色与所述贴图颜色确定所述目标像素点的渲染颜色。
6.根据权利要求1至4中任一项所述的图像渲染方法,其特征在于,所述根据所述目标像素点在所述三维模型上的法线与世界空间的预设坐标轴的空间关系,从所述折射颜色和所述反射颜色中选择至少一个,并根据所选择的颜色与所述贴图颜色确定所述目标像素点的渲染颜色,包括:
确定所述目标像素点在所述三维模型上的法线与所述世界空间的预设坐标轴的夹角;
根据所述夹角确定折射权重和反射权重,使用所述折射权重、所述反射权重和预设贴图权重,对所述折射颜色、所述反射颜色和所述贴图颜色进行加权计算,确定所述目标像素点的渲染颜色。
7.根据权利要求1所述的图像渲染方法,其特征在于,还包括:
对所述目标像素点的所述反射颜色和/或所述目标像素点的所述折射颜色进行矫正,
其中,对所述目标像素点的所述反射颜色进行矫正时使用的矫正系数为第一系数,对所述目标像素点的所述折射颜色进行矫正时使用的矫正系数为第二系数,所述第一系数与所述第二系数不同。
8.一种图像渲染装置,其特征在于,包括:
第一颜色确定单元,被配置为执行确定待渲染对象的三维模型中的目标像素点的折射颜色、反射颜色以及贴图颜色,所述目标像素点表示所述三维模型中所要显示在屏幕上的像素点;
第二颜色确定单元,被配置为执行根据所述目标像素点在所述三维模型上的法线与世界空间的预设坐标轴的空间关系,从所述折射颜色和所述反射颜色中选择至少一个,并根据所选择的颜色与所述贴图颜色确定所述目标像素点的渲染颜色;
渲染单元,被配置为执行根据所述渲染颜色对所述目标像素点进行渲染。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的图像渲染方法。
10.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7中任一项所述的图像渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011069636.3A CN112200902A (zh) | 2020-09-30 | 2020-09-30 | 图像渲染方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011069636.3A CN112200902A (zh) | 2020-09-30 | 2020-09-30 | 图像渲染方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112200902A true CN112200902A (zh) | 2021-01-08 |
Family
ID=74013033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011069636.3A Pending CN112200902A (zh) | 2020-09-30 | 2020-09-30 | 图像渲染方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112200902A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112819929A (zh) * | 2021-03-05 | 2021-05-18 | 网易(杭州)网络有限公司 | 渲染水面方法及装置、电子设备、存储介质 |
CN112860063A (zh) * | 2021-02-02 | 2021-05-28 | 杭州电魂网络科技股份有限公司 | 交互水的实现方法、系统、电子装置和存储介质 |
CN113421313A (zh) * | 2021-05-14 | 2021-09-21 | 北京达佳互联信息技术有限公司 | 一种图像构建方法、装置、电子设备及存储介质 |
CN113947656A (zh) * | 2021-10-27 | 2022-01-18 | 北京字节跳动网络技术有限公司 | 一种透明多面体的渲染方法及装置 |
CN115129191A (zh) * | 2021-03-26 | 2022-09-30 | 北京新氧科技有限公司 | 三维对象拾取方法、装置、设备及存储介质 |
WO2023005757A1 (zh) * | 2021-07-30 | 2023-02-02 | 北京字跳网络技术有限公司 | 一种透明多面体的渲染方法及装置 |
CN116091684A (zh) * | 2023-04-06 | 2023-05-09 | 杭州片段网络科技有限公司 | 基于WebGL的图像渲染方法、装置、设备及存储介质 |
WO2023123357A1 (zh) * | 2021-12-31 | 2023-07-06 | Oppo广东移动通信有限公司 | 图像处理的方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101320480A (zh) * | 2008-07-04 | 2008-12-10 | 浙江大学 | 一种基于gpu的实时动态水面模拟方法 |
CN102930583A (zh) * | 2012-10-17 | 2013-02-13 | 中国科学院自动化研究所 | 互动式生成液滴效果的方法 |
CN106652007A (zh) * | 2016-12-23 | 2017-05-10 | 网易(杭州)网络有限公司 | 虚拟海面渲染方法及系统 |
CN107886562A (zh) * | 2017-12-05 | 2018-04-06 | 北京像素软件科技股份有限公司 | 水面渲染方法、装置及可读存储介质 |
CN109685880A (zh) * | 2018-11-07 | 2019-04-26 | 苏州蜗牛数字科技股份有限公司 | 一种利用光线追踪计算水面反射和折射效果方法 |
CN110163945A (zh) * | 2019-05-25 | 2019-08-23 | 北京工业大学 | 一种实时渲染中的水面仿真方法 |
CN111009026A (zh) * | 2019-12-24 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 对象渲染方法和装置、存储介质及电子装置 |
-
2020
- 2020-09-30 CN CN202011069636.3A patent/CN112200902A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101320480A (zh) * | 2008-07-04 | 2008-12-10 | 浙江大学 | 一种基于gpu的实时动态水面模拟方法 |
CN102930583A (zh) * | 2012-10-17 | 2013-02-13 | 中国科学院自动化研究所 | 互动式生成液滴效果的方法 |
CN106652007A (zh) * | 2016-12-23 | 2017-05-10 | 网易(杭州)网络有限公司 | 虚拟海面渲染方法及系统 |
CN107886562A (zh) * | 2017-12-05 | 2018-04-06 | 北京像素软件科技股份有限公司 | 水面渲染方法、装置及可读存储介质 |
CN109685880A (zh) * | 2018-11-07 | 2019-04-26 | 苏州蜗牛数字科技股份有限公司 | 一种利用光线追踪计算水面反射和折射效果方法 |
CN110163945A (zh) * | 2019-05-25 | 2019-08-23 | 北京工业大学 | 一种实时渲染中的水面仿真方法 |
CN111009026A (zh) * | 2019-12-24 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 对象渲染方法和装置、存储介质及电子装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860063A (zh) * | 2021-02-02 | 2021-05-28 | 杭州电魂网络科技股份有限公司 | 交互水的实现方法、系统、电子装置和存储介质 |
CN112860063B (zh) * | 2021-02-02 | 2022-04-29 | 杭州电魂网络科技股份有限公司 | 交互水的实现方法、系统、电子装置和存储介质 |
CN112819929B (zh) * | 2021-03-05 | 2024-02-23 | 网易(杭州)网络有限公司 | 渲染水面方法及装置、电子设备、存储介质 |
CN112819929A (zh) * | 2021-03-05 | 2021-05-18 | 网易(杭州)网络有限公司 | 渲染水面方法及装置、电子设备、存储介质 |
CN115129191A (zh) * | 2021-03-26 | 2022-09-30 | 北京新氧科技有限公司 | 三维对象拾取方法、装置、设备及存储介质 |
CN115129191B (zh) * | 2021-03-26 | 2023-08-15 | 北京新氧科技有限公司 | 三维对象拾取方法、装置、设备及存储介质 |
CN113421313B (zh) * | 2021-05-14 | 2023-07-25 | 北京达佳互联信息技术有限公司 | 一种图像构建方法、装置、电子设备及存储介质 |
CN113421313A (zh) * | 2021-05-14 | 2021-09-21 | 北京达佳互联信息技术有限公司 | 一种图像构建方法、装置、电子设备及存储介质 |
WO2023005757A1 (zh) * | 2021-07-30 | 2023-02-02 | 北京字跳网络技术有限公司 | 一种透明多面体的渲染方法及装置 |
CN113947656A (zh) * | 2021-10-27 | 2022-01-18 | 北京字节跳动网络技术有限公司 | 一种透明多面体的渲染方法及装置 |
CN113947656B (zh) * | 2021-10-27 | 2024-04-30 | 抖音视界有限公司 | 一种透明多面体的渲染方法及装置 |
WO2023123357A1 (zh) * | 2021-12-31 | 2023-07-06 | Oppo广东移动通信有限公司 | 图像处理的方法和装置 |
CN116091684A (zh) * | 2023-04-06 | 2023-05-09 | 杭州片段网络科技有限公司 | 基于WebGL的图像渲染方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112200902A (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
US10733783B2 (en) | Motion smoothing for re-projected frames | |
US10957011B2 (en) | System and method of capturing and rendering a stereoscopic panorama using a depth buffer | |
Greene | Environment mapping and other applications of world projections | |
US20100110069A1 (en) | System for rendering virtual see-through scenes | |
US11386633B2 (en) | Image augmentation for analytics | |
EP0583060A2 (en) | Method and system for creating an illusion of three-dimensionality | |
US10970920B2 (en) | Systems and methods for ray-traced shadows of transparent objects | |
Rousseau et al. | Realistic real-time rain rendering | |
US11120613B2 (en) | Image generating device and method of generating image | |
CN101631257A (zh) | 一种实现二维视频码流立体播放的方法及装置 | |
WO1996036011A1 (en) | Graphics system utilizing homogeneity values for depth for occlusion mapping and texture mapping | |
US20230230311A1 (en) | Rendering Method and Apparatus, and Device | |
US10553014B2 (en) | Image generating method, device and computer executable non-volatile storage medium | |
CN112184873B (zh) | 分形图形创建方法、装置、电子设备和存储介质 | |
US20180184066A1 (en) | Light field retargeting for multi-panel display | |
US20050001834A1 (en) | Methods and apparatus for rendering an image including portions seen through one or more objects of the image | |
US20200184707A1 (en) | Data processing systems | |
US6975319B1 (en) | System, method and article of manufacture for calculating a level of detail (LOD) during computer graphics processing | |
US10839587B2 (en) | Image processing methods and devices for moving a target object by using a target ripple | |
US20180213215A1 (en) | Method and device for displaying a three-dimensional scene on display surface having an arbitrary non-planar shape | |
CN111010559B (zh) | 裸眼三维光场内容的生成方法及装置 | |
Mulder | Realistic occlusion effects in mirror-based co-located augmented reality systems | |
CN114494545A (zh) | 一种在3d场景中模拟雾天的实现方法及系统 | |
CN113476835B (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 |