CN107958480B - 图像渲染方法、装置及存储介质 - Google Patents
图像渲染方法、装置及存储介质 Download PDFInfo
- Publication number
- CN107958480B CN107958480B CN201711183182.0A CN201711183182A CN107958480B CN 107958480 B CN107958480 B CN 107958480B CN 201711183182 A CN201711183182 A CN 201711183182A CN 107958480 B CN107958480 B CN 107958480B
- Authority
- CN
- China
- Prior art keywords
- target texture
- state
- coordinate
- image
- target
- 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
Links
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/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种图像渲染方法,所述方法包括:当检测到虚拟空间中有虚拟对象的状态发生变化时,获取虚拟空间中与当前准备渲染的一帧图像相关的虚拟对象的位置数据,根据所述虚拟对象的位置数据更新目标纹理状态数据中至少一个目标纹理坐标对应的目标纹理状态;针对所述当前准备渲染的一帧图像及该帧图像之后下一次虚拟对象的状态发生变化之前的图像,根据所述目标纹理状态数据确定所述当前准备渲染的一帧图像及该帧图像之后下一次虚拟对象的状态发生变化之前的图像中各帧图像叠加目标纹理后的图像;渲染所述各帧图像叠加目标纹理后的图像。本申请还提出了相应的装置及存储介质。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及图像渲染方法、装置及存储介质。
背景技术
图像渲染是指三维的物体或三维的场景通过渲染转化成二维的图像,转化的二维图像同时又能很好地反应三维的场景和三维的物体。图像渲染主要应用在游戏,图形3D演示(如房地产3D演示),虚拟仿真等领域。在图像渲染时,有时对图像渲染附加的纹理,例如,在游戏场景中,在游戏场景中设置迷雾,在图像渲染时需要渲染该迷雾。在一些实例中,渲染纹理采用镂空的纹理,使用一张不透明的黑色纹理遮盖住整个场景,然后根据场景中虚拟对象的位置在黑色纹理上进行镂空,使得镂空区域内的物件是可见的。但该种方式不支持地形的遮挡,无法满足某些场景的需求。在另一些实例中,渲染纹理的方式为,在渲染流水线的最后阶段,对整个场景映射到屏幕上的二维图像进行处理,计算出每个像素点是否可见。但该种方式需要对每一帧图像的每一个像素进行处理,性能开销较大。
发明内容
本申请实例提供了一种图像渲染方法,所述图像包含多帧图像并呈现虚拟空间中的虚拟对象,所述方法包括:
当检测到虚拟空间中有虚拟对象的状态发生变化时,获取虚拟空间中与当前准备渲染的一帧图像相关的虚拟对象的位置数据,根据所述虚拟对象的位置数据更新目标纹理状态数据中至少一个目标纹理坐标对应的目标纹理状态;所述目标纹理状态数据包括所述图像的每一个像素点在所述目标纹理中的目标纹理坐标及其对应的目标纹理状态,所述目标纹理状态代表对应像素点在所述目标纹理中与虚拟对象所在区域有关的状态;
针对所述当前准备渲染的一帧图像及该帧图像之后下一次虚拟对象的状态发生变化之前的图像,
根据所述目标纹理状态数据确定所述当前准备渲染的一帧图像及该帧图像之后下一次虚拟对象的状态发生变化之前的图像中各帧图像叠加目标纹理后的图像;
渲染所述各帧图像叠加目标纹理后的图像。
本申请实例还提供了一种图像渲染装置,所述图像包含多帧图像并呈现虚拟空间中的虚拟对象,所述装置包括:
目标纹理状态数据更新单元,用以当检测到虚拟空间中有虚拟对象的状态发生变化时,获取虚拟空间中与当前准备渲染的一帧图像相关的虚拟对象的位置数据,根据所述虚拟对象的位置数据更新目标纹理状态数据中至少一个目标纹理坐标对应的目标纹理状态;所述目标纹理状态数据包括所述图像的每一个像素点在所述目标纹理中的目标纹理坐标及其对应的目标纹理状态,所述目标纹理状态代表对应像素点在所述目标纹理中与虚拟对象所在区域有关的状态;
颜色值确定单元,用以针对所述当前准备渲染的一帧图像及该帧图像之后下一次虚拟对象的状态发生变化之前的图像,
根据所述目标纹理状态数据确定所述当前准备渲染的一帧图像及该帧图像之后下一次虚拟对象的状态发生变化之前的图像中各帧图像叠加目标纹理后的图像;
渲染单元,用以渲染所述各帧图像叠加目标纹理后的图像。
本申请实例还提供了一种计算机可读存储介质,存储有计算机可读指令,可以使至少一个处理器执行如上述所述的方法。
采用本申请提供的上述方案,降低了对图像渲染目标纹理的性能消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是是本申请实例涉及的***构架图;
图2是本申请一实例图像渲染方法的流程图;
图3A是本申请一实例虚拟空间中可见区域及不可见区域的结构示意图;
图3B是本申请一实例已探索区域与未探索区域对应相同目标纹理状态的结构示意图;
图3C是本申请一实例已探索区域与未探索区域对应不同目标纹理状态的结构示意图;
图4是本申请一实例虚拟空间中目标纹理的结构示意图;
图5是本申请一实例确定目标纹理中的可见区域的结构示意图;
图6是本申请一实例图像渲染装置的结构示意图;以及
图7为本申请实例中的计算设备组成结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提出的图像渲染方法、装置及存储介质可应用于图1所示的***架构中,其包括:客户端101、应用服务器102,客户端101与应用服务器102之间通过互联网103连接。当本申请提出的图像渲染方法应用在游戏场景中时,所述客户端101为游戏客户端,所述应用服务器102为游戏服务器,客户端101通过应用服务器102可以与其他客户端进行交互,例如,当游戏场景中具有多个玩家时,当前玩家对应的客户端101通过应用服务器102接收其他玩家对应的客户端101发送的其他玩家在游戏场景中的位置数据,进而可以根据所有玩家在游戏场景中位置数据对该游戏场景进行渲染。
这里,上述客户端101所在终端设备是指具有数据计算处理功能的终端设备,包括但不限于(安装有通信模块的)智能手机、掌上电脑、平板电脑等。这些通信终端上都安装有操作***,包括但不限于:Android操作***、Symbian操作***、Windows mobile操作***、以及苹果iPhone OS操作***等等。
本申请提出了一种图像渲染方法,应用于客户端101,所述图像包含多帧图像并呈现虚拟空间中的虚拟对象,如图2所示,该方法包括以下步骤:
201:当检测到虚拟空间中有虚拟对象的状态发生变化时,获取虚拟空间中与当前准备渲染的一帧图像相关的虚拟对象的位置数据,根据所述虚拟对象的位置数据更新目标纹理状态数据中至少一个目标纹理坐标对应的目标纹理状态;所述目标纹理状态数据包括所述帧图像的每一个像素点在所述目标纹理中的目标纹理坐标及其对应的目标纹理状态,所述目标纹理状态代表对应像素点在所述目标纹理中与虚拟对象所在区域有关的状态,所述目标纹理对应多个目标纹理状态。
在一些虚拟空间的场景中,需要在虚拟空间中叠加目标纹理,渲染虚拟空间的场景的各帧图像为原始纹理,在虚拟空间中叠加的纹理为目标纹理。例如,在游戏场景中,渲染游戏场景的各帧图像为原始纹理,游戏场景中,叠加到虚拟空间上空的迷雾纹理为目标纹理,在渲染游戏场景的图像时,需要将迷雾纹理叠加到各帧图像上。其中,各帧图像上的原始纹理坐标(像素坐标)与目标纹理对应的目标纹理坐标存在一一对应关系。用目标纹理状态数据记录目标纹理的状态,目标纹理状态数据包括各目标纹理坐标对应的目标纹理状态。其中,各目标纹理坐标对应的目标纹理的状态与虚拟空间中虚拟对象的状态相关,向虚拟空间中虚拟对象的状态发送变化时,各目标纹理坐标对应的目标纹理状态发生变化,此时,根据虚拟空间中虚拟对象的位置数据更新目标纹理状态数据,虚拟空间中虚拟对象的状态发生时准备渲染的图像及下一次虚拟空间中有虚拟对象的状态发生变化之前各帧图像,根据所述目标纹理状态数据渲染所述图像。当后续虚拟空间中虚拟对象的状态再发生变化时,再更新目标纹理状态数据,利用更新后的目标纹理状态数据渲染后续的图像。
对于目标纹理的状态以游戏场景为例进行说明,在游戏场景中,例如,所述目标纹理为迷雾纹理。初始过程中,整个场景被迷雾遮罩,无法看到迷雾下的任何虚拟对象。虚拟空间中一些预设的虚拟对象具有破开迷雾的功能,例如,游戏场景中的角色及建筑的周围是可见区域,在可见区域内的一切物体都是可见的,相当于这一块区域没有迷雾。例如在图3A所示的虚拟空间300中,虚拟空间上方覆盖迷雾纹理,虚拟建筑301及虚拟角色302周围的区域为可见区域303,在可见区域303中,迷雾纹理的状态为可见,在可见区域周围为被迷雾遮盖的未探索区域304,对应的迷雾纹理的状态为未探索。虚拟空间中的一些虚拟对象,如虚拟角色是可以移动的单位,在其移动过程中不断破开新的迷雾,之前的可见区域可以根据需求保持可见或者重新形成迷雾,如图3B所述,虚拟角色302从图3A所示的位置移动到虚拟空间中图3B所示的位置的过程中,之前的可见区域重新形成迷雾,这种情况,迷雾纹理对应的状态包括可见及不可见两种情况。也可以将未探索区域的迷雾设置为一个颜色的迷雾,例如黑色,将虚拟角色移动过程中的之前的可见区域,即已探索区域的迷雾设置为另一个颜色的迷雾,例如图3C中的已探索区域307设置为另一个颜色的迷雾,例如蓝色的迷雾,此时,迷雾纹理对应的状态包括可见、已探索及未探索三种情况。本实例中,目标纹理对应多个目标纹理状态,具体的,目标纹理中不同区域对应的目标纹理状态以及目标纹理的颜色值可以预先定义。将目标纹理中目标纹理坐标对应的目标纹理状态保存在目标纹理状态数据中,其中,每一个目标纹理坐标对应图像中的一个像素点。一个目标纹理坐标对应的目标纹理状态随着虚拟空间中虚拟对象的状态的改变而改变,例如图3A及图3B所示的虚拟空间中,虚拟角色302发生了移动,虚拟空间300中的可见区域发生了变化,对应的迷雾纹理坐标对应的目标纹理状态需要根据虚拟空间中虚拟对象的位置数据进行更新。其中,虚拟空间中虚拟对象的状态的变化包括:虚拟角色的产生、移动、死亡、虚拟建筑的产生、毁灭等。
202:针对所述当前准备渲染的一帧图像及该帧图像之后下一次虚拟对象的状态发生变化之前的帧图像,根据所述目标纹理状态数据确定所述当前准备渲染的一帧图像及该帧图像之后下一次虚拟对象的状态发生变化之前的图像中各帧图像叠加目标纹理后的图像;渲染所述各帧图像叠加目标纹理后的图像。
当渲染一帧图像的目标纹理时,需要根据目标纹理状态数据进行目标纹理的渲染。目标纹理状态数据有一个更新的过程,当检测到虚拟空间中虚拟对象的状态发生变化时,根据当前待渲染的图像相关的虚拟对象的位置数据更新目标纹理状态数据。可以预设虚拟空间中虚拟对象状态变化的检测周期,该检测周期可以大于图像的渲染周期。当经过一个检测周期后,检测虚拟空间中虚拟对象的状态是否发生了变化,如果发生了变化,更新目标纹理状态数据,并将更新后的目标纹理状态数据输入到着色器中,以使得着色器根据该目标纹理状态数据进行图像的渲染。如果虚拟空间中虚拟对象的状态发生了变化,则该帧图像对应的目标纹理状态数据为更新后的目标纹理状态数据。如果虚拟空间中虚拟对象的状态没有发生变化,不进行目标纹理状态数据的更新,则该帧图像对应的目标纹理状态数据为原有的目标纹理状态数据,根据该目标纹理状态数据进行图像渲染。具体渲染图像时,根据目标纹理状态数据确定帧图像叠加目标纹理后的图像。
采用本申请提供的图像渲染方法,将目标纹理中的目标纹理坐标对应的目标纹理状态保存在目标纹理状态数据中,每经过一个图像渲染周期更新图像时,根据目标纹理状态数据进行渲染图像。目标纹理状态数据只有在虚拟空间中虚拟对象的状态发生变化时才进行更新,图像渲染时,不需要每一帧每一个像素点都计算目标纹理状态,减少了计算量,降低了性能开销。
在一些实例中,在上述步骤202中,在执行所述根据所述目标纹理状态数据确定所述当前准备渲染的一帧图像及该帧图像之后下一次虚拟对象的状态发生变化之前的图像中各帧图像叠加目标纹理后的图像时,包括以下步骤:
S11:针对各帧图像的各像素点,确定该像素点在原始纹理中的原始纹理坐标,根据该像素点的原始纹理坐标获取该像素点的第一颜色值。根据所述像素点的原始纹理坐标,即像素坐标,在原始纹理中,即图像纹理中,可以确定该像素点的第一颜色值,该第一颜色值为像素点在图像中的颜色值。
S12:根据该像素点的原始纹理坐标确定在目标纹理中的目标纹理坐标,根据所述目标纹理坐标及所述目标纹理状态数据确定该像素点的所述目标纹理坐标对应的目标纹理状态。
根据像素点的原始纹理坐标,即像素坐标,进行坐标变换,可以确定在虚拟空间中的世界坐标,进而根据该世界坐标可以确定对应的在目标纹理上的目标纹理坐标。步骤201中获取到的目标纹理状态数据中包括至少一个目标纹理坐标对应的目标纹理状态,进而可以根据所述确定的目标纹理坐标在所述目标纹理状态数据中查找与所述确定的目标纹理坐标对应的目标纹理状态。
S13:根据该像素点的所述第一颜色值及所述目标纹理状态,确定该像素点的第二颜色值。
根据步骤S12中确定的像素点对应的目标纹理状态,可以确定与该目标纹理状态对应的目标纹理颜色值,进而根据所述第一颜色值与所述目标纹理颜色值确定要渲染的该像素点的颜色值。例如,可以将第一颜色值与所述目标纹理颜色值进行乘积作为所述第二颜色值,对应的视觉效果为将该像素点的原始颜色与目标纹理颜色进行叠加的效果。
S14:其中,在上述步骤202中,在执行所述渲染所述各帧图像叠加目标纹理后的图像时,包括步骤:针对所述各帧图像中的任一帧图像,渲染该帧图像各像素点的第二颜色值。
步骤S13中确定的第二颜色值为所述像素点的原始颜色叠加目标纹理后的最终颜色对应的颜色值,在渲染所述各帧图像的任一帧图像时,将该图像的各像素点渲染各像素点的所述第二颜色值。
在一些实例中,其中,所述多个目标纹理状态包括:表示位于可见区域的第一状态和表示不在可见区域的第二状态。例如在图3A所示的虚拟空间300中,目标纹理包括可见区域303及不可见区域304,可见区域303中的目标纹理坐标对应的目标纹理状态为第一状态,不可见区域304中的目标纹理坐标对应的目标纹理状态为第二状态。
在上述步骤201中,在执行所述根据所述虚拟对象的位置数据更新目标纹理状态数据中至少一个目标纹理坐标对应的目标纹理状态时,包括以下步骤:
S101:获取所述虚拟对象的可见距离,根据所述虚拟对象的位置数据及所述可见距离确定所述虚拟对象在目标纹理上的可见区域的世界坐标集合;
所述可见距离为预先设置好的可见距离,虚拟空间中不同的虚拟对象可以对应不同的可见距离。根据虚拟对象的位置数据(该位置数据可以为虚拟空间中虚拟对象的世界坐标)可以确定对应的在目标纹理上的位置数据,即虚拟对象在目标纹理上的世界坐标,根据虚拟对象在所述目标纹理上的世界坐标及所述可见距离可以确定各虚拟对象的可见区域的世界坐标集合。例如在图3B所示的虚拟空间300中,根据虚拟角色302在虚拟空间中的世界坐标可以确定对应的在迷雾纹理上的世界坐标,根据确定的该世界坐标及虚拟对象302的可见距离可以确定虚拟对象302的可见区域305。同样的,可以根据虚拟建筑301的可见距离及位置数据确定可见区域303。根据虚拟空间中各虚拟对象的可见区域可以确定目标纹理上的可见区域的世界坐标集合。
S102:根据所述可见区域的世界坐标集合确定所述可见区域的目标纹理坐标集合。
目标纹理覆盖整个虚拟空间,在目标纹理上,世界坐标的原点是居中的,目标纹理坐标的原点为目标纹理的一个角,因而在目标纹理上的世界坐标与目标纹理坐标之间存在偏移,根据该偏移可以确定可见区域的世界坐标集合中各世界坐标对应的目标纹理坐标。如图4所示的虚拟空间中,目标纹理为迷雾纹理,虚拟空间中的世界坐标系为OXYZ,其中水平面为XZ平面,Y为高度方向,迷雾在场景的上方,与水平面平行。迷雾在世界坐标中是居中的,假设迷雾大小为100*100,假设迷雾的纹理坐标原点为左上角,则最左上角的迷雾点在世界坐标中的坐标为(-50,50),在迷雾纹理上的坐标为(0,0),迷雾上居中点的世界坐标为(0,0),在迷雾纹理上的坐标为(50,50),迷雾上右下角的迷雾点的世界坐标为(50,50),在迷雾纹理上的坐标为(100,100),在迷雾上,世界坐标的原点是居中的,在迷雾纹理上,纹理坐标以左上角为原点,根据迷雾上世界坐标的原点与迷雾纹理的原点之间的偏移,可以确定迷雾上的迷雾点的世界坐标与迷雾纹理坐标之间的转换。
S103:根据所述可见区域的目标纹理坐标集合更新所述目标纹理状态数据中至少一个目标纹理坐标的目标纹理状态,以将其中属于所述可见区域的所述目标纹理坐标集合的各目标纹理坐标对应的目标纹理状态置为所述第一状态,将不属于所述可见区域的所述目标纹理坐标集合的各目标纹理坐标对应的目标纹理状态置为所述第二状态。
在该实例中,目标纹理状态包括第一状态及第二状态,当一个目标纹理坐标属于可见区域的目标纹理坐标集合时,在目标纹理状态数据中将该目标纹理坐标对应的状态设置为第一状态,即可见状态。当一个目标纹理坐标不属于可见区域的目标纹理坐标集合时,在目标纹理状态数据中将该目标纹理坐标对应的状态设置为第二状态,即不可见状态。例如在图3B所示的虚拟空间中,迷雾纹理的状态包括可见状态及不可见状态,将虚拟角色302的可见区域305及虚拟建筑301的可见区域306中的迷雾纹理坐标的迷雾纹理状态设置为可见状态,将其余迷雾纹理坐标的迷雾纹理状态设置为不可见状态。
在上一实例中,为了使得目标纹理的状态更加丰富,将目标纹理中已探索区域的状态与不可见区域的状态设置为不同的状态,在该情况下,不可见区域也称为未探索区域。具体地,所述多个目标纹理状态还包括:表示位于已探索区域的第三状态,所述已探索区域包括各历史可见区域,例如,虚拟场景中虚拟角色走过的路径为已探索区域。
在上述步骤S103中,在执行所述将不属于所述可见区域的所述目标纹理坐标集合的各目标纹理坐标对应的目标纹理状态置为所述第二状态时,包括以下步骤:
S201:对于不属于所述可见区域的所述目标纹理坐标集合的每一目标纹理坐标,当在所述目标纹理状态数据中该目标纹理坐标对应的目标纹理状态为第一状态时,在所述目标纹理状态数据中将该目标纹理坐标对应的目标纹理状态置为所述第三状态;否则,在所述目标纹理状态数据中将该目标纹理坐标对应的目标纹理状态置为所述第二状态。
对于不属于所述可见区域的所述目标纹理坐标集合的每一目标纹理坐标,当其在所述目标纹理状态数据中的状态为第一状态时,即在上一次目标纹理状态数据更新时属于可见状态,即曾经属于可见区域时,将该目标纹理坐标对应的目标纹理状态置为第三状态,即已探索状态。同时当一目标纹理坐标在所述目标纹理状态数据中的状态为第三状态时,即上一次更新目标纹理状态数据时,该目标纹理坐标属于已探索区域,同时该目标纹理坐标也不属于可见区域,则将该目标纹理坐标对应的目标纹理状态仍置为第三状态。将不属于所述可见区域的所述目标纹理坐标集合中的其他目标纹理坐标的目标纹理状态置为第二状态,即未探索状态。
在一些实例中,在上述步骤S101中,在执行所述根据所述虚拟对象的位置数据及所述可见距离确定所述虚拟对象在目标纹理上的可见区域的世界坐标集合时,包括以下步骤:
S301:根据所述虚拟对象的位置数据确定所述虚拟对象在目标纹理上的世界坐标。
以目标纹理为迷雾纹理为例进行说明,虚拟空间中的角色及建筑具有破开迷雾的功能,因而在角色及建筑周围为可见区域。迷雾覆盖整个虚拟空间,如图4所示,虚拟空间中的世界坐标系为OXYZ,其中水平面为XZ平面,Y为高度方向,迷雾在场景的上方,与水平面平行。迷雾在世界坐标中是居中的,假设迷雾大小为100*100,则最左上角的迷雾点在世界坐标中的坐标为(-50,50),在迷雾纹理上的坐标为(0,0),迷雾上居中点的世界坐标为(0,0),在迷雾纹理上的坐标为(50,50),迷雾上右下角的迷雾点的世界坐标为(50,50),在迷雾纹理上的坐标为(100,100),在迷雾上,世界坐标的原点是居中的,在迷雾纹理上,纹理坐标以左上角为原点,根据迷雾上世界坐标的原点与迷雾纹理的原点之间的偏移,可以确定迷雾上的迷雾点的世界坐标与迷雾纹理坐标之间的转换。在确定虚拟对象的可见区域时,该虚拟对象包括虚拟空间中的建筑及角色等,根据虚拟对象的世界坐标(x,y,z)确定对应的在迷雾上的世界坐标(x,z),根据该世界坐标可以确定对应的迷雾纹理坐标。
S302:根据所述虚拟对象在目标纹理上的世界坐标及所述可见距离,确定检测范围。
如图5所示,确定所述虚拟对象在迷雾上的纹理坐标501,同时获取该虚拟对象的可见距离,根据该可见距离确定检测区域,例如,当虚拟对象的可见距离为3时,则从纹理坐标201开始,向上、下、左、右各数3个单元,确定检测区域。
S303:当所述检测范围内的一个世界坐标与所述虚拟对象在目标纹理上的世界坐标之间的距离不超过所述可见距离时,将所述检测范围内的该世界坐标加入所述可见区域的世界坐标集合。
确定检测区域后,对于检测区域中的每一个迷雾点,判断每一个迷雾点到纹理坐标501的距离是否在该虚拟对象的可见距离范围内,如果在所述可见距离范围内(如迷雾点51),则该迷雾点为可见区域中的迷雾点,如果不在所述可见距离范围内(如迷雾点52),则该迷雾点不作为可见区域中的迷雾点。
在一些实例中,本申请提出的图像渲染方法,进一步包括以下步骤:
S401:当所述检测范围内的一个世界坐标与所述虚拟对象在目标纹理上的世界坐标之间的距离不超过所述可见距离时,确定所述检测范围内的该世界坐标在虚拟空间中的高度;当所述高度超过所述虚拟对象的可视高度时,将所述检测范围内的该世界坐标加入阻挡坐标集合。
以目标纹理为迷雾纹理为例进行说明,在确定可见区域时,除了考虑一个迷雾点与纹理坐标501之间的距离是否在可见距离范围以内,还需要考虑一个迷雾点对应的虚拟空间中的高度,在虚拟空间的场景中,水平面上一点(x,z)对应唯一的一个高度y,因而根据所述迷雾点的世界坐标(x,z)确定该迷雾点对应的高度y,同时获取所述虚拟对象的可视高度,当所述迷雾点的高度大于该虚拟对象的可视高度时,这一点不可见,将该迷雾点的迷雾纹理坐标加入阻挡坐标集合。
S402:根据所述阻挡坐标集合中的各世界坐标确定阻挡区域,将所述阻挡区域中的各世界坐标从所述可见区域的世界坐标集合中排除。
对于阻挡坐标集合中的迷雾纹理坐标,从迷雾纹理坐标501到该迷雾点的连线上,该迷雾点之后的点都不可见。如图5所示,区域502中的迷雾点对应的虚拟空间中的高度大于所述虚拟对象的可视高度,区域502之后的迷雾点都不可见。这样,可视区域中需要放弃区域503中的迷雾点,区域503中的迷雾点对于虚拟对象都是不可见的,对应的区域503中的迷雾点的各世界坐标从可见区域的世界坐标集合中排除。
在一些实例中,所述目标纹理状态包括第一状态(可见状态)及第二状态(不可见状态),其中,所述目标纹理状态数据包括数组,所述数组用于记录表征每一个目标纹理坐标对应的目标纹理状态的目标纹理状态参数,所述第二状态对应预设颜色值,该预设颜色值为不可见状态对应的目标纹理的颜色值。
还以目标纹理为迷雾纹理为例进行说明,该数组为Buffer1,用以保存迷雾数据,包括迷雾纹理中每一个迷雾点的迷雾纹理坐标及其对应的状态,可以为可见状态或不可见状态。其中,可见区域中的迷雾点为可见状态,不可见状态指场景中迷雾纹理上被深色迷雾覆盖的区域对应的状态,不可见区域中迷雾点的状态为不可见状态。数组Buffer1的大小与迷雾大小相同,当迷雾大小为100*100时,则Buffer1的大小为10000,保存10000个迷雾纹理坐标对应的状态。保存在Buffer1中的迷雾纹理坐标需要缩放到(0,1)区间,因为Buffer1中的数据要输入到着色器(shader)中,在shader中,纹理坐标都是在0-1区间的。还如图5所示的示例,迷雾大小为100*100,则可将迷雾纹理坐标乘以1/100,以将其缩放到0~1的取值区间,例如迷雾纹理坐标(50,50)在Buffer1中的坐标为(0.5,0.5),迷雾纹理坐标(100,100)在Buffer1中的坐标为(1,1)。Buffer1中的迷雾点的状态采用颜色值进行保存,采用RGBA来保存一个迷雾点的状态,该颜色值的格式可以采用color32,也可以采用其他格式。初始状态下,Buffer1中全部为(0,0,0,0),其中第一位为红色通道,第二位为绿色通道,第三位为蓝色通道,第四位代表透明度。在根据可见区域的世界坐标集合更新目标纹理状态数据时,根据可见区域的世界坐标集合更新Buffer1,具体地,如果一个像素点可见,则将Buffer1中的R通道置1,如果一个像素点不可见,则将Buffer1中的R通道置0。这样,Buffer1中保存的目标纹理状态参数有(1,0,0,0)及(0,0,0,0)两种情况。其中,(1,0,0,0)对应纹理坐标的状态为可见,(0,0,0,0)对应纹理坐标的状态为不可见。
在上述步骤S13中,在执行所述根据该像素点的所述第一颜色值及所述目标纹理状态,确定该像素点的第二颜色值时,包括以下步骤:
S501:当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第一状态时,将所述第一颜色值作为所述第二颜色值。
对于一帧图像中的每一个像素点,根据该像素点的原始纹理坐标,确定该像素点的原始颜色值,可表示为c.rgb。根据该像素点的原始纹理坐标确定对应的世界坐标(x,y,z),根据世界坐标的x、z确定迷雾纹理的迷雾纹理坐标,再将迷雾纹理坐标缩放到0-1区间,根据确定的缩放到0-1区间的迷雾纹理坐标,在Buffer1中查找对应迷雾纹理坐标的迷雾纹理状态参数。这里,可将不可见区域的迷雾颜色值表示为UnExplored。在确定所述像素点的颜色值时,通过以下公式(1)来确定:
rgb=lerp(c.rgb*Unexp lored,c.rgb,fog.r) (1)
其中,对于函数lerp,lerp(a,b,c)=a+(b-a)*c,当c=0时,取值为a,当c为1时,取值为b,c.rgb*UnExplored为像素点的原始颜色值与设置的不可见区域迷雾颜色的乘积,效果为像素点的原始颜色与不可见区域迷雾颜色的叠加,c.rgb为像素点的原始颜色值,即所述第一颜色值,fog.r为Buffer1中的R通道对应的值。
如果一个像素点对应可见区域,则Buffer1中对应的缩放到0-1区间的迷雾纹理坐标下存储的目标纹理状态参数为:1,0,0,0,当目标纹理状态参数的第一位为1时,表征对应的状态为第一状态,此时,fog.r=1,则根据公式(1)得到的结果为c.rgb,即该像素点的颜色为原始颜色值,即第一颜色值。
S502:当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第二状态时,根据所述第一颜色值及所述预设颜色值确定所述第二颜色值。
如果一个像素点对应不可见区域,则Buffer1中对应的缩放到0-1区间的迷雾纹理坐标下存储的目标纹理状态参数为(0,0,0,0),此时,fog.r=0,则根据公式(1)得到的结果为c.rgb*UnExplored,即该像素点的颜色为原始颜色与不可见区域迷雾颜色的叠加。
在一些实例中,所述目标纹理状态包括第一状态(可见状态)、第二状态(未探索状态)及第三状态(已探索状态),其中,所述目标纹理状态数据包括一数组,所述数组用于记录表征每一个目标纹理坐标对应的目标纹理状态的目标纹理状态参数,所述第二状态对应第一预设颜色值,所述三状态对应第二预设颜色值。
在该实例中,目标纹理的状态包括第一状态(可见状态)、第二状态(未探索状态)及第三状态(已探索状态),该实例相比于上一实例,能够使得目标纹理中的曾经的可见区域与未探索的区域的目标纹理状态不同,使得渲染的目标纹理更加丰富。还以目标纹理为迷雾纹理为例进行说明,该数组为Buffer1,Buffer1保存迷雾数据,包括迷雾纹理中每一个迷雾点的迷雾纹理坐标及其对应的状态,可以为可见状态或已探索状态或未探索状态。其中,可见区域中的迷雾点为可见状态,已探索状态指曾经为可见状态但目前不可见的迷雾点的状态,即被探索过的区域的状态。例如,游戏中的角色走过的区域、被摧毁的建筑的区域对应的迷雾点的状态为已探索状态。未探索状态指,场景中不可见,且未被探索过的区域中迷雾点的状态。Buffer1中的迷雾点的状态采用颜色值进行保存,采用RGBA来保存一个迷雾点的状态,该颜色值的格式可以采用color32,也可以采用其他格式。初始状态下,Buffer1中全部为(0,0,0,0),其中第一位为红色通道,第二位为绿色通道,第三位为蓝色通道,第四位代表透明度。在根据可见区域的目标纹理坐标集合更新Buffer1时,如果一个像素点对应的目标纹理坐标属于可见区域的目标纹理坐标集合,即对应的状态为可见状态,则将Buffer1中的R、G通道置1,Buffer0的G通道置1,如果该像素点对应的目标纹理坐标不属于可见区域的目标纹理坐标集合,则将Buffer0及Buffer1中的R通道置0。因而,Buffer1中保存的目标纹理状态参数有(1,1,0,0)、(0,1,0,0)及(0,0,0,0)三种情况,其中,当目标纹理状态参数为(1,1,0,0),即目标纹理状态参数的第一位及第二位为1,对应目标纹理坐标的状态为可见,(0,1,0,0)对应目标纹理坐标的状态为已探索,(0,0,0,0)对应目标纹理坐标的状态为未探索。
在上述步骤S13中,在执行所述根据该像素点的所述第一颜色值及所述目标纹理状态,确定该像素点的第二颜色值时,包括以下步骤:
S601:当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第一状态时,将所述第一颜色值作为所述第二颜色值。
根据该像素点的原始纹理坐标,确定该像素点的原始颜色值,可表示为c.rgb。根据该像素点的原始纹理坐标确定对应的世界坐标(x,y,z),根据世界坐标的x、z确定目标纹理的目标纹理坐标,再将目标纹理坐标缩放到0-1区间,根据确定的缩放到0-1区间的目标纹理坐标,在Buffer1中查找对应目标纹理坐标的状态。当目标纹理为迷雾纹理时,这里,可将已探索区域的迷雾颜色值表示为Explored,将未探索区域的迷雾颜色值表示为UnExplored。已探索区域的迷雾颜色和未探索区域的迷雾颜色可以采用不同的颜色值,例如,未探索区域的迷雾颜色为黑色,已探索区域的迷雾颜色为蓝色。在确定所述像素点的颜色值时,通过以下公式(2)来确定:
rgb=lerp(lerp(c.rgb*Unexp lored,c.rgb*Explored,fog.g),c.rgb,fog.r) (2)
其中,对于函数lerp,lerp(a,b,c)=a+(b-a)*c,当c=0时,取值为a,当c为1时,取值为b,c.rgb*UnExplored为像素点的原始颜色值与设置的未探索区域迷雾颜色的乘积,效果为像素点的原始颜色与未探索区域迷雾颜色的叠加,c.rgb*Explored为像素点的原始颜色值与设置的已探索区域迷雾颜色的乘积,效果为像素点的原始颜色与已探索区域迷雾颜色的叠加,c.rgb为像素点的原始颜色值,fog.g为绿色通道对应的值,fog.r为红色通道对应的值。
如果一个像素点对应的目标纹理坐标的状态为可见,则Buffer1中对应的缩放到0-1区间的迷雾纹理坐标下存储的目标纹理状态参数为(1,1,0,0),此时,fog.r=1,fog.g=1。则根据公式(2)得到的结果为c.rgb,即该像素点的颜色为原始颜色值。
S602:当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第二状态时,根据所述第一颜色值及所述第一预设颜色值确定所述第二颜色值。
如果一个像素点对应的目标纹理坐标的状态为未探索,则Buffer1中对应的缩放到0-1区间的迷雾纹理坐标下存储的目标纹理状态参数为(0,0,0,0),此时,fog.r=0,fog.g=0。则根据公式(1)得到的结果为c.rgb*UnExplored,即该像素点的颜色为原始颜色与设置的未探索区域迷雾颜色的叠加。
S603:当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第三状态时,根据所述第一颜色值及所述第二预设颜色值确定所述第二颜色值。
如果一个像素点对应已探索区域,则Buffer1中对应的缩放到0-1区间的迷雾纹理坐标下存储的值为(0,1,0,0),此时,fog.r=0,fog.g=1。则根据公式(1)得到的结果为c.rgb*Explored,即该像素点的颜色为原始颜色与已探索区域迷雾颜色的叠加。
在上述的实例中,可见区域的颜色为原始颜色值,对应没有目标纹理的情况,当目标纹理为迷雾,当虚拟空间中新建一个建筑,或者一个角色移动时,该建筑周围迷雾会瞬间变成全透明,即没有迷雾覆盖,或者角色移动到的地方的迷雾会瞬间变成全透明,没有迷雾覆盖,这样视觉效果上会显得突兀,因而该实例用以实现可见区域的颜色逐渐变化,例如当角色移动到未探索区域时,角色周围逐渐变成全透明。在该实例中,所述目标纹理状态数据包括第一数组及第二数组,所述第一数组用于记录表征每一个目标纹理坐标对应的目标纹理状态的目标纹理状态参数;所述第二数组用于记录每一个目标纹理坐标对应的颜色渐变阻尼参数。
其中,每隔预设时间间隔检测所述虚拟空间中是否有虚拟对象的状态发生变化,该预设时间为虚拟空间中虚拟对象状态的检测周期,当检测到虚拟空间中虚拟对象的状态发生了变化,则根据状态变化后虚拟空间中的虚拟对象的位置数据确定可见区域的目标纹理坐标集合,并根据该可见区域的目标纹理坐标集合更新第一数组及第二数组,其中,第一数组为Buffer1,第二数组为Buffer0。对于具体的更新过程,初始状态下,Buffer0与Buffer1中存储的值都为(0,0,0,0),当一个像素点对应的目标纹理坐标属于可见区域的目标纹理坐标集合时,将Buffer1中的R、G通道、Buffer0中的G通道置1,Buffer1中对应目标纹理状态参数设置为(1,1,0,0),Buffer0中设置为(0,1,0,0),其中,颜色渐变阻尼参数保存在Buffer0的R通道中。当一个像素点对应的目标纹理坐标不属于可见区域的目标纹理坐标集合时,将Buffer1中的R通道、Buffer1中的G通道置0,此时,Buffer1中的可见状态的目标纹理坐标的目标纹理状态参数由(1,1,0,0)变为(0,1,0,0)。因而,目标纹理状态参数与对应的目标纹理状态包括以下情况:
当一个目标纹理坐标对应的Buffer1为:(1,1,0,0),对应的Buffer0为(0,1,0,0);该目标纹理坐标的状态为可见;
当一个目标纹理坐标对应的Buffer1为:(0,1,0,0),对应的Buffer0为(0,1,0,0);该目标纹理坐标的状态为已探索;
当一个目标纹理坐标对应的Buffer1为:(0,0,0,0),对应的Buffer0中为(0,0,0,0),该目标纹理坐标的状态为未探索。所述方法进一步包括以下步骤:
S701:预先设置每个目标纹理坐标对应的颜色渐变阻尼参数的初始值,每次到达预设渲染周期时,根据所述第二数组中所述目标纹理坐标对应的颜色渐变阻尼参数及所述第一数组中的所述目标纹理坐标对应的目标纹理状态参数,更新所述第二数组中所述目标纹理坐标对应的所述颜色渐变阻尼参数。
为了使一个可见区域的像素点颜色逐渐变为全透明(没有迷雾覆盖)后,能够保持全透明的状态,不随周期参数(params.w)的变化而变化,设置颜色渐变阻尼参数(w),该参数保存在Buffer0的R通道中。初始状态下Buffer0中的R通道为0,因而颜色渐变阻尼参数的初始值为0。每次到达渲染周期时,通过以下公式(3)对Buffer0的R通道进行赋值:
Buffer0=lerp(Buffer0,Buffer1,m)=Buffer0+(Buffer1-Buffer0)*m (3)
其中,m为一预设的偏移量,例如,0.5。当一个像素点对应的目标纹理坐标的状态为可见状态时,则到达第一个渲染周期时,Buffer0=(0,1,0,0),Buffer1=(1,1,0,0),通过公式(3)可以得到赋值后的Buffer0=(0.5,1,0,0)。当到达第二个渲染周期时,Buffer0=(0.5,1,0,0),Buffer1=(1,1,0,0)通过公式(3)可以得到赋值后的Buffer0=(0.875,1,0,0),采用同样的方式可以得到到达第三个渲染周期时,Buffer0=(0.9375,1,0,0)。随着Buffer0更新次数的增加,对Buffer0中保存的颜色渐变阻尼参数逐渐增大到1。对于一个像素点对应的目标纹理坐标的状态为已探索状态,Buffer1=(0,1,0,0),Buffer0=(0,1,0,0),则根据公式(3)对Buffer0进行更新时,Buffer0保持(0,1,0,0)不变。对于一个像素点对应的目标纹理坐标的目标纹理状态为未探索状态,Buffer0=(0,0,0,0),Buffer1=(0,0,0,0),则根据公式(3)对Buffer0进行更新时,Buffer0保持(0,0,0,0)不变。
S702:在到达一个所述预设时间间隔时,设置周期参数的初始值;每次到达预设渲染周期时改变所述周期参数的取值直至达到其预设最大值。
该预设时间间隔为虚拟空间中虚拟对象的状态的检测周期,周期参数的周期与虚拟对象的状态的检测周期保持一致,例如,2s检测一次虚拟空间中的虚拟对象的状态,则周期参数的周期也为2s。周期参数在0-2s时间内随着渲染周期线性增加,周期参数的初始值为0,预设最大值为1,在0-2s内从0线性增加到1。当渲染周期为0.5s时,周期参数的取值为0.25,1.0s时,周期参数的取值为0.5,1.5s时,周期参数的取值为0.75,2.0s时,周期参数的取值为1。
在上述步骤S13中,在执行所述根据该像素点的所述第一颜色值及所述目标纹理状态,确定该像素点的第二颜色值时,包括以下步骤:
S703:当该像素点在所述第一数组中的目标纹理坐标对应的目标纹理状态参数表征的目标纹理状态为所述第一状态时,根据所述第二数组中所述像素点的目标纹理坐标对应的所述颜色渐变阻尼参数及所述周期参数确定颜色渐变参数。
根据以下公式(4)确定颜色渐变参数,颜色渐变参数存储在fog的R通道中。
fog=lerp(tex2D(Buffer0,IN.fog),tex2D(Buffer1,IN.fog),params.w) (4)
其中tex2D(Buffer0,IN.fog)为根据缩放到(0,1)区间的目标纹理坐标取Buffer0中存储的值,tex2D(Buffer1,IN.fog)为根据缩放到(0,1)区间的目标纹理坐标取Buffer1中存储的值,params.w(简称为p)为周期参数。在公式(4)中,Buffer0=(w,1,0,0),其中,w为颜色渐变阻尼参数,Buffer1=(1,1,0,0),则根据公式(4)得到fog=(w(1-p)+p,1,0,0),其中,颜色渐变参数存储在fog的R通道中,因而可以得到颜色渐变参数n=w(1-p)+p。
S704:根据所述第一颜色值、所述第三状态对应的第二预设颜色值及所述颜色渐变参数确定该像素点的所述第二颜色值。
通过以下公式(5)来确定所述第二颜色值:
rgb=lerp(lerp(c.rgb*Unexp lored,c.rgb*Explored,fog.g),c.rgb,fog.r) (5)
其中,c.rgb*UnExplored为像素点的原始颜色值与设置的未探索区域目标纹理颜色值的乘积,效果为像素点的原始颜色与未探索区域目标纹理颜色的叠加,c.rgb*Explored为像素点的原始颜色值与设置的已探索区域目标纹理颜色的乘积,效果为像素点的原始颜色与已探索区域目标纹理颜色的叠加,c.rgb为像素点的原始颜色值,fog.g为fog中的绿色通道对应的值,fog.r为fog中的红色通道对应的值,也即颜色渐变参数的取值n。
当该像素点的目标纹理坐标对应的目标纹理状态为可见时,fog=(w(1-p)+p,1,0,0),则fog.r=w(1-p)+p,fog.g=1,进而根据公式(5)可以得到覆盖目标纹理后该像素点的颜色值rgb,也即第二颜色值,通过以下公式(6)确定所述第二颜色值:
rgb=c.rgb*exp lored(1-n)+c.rgb*n (6)
其中颜色渐变参数n通过以下公式(7)确定:
n=w(1-p)+p (7)
其中,w为所述颜色渐变阻尼参数,p为所述周期参数的当前取值。
通过公式(6)及公式(7)可以看到,随着周期参数p的增加,颜色渐变参数n逐渐增大到1,可见区域的颜色值逐渐变为该像素点的原始颜色值,对应迷雾逐渐消失。同时颜色渐变阻尼参数w也逐渐增大到1,之后不再变化,在该情况下,n=1,像素点的颜色值保持原始纹理的颜色值不变。即可见区域的颜色逐渐变为原始颜色值后,不再随着周期参数的变化而变化。
上一实例介绍了当所述像素点对应的目标纹理坐标的目标纹理状态为可见状态时确定第二颜色值,当像素点对应的目标纹理坐标的目标纹理状态为已探索状态及未探索状态时,确定所述第二颜色值时,包括以下步骤:
S801:当该像素点在所述第一数组中的目标纹理坐标对应的目标纹理状态参数表征的目标纹理状态为所述第二状态时,根据所述第一颜色值及所述第二预设颜色值确定所述第二颜色值。
当一个像素点对应的目标纹理坐标的状态为未探索时,通过公式(3)对Buffer0赋值后的Buffer0仍然为(0,0,0,0),颜色渐变阻尼参数为0,Buffer1为(0,0,0,0),根据公式(4)得到fog为(0,0,0,0),则根据公式(5)计算得到的颜色值仍然为c.rgb*Explored,即该像素点的原始颜色值(第一颜色值)与预设的未探索状态的目标纹理颜色值(第二预设颜色值)的乘积,对应原始颜色与未探索状态的目标纹理颜色的叠加。
S802:当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征所述目标纹理坐标对应的目标纹理状态为第三状态时,根据所述第一颜色值及所述第一预设颜色值确定所述第二颜色值。
当一个像素点对应的目标纹理坐标的状态为已探索时,通过公式(3)对Buffer0赋值后的Buffer0仍然为(0,1,0,0),颜色渐变阻尼参数为0,Buffer1为(0,1,0,0),根据公式(4)得到fog为(0,1,0,0),则根据公式(5)计算得到的颜色值仍然为c.rgb*Explored,即该像素点的原始颜色值(第一颜色值)与预设的已探索状态的目标纹理颜色值(第一预设颜色值)的乘积,对应原始颜色与已探索状态的目标纹理颜色的叠加。
在该实例中每一次对图像进行更新时,首先对Buffer0的R通道进行赋值,然后检测虚拟空间中是否有虚拟对象的状态发生了变化,当有虚拟对象的状态发生了变化时,需要重新确定可见区域,进而更新Buffer0及Buffer1,当虚拟空间中没有虚拟对象的状态发生变化时,则不需要更新Buffer0及Buffer1,进而进行后续的颜色值计算。在该实例中颜色逐渐变化对应目标纹理坐标的状态为可见状态,当根据可见区域的目标纹理坐标集合更新目标纹理坐标对应的状态时,如果已探索状态或未探索状态更新为可见状态,则根据可见状态的渲染过程对图像进行渲染目标纹理,实现像素点的颜色逐渐变化。当可见状态变为已探索状态时,按照已探索状态对应的图像渲染方式进行图像渲染。
在一些实例中,在上述步骤S12中,在执行所述根据该像素点的原始纹理坐标确定在目标纹理中的目标纹理坐标包括以下步骤:
S901:根据所述像素点的原始纹理坐标确定对应的世界坐标。
根据该像素点在原始纹理中的坐标,即像素坐标,根据坐标变换,可以确定该像素点在虚拟空间中的世界坐标系中的坐标。
S902:根据所述世界坐标确定对应的在目标纹理上的世界坐标。
假如步骤901中确定的坐标为(x,y,z),其中xz平面为水平面,目标纹理在虚拟场景的上空,与水平面xz平面平行,则(x,z)即为在目标纹理上的世界坐标。
S903:根据所述在目标纹理上的世界坐标确定在目标纹理上的所述目标纹理坐标。
在目标纹理上,世界坐标与目标纹理坐标之间存在偏移,根据该偏移可以确定世界坐标与目标纹理坐标之间的转换,进而可以确定所述像素点对应的在目标纹理上的目标纹理坐标。
本申请还提出了一种图像渲染装置600,所述图像包含多帧图像并呈现虚拟空间中的虚拟对象,如图6所示,所述装置包括:
目标纹理状态数据更新单元601,用以目标纹理状态数据更新单元,用以当检测到虚拟空间中有虚拟对象的状态发生变化时,获取虚拟空间中与当前准备渲染的一帧图像相关的虚拟对象的位置数据,根据所述虚拟对象的位置数据更新目标纹理状态数据中至少一个目标纹理坐标对应的目标纹理状态;所述目标纹理状态数据包括所述图像的每一个像素点在所述目标纹理中的目标纹理坐标及其对应的目标纹理状态,所述目标纹理状态代表对应像素点在所述目标纹理中与虚拟对象所在区域有关的状态;
颜色值确定单元602,用以
用以针对所述当前准备渲染的一帧图像及该帧图像之后下一次虚拟对象的状态发生变化之前的图像,
根据所述目标纹理状态数据确定所述当前准备渲染的一帧图像及该帧图像之后下一次虚拟对象的状态发生变化之前的图像中各帧图像叠加目标纹理后的图像;
渲染单元603,用以渲染所述各帧图像叠加目标纹理后的图像。
在一些实例中,所述颜色值确定单元602,还用以:
针对各帧图像的各像素点,
确定该像素点在原始纹理中的原始纹理坐标,根据该像素点的原始纹理坐标获取该像素点的第一颜色值;
根据该像素点的原始纹理坐标确定在目标纹理中的目标纹理坐标,根据所述目标纹理坐标及所述目标纹理状态数据确定该像素点的所述目标纹理坐标对应的目标纹理状态;
根据该像素点的所述第一颜色值及所述目标纹理状态,确定该像素点的第二颜色值;
其中,所述渲染单元603,还用以:
针对所述各帧图像中的任一帧图像,渲染该帧图像各像素点的第二颜色值。
在一些实例中,其中,所述多个目标纹理状态包括:表示位于可见区域的第一状态和表示不在可见区域的第二状态;所述目标纹理状态数据更新单元601,用以:
所述根据所述虚拟对象的位置数据更新目标纹理状态数据中至少一个目标纹理坐标对应的目标纹理状态包括:
获取所述虚拟对象的可见距离;
根据所述虚拟对象的位置数据及所述可见距离确定所述虚拟对象在目标纹理上的可见区域的世界坐标集合;
根据所述可见区域的世界坐标集合确定所述可见区域的目标纹理坐标集合;
根据所述可见区域的目标纹理坐标集合更新所述目标纹理状态数据中至少一个目标纹理坐标的目标纹理状态,以将其中属于所述可见区域的所述目标纹理坐标集合的各目标纹理坐标对应的目标纹理状态置为所述第一状态,将不属于所述可见区域的所述目标纹理坐标集合的各目标纹理坐标对应的目标纹理状态置为所述第二状态。
在一些实例中,所述多个目标纹理状态还包括:表示位于已探索区域的第三状态,所述已探索区域包括各历史可见区域;所述目标纹理状态数据更新单元601,还用以:
对于不属于所述可见区域的所述目标纹理坐标集合的每一目标纹理坐标,当在所述目标纹理状态数据中该目标纹理坐标对应的目标纹理状态为第一状态时,在所述目标纹理状态数据中将该目标纹理坐标对应的目标纹理状态置为所述第三状态;否则,在所述目标纹理状态数据中将该目标纹理坐标对应的目标纹理状态置为所述第二状态。
在一些实例中,所述目标纹理状态数据更新单元601,还用以:
根据所述虚拟对象的位置数据确定所述虚拟对象在目标纹理上的世界坐标;
根据所述虚拟对象在目标纹理上的世界坐标及所述可见距离,确定检测范围;
当所述检测范围内的一个世界坐标与所述虚拟对象在目标纹理上的世界坐标之间的距离不超过所述可见距离时,将所述检测范围内的该世界坐标加入所述可见区域的世界坐标集合。
在一些实例中,所述目标纹理状态数据更新单元601,还用以:
当所述检测范围内的一个世界坐标与所述虚拟对象在目标纹理上的世界坐标之间的距离不超过所述可见距离时,确定所述检测范围内的该世界坐标在虚拟空间中的高度;
当所述高度超过所述虚拟对象的可视高度时,将所述检测范围内的该世界坐标加入阻挡坐标集合;
根据所述阻挡坐标集合中的各世界坐标确定阻挡区域,将所述阻挡区域中的各世界坐标从所述可见区域的世界坐标集合中排除。
在一些实例中,所述目标纹理状态数据包括数组,所述数组用于记录表征每一个目标纹理坐标对应的目标纹理状态的目标纹理状态参数,所述第二状态对应预设颜色值,颜色值确定单元602,用以:
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第一状态时,将所述第一颜色值作为所述第二颜色值;
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第二状态时,根据所述第一颜色值及所述预设颜色值确定所述第二颜色值。
在一些实例中,所述目标纹理状态数据包括一数组,所述数组用于记录表征每一个目标纹理坐标对应的目标纹理状态的目标纹理状态参数,所述第二状态对应第一预设颜色值,所述三状态对应第二预设颜色值,颜色值确定单元602,还用以:
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第一状态时,将所述第一颜色值作为所述第二颜色值;
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第二状态时,根据所述第一颜色值及所述第一预设颜色值确定所述第二颜色值;
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第三状态时,根据所述第一颜色值及所述第二预设颜色值确定所述第二颜色值。
在一些实例中,所述目标纹理状态数据包括第一数组及第二数组,所述第一数组用于记录表征每一个目标纹理坐标对应的目标纹理状态的目标纹理状态参数;所述第二数组用于记录每一个目标纹理坐标对应的颜色渐变阻尼参数;
其中,所述目标纹理状态数据更新单元601,用以每隔预设时间间隔检测所述虚拟空间中是否有虚拟对象的状态发生变化;所述装置进一步包括:参数更新单元604,用以:
预先设置每个目标纹理坐标对应的颜色渐变阻尼参数的初始值;
每次到达预设渲染周期时,根据所述第二数组中所述目标纹理坐标对应的颜色渐变阻尼参数及所述第一数组中的所述目标纹理坐标对应的目标纹理状态参数,更新所述第二数组中所述目标纹理坐标对应的所述颜色渐变阻尼参数;
在到达一个所述预设时间间隔时,设置周期参数的初始值;
每次到达预设渲染周期时改变所述周期参数的取值直至达到其预设最大值;
其中,所述颜色值确定单元602,用以:
当该像素点在所述第一数组中的目标纹理坐标对应的目标纹理状态参数表征的目标纹理状态为所述第一状态时,
根据所述第二数组中所述像素点的目标纹理坐标对应的所述颜色渐变阻尼参数及所述周期参数确定颜色渐变参数;
根据所述第一颜色值、所述第三状态对应的第一预设颜色值及所述颜色渐变参数确定该像素点的所述第二颜色值。
在一些实例中,所述第二状态对应第二预设颜色值,所述颜色值确定单元602,用以:
当该像素点在所述第一数组中的目标纹理坐标对应的目标纹理状态参数表征的目标纹理状态为所述第二状态时,根据所述第一颜色值及所述第二预设颜色值确定所述第二颜色值;
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征所述目标纹理坐标对应的目标纹理状态为第三状态时,根据所述第一颜色值及所述第一预设颜色值确定所述第二颜色值。
本申请还提出了一种计算机可读存储介质,存储有计算机可读指令,可以使至少一个处理器执行如上述所述的方法。
图7示出了通信连接装置所在的计算设备的组成结构图。如图7所示,该计算设备包括一个或者多个处理器(CPU)702、通信模块704、存储器706、用户接口710,以及用于互联这些组件的通信总线708。
处理器702可通过通信模块704接收和发送数据以实现网络通信和/或本地通信。
用户接口710包括一个或多个输出设备712,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口710也包括一个或多个输入设备714,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。
存储器706可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器706存储处理器702可执行的指令集,包括:
操作***716,包括用于处理各种基本***服务和用于执行硬件相关任务的程序;
应用718,包括用于图像渲染的各种应用程序,这种应用程序能够实现上述各实例中的处理流程,比如可以包括图像渲染装置600的部分或全部单元或者模块。图像渲染装置600中的各单元中的至少一个单元可以存储有机器可执行指令。处理器702通过执行存储器706中各单元中至少一个单元中的机器可执行指令,进而能够实现上述各单元或模块中的至少一个模块的功能。
需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。
各实施例中的硬件模块可以以硬件方式或硬件平台加软件的方式实现。上述软件包括机器可读指令,存储在非易失性存储介质中。因此,各实施例也可以体现为软件产品。
各例中,硬件可以由专门的硬件或执行机器可读指令的硬件实现。例如,硬件可以为专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。
另外,本申请的每个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请,本申请还提供了一种非易失性存储介质,其中存储有数据处理程序,这种数据处理程序可用于执行本申请上述方法实例中的任何一种实例。
图7模块对应的机器可读指令可以使计算机上操作的操作***等来完成这里描述的部分或者全部操作。非易失性计算机可读存储介质可以是***计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器。安装在扩展板或者扩展单元上的CPU等可以根据指令执行部分和全部实际操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (15)
1.一种图像渲染方法,其特征在于,所述图像包含多帧图像并呈现虚拟空间中的虚拟对象,所述方法包括:
当检测到虚拟空间中有虚拟对象的状态发生变化时,获取虚拟空间中与当前准备渲染的一帧图像相关的虚拟对象的位置数据,根据所述虚拟对象的位置数据更新目标纹理状态数据中至少一个目标纹理坐标对应的目标纹理状态;所述目标纹理状态数据包括所述图像的每一个像素点在所述目标纹理中的目标纹理坐标及其对应的目标纹理状态,所述目标纹理状态代表对应像素点在所述目标纹理中与虚拟对象所在区域有关的状态;
针对所述当前准备渲染的一帧图像及该帧图像之后下一次检测到有虚拟对象的状态发生变化时准备渲染的图像之前的图像,
根据所述目标纹理状态数据确定所述当前准备渲染的一帧图像及该帧图像之后下一次检测到有虚拟对象的状态发生变化时准备渲染的图像之前的图像中各帧图像叠加目标纹理后的图像;
渲染所述各帧图像叠加目标纹理后的图像。
2.根据权利要求1所述的方法,其中,所述根据所述目标纹理状态数据确定所述当前准备渲染的一帧图像及该帧图像之后下一次检测到有虚拟对象的状态发生变化时准备渲染的图像之前的图像中各帧图像叠加目标纹理后的图像包括:
针对各帧图像的各像素点,
确定该像素点在原始纹理中的原始纹理坐标,根据该像素点的原始纹理坐标获取该像素点的第一颜色值;
根据该像素点的原始纹理坐标确定在目标纹理中的目标纹理坐标,根据所述目标纹理坐标及所述目标纹理状态数据确定该像素点的所述目标纹理坐标对应的目标纹理状态;
根据该像素点的所述第一颜色值及所述目标纹理状态,确定该像素点的第二颜色值;
其中,所述渲染所述各帧图像叠加目标纹理后的图像包括:
针对所述各帧图像中的任一帧图像,渲染该帧图像各像素点的第二颜色值。
3.根据权利要求2所述的方法,其中,多个目标纹理状态包括:表示位于可见区域的第一状态和表示不在可见区域的第二状态;
所述根据所述虚拟对象的位置数据更新目标纹理状态数据中至少一个目标纹理坐标对应的目标纹理状态包括:
获取所述虚拟对象的可见距离;
根据所述虚拟对象的位置数据及所述可见距离确定所述虚拟对象在目标纹理上的可见区域的世界坐标集合;
根据所述可见区域的世界坐标集合确定所述可见区域的目标纹理坐标集合;
根据所述可见区域的目标纹理坐标集合更新所述目标纹理状态数据中至少一个目标纹理坐标的目标纹理状态,以将其中属于所述可见区域的所述目标纹理坐标集合的各目标纹理坐标对应的目标纹理状态置为所述第一状态,将不属于所述可见区域的所述目标纹理坐标集合的各目标纹理坐标对应的目标纹理状态置为所述第二状态。
4.根据权利要求3所述的方法,其中,所述多个目标纹理状态还包括:表示位于已探索区域的第三状态,所述已探索区域包括各历史可见区域;
所述将不属于所述可见区域的所述目标纹理坐标集合的各目标纹理坐标对应的目标纹理状态置为所述第二状态包括:
对于不属于所述可见区域的所述目标纹理坐标集合的每一目标纹理坐标,当在所述目标纹理状态数据中该目标纹理坐标对应的目标纹理状态为第一状态时,在所述目标纹理状态数据中将该目标纹理坐标对应的目标纹理状态置为所述第三状态;否则,在所述目标纹理状态数据中将该目标纹理坐标对应的目标纹理状态置为所述第二状态。
5.根据权利要求3所述的方法,其中,所述根据所述虚拟对象的位置数据及所述可见距离确定所述虚拟对象在目标纹理上的可见区域的世界坐标集合包括:
根据所述虚拟对象的位置数据确定所述虚拟对象在目标纹理上的世界坐标;
根据所述虚拟对象在目标纹理上的世界坐标及所述可见距离,确定检测范围;
当所述检测范围内的一个世界坐标与所述虚拟对象在目标纹理上的世界坐标之间的距离不超过所述可见距离时,将所述检测范围内的该世界坐标加入所述可见区域的世界坐标集合。
6.根据权利要求5所述的方法,进一步包括:
当所述检测范围内的一个世界坐标与所述虚拟对象在目标纹理上的世界坐标之间的距离不超过所述可见距离时,确定所述检测范围内的该世界坐标在虚拟空间中的高度;
当所述高度超过所述虚拟对象的可视高度时,将所述检测范围内的该世界坐标加入阻挡坐标集合;
根据所述阻挡坐标集合中的各世界坐标确定阻挡区域,将所述阻挡区域中的各世界坐标从所述可见区域的世界坐标集合中排除。
7.根据权利要求3所述的方法,其中,所述目标纹理状态数据包括数组,所述数组用于记录表征每一个目标纹理坐标对应的目标纹理状态的目标纹理状态参数,所述第二状态对应预设颜色值,
其中,所述根据该像素点的所述第一颜色值及所述目标纹理状态,确定该像素点的第二颜色值包括:
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第一状态时,将所述第一颜色值作为所述第二颜色值;
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第二状态时,根据所述第一颜色值及所述预设颜色值确定所述第二颜色值。
8.根据权利要求4所述的方法,其中,所述目标纹理状态数据包括一数组,所述数组用于记录表征每一个目标纹理坐标对应的目标纹理状态的目标纹理状态参数,所述第二状态对应第一预设颜色值,所述第三状态对应第二预设颜色值,
其中,所述根据该像素点的所述第一颜色值及所述目标纹理状态,确定该像素点的第二颜色值包括:
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第一状态时,将所述第一颜色值作为所述第二颜色值;
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第二状态时,根据所述第一颜色值及所述第一预设颜色值确定所述第二颜色值;
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征的目标纹理状态为第三状态时,根据所述第一颜色值及所述第二预设颜色值确定所述第二颜色值。
9.根据权利要求4所述的方法,其中,所述目标纹理状态数据包括第一数组及第二数组,所述第一数组用于记录表征每一个目标纹理坐标对应的目标纹理状态的目标纹理状态参数;所述第二数组用于记录每一个目标纹理坐标对应的颜色渐变阻尼参数;
其中,每隔预设时间间隔检测所述虚拟空间中是否有虚拟对象的状态发生变化;
所述方法进一步包括:
预先设置每个目标纹理坐标对应的颜色渐变阻尼参数的初始值;
每次到达预设渲染周期时,根据所述第二数组中所述目标纹理坐标对应的颜色渐变阻尼参数及所述第一数组中的所述目标纹理坐标对应的目标纹理状态参数,更新所述第二数组中所述目标纹理坐标对应的所述颜色渐变阻尼参数;
在到达一个所述预设时间间隔时,设置周期参数的初始值;
每次到达预设渲染周期时改变所述周期参数的取值直至达到其预设最大值;
其中,所述根据该像素点的所述第一颜色值及所述目标纹理状态,确定该像素点的第二颜色值,包括:
当该像素点在所述第一数组中的目标纹理坐标对应的目标纹理状态参数表征的目标纹理状态为所述第一状态时,
根据所述第二数组中所述像素点的目标纹理坐标对应的所述颜色渐变阻尼参数及所述周期参数确定颜色渐变参数;
根据所述第一颜色值、所述第三状态对应的第一预设颜色值及所述颜色渐变参数确定该像素点的所述第二颜色值。
10.根据权利要求9所述的方法,其中,所述第二状态对应第二预设颜色值,所述根据该像素点的所述第一颜色值及所述目标纹理状态,确定该像素点的第二颜色值包括:
当该像素点在所述第一数组中的目标纹理坐标对应的目标纹理状态参数表征的目标纹理状态为所述第二状态时,根据所述第一颜色值及所述第二预设颜色值确定所述第二颜色值;
当所述目标纹理坐标在所述数组中对应的目标纹理状态参数表征所述目标纹理坐标对应的目标纹理状态为第三状态时,根据所述第一颜色值及所述第一预设颜色值确定所述第二颜色值。
11.根据权利要求2所述的方法,其中,所述根据该像素点的原始纹理坐标确定在目标纹理中的目标纹理坐标包括:
根据所述像素点的原始纹理坐标确定对应的世界坐标;
根据所述世界坐标确定对应的在目标纹理上的世界坐标;
根据所述在目标纹理上的世界坐标确定在目标纹理上的所述目标纹理坐标。
12.一种图像渲染装置,其特征在于,所述图像包含多帧图像并呈现虚拟空间中的虚拟对象,所述装置包括:
目标纹理状态数据更新单元,用以当检测到虚拟空间中有虚拟对象的状态发生变化时,获取虚拟空间中与当前准备渲染的一帧图像相关的虚拟对象的位置数据,根据所述虚拟对象的位置数据更新目标纹理状态数据中至少一个目标纹理坐标对应的目标纹理状态;所述目标纹理状态数据包括所述图像的每一个像素点在所述目标纹理中的目标纹理坐标及其对应的目标纹理状态,所述目标纹理状态代表对应像素点在所述目标纹理中与虚拟对象所在区域有关的状态;
颜色值确定单元,用以针对所述当前准备渲染的一帧图像及该帧图像之后下一次检测到有虚拟对象的状态发生变化时准备渲染的图像之前的图像,
根据所述目标纹理状态数据确定所述当前准备渲染的一帧图像及该帧图像之后下一次检测到有虚拟对象的状态发生变化时准备渲染的图像之前的图像中各帧图像叠加目标纹理后的图像;
渲染单元,用以渲染所述各帧图像叠加目标纹理后的图像。
13.根据权利要求12所述的装置,其特征在于,所述颜色值确定单元,还用以:
针对各帧图像的各像素点,
确定该像素点在原始纹理中的原始纹理坐标,根据该像素点的原始纹理坐标获取该像素点的第一颜色值;
根据该像素点的原始纹理坐标确定在目标纹理中的目标纹理坐标,根据所述目标纹理坐标及所述目标纹理状态数据确定该像素点的所述目标纹理坐标对应的目标纹理状态;
根据该像素点的所述第一颜色值及所述目标纹理状态,确定该像素点的第二颜色值;
其中,所述渲染单元,还用以:
针对所述各帧图像中的任一帧图像,渲染该帧图像各像素点的第二颜色值。
14.根据权利要求13所述的装置,其中,所述目标纹理状态包括:表示位于可见区域的第一状态和表示不在可见区域的第二状态;所述目标纹理状态数据更新单元,用以:
所述根据所述虚拟对象的位置数据更新目标纹理状态数据中至少一个目标纹理坐标对应的目标纹理状态包括:
获取所述虚拟对象的可见距离;
根据所述虚拟对象的位置数据及所述可见距离确定所述虚拟对象在目标纹理上的可见区域的世界坐标集合;
根据所述可见区域的世界坐标集合确定所述可见区域的目标纹理坐标集合;
根据所述可见区域的目标纹理坐标集合更新所述目标纹理状态数据中至少一个目标纹理坐标的目标纹理状态,以将其中属于所述可见区域的所述目标纹理坐标集合的各目标纹理坐标对应的目标纹理状态置为所述第一状态,将不属于所述可见区域的所述目标纹理坐标集合的各目标纹理坐标对应的目标纹理状态置为所述第二状态。
15.一种计算机可读存储介质,存储有计算机可读指令,可以使至少一个处理器执行如权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711183182.0A CN107958480B (zh) | 2017-11-23 | 2017-11-23 | 图像渲染方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711183182.0A CN107958480B (zh) | 2017-11-23 | 2017-11-23 | 图像渲染方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107958480A CN107958480A (zh) | 2018-04-24 |
CN107958480B true CN107958480B (zh) | 2021-04-30 |
Family
ID=61961750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711183182.0A Active CN107958480B (zh) | 2017-11-23 | 2017-11-23 | 图像渲染方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107958480B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110163977B (zh) * | 2018-07-13 | 2024-04-12 | 腾讯数码(天津)有限公司 | 多世界虚拟场景中的虚拟通道渲染方法及装置 |
CN109395384A (zh) | 2018-09-12 | 2019-03-01 | Oppo广东移动通信有限公司 | 游戏渲染方法及相关产品 |
CN110136082B (zh) | 2019-05-10 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 遮挡剔除方法、装置及计算机设备 |
CN110227264B (zh) * | 2019-06-06 | 2023-07-11 | 腾讯科技(成都)有限公司 | 虚拟对象控制方法、装置、可读存储介质和计算机设备 |
CN110333924B (zh) * | 2019-06-12 | 2024-06-11 | 腾讯科技(深圳)有限公司 | 一种图像渐变调整方法、装置、设备及存储介质 |
CN110354500A (zh) * | 2019-07-15 | 2019-10-22 | 网易(杭州)网络有限公司 | 特效处理方法、装置、设备和存储介质 |
CN111080732B (zh) * | 2019-11-12 | 2023-09-22 | 望海康信(北京)科技股份公司 | 用于形成虚拟地图的方法及*** |
CN110917617B (zh) * | 2019-11-15 | 2023-10-24 | 瑞立视视觉创意科技(深圳)有限公司 | 水波纹图像的生成方法、装置、设备及存储介质 |
CN111462204B (zh) * | 2020-02-13 | 2023-03-03 | 腾讯科技(深圳)有限公司 | 虚拟模型的生成方法、装置、存储介质以及电子装置 |
CN111476870B (zh) * | 2020-02-29 | 2022-08-30 | 新华三大数据技术有限公司 | 一种对象渲染方法和装置 |
CN113516743A (zh) * | 2020-03-27 | 2021-10-19 | 北京达佳互联信息技术有限公司 | 头发的渲染方法、装置、电子设备及存储介质 |
CN113240577B (zh) * | 2021-05-13 | 2024-03-15 | 北京达佳互联信息技术有限公司 | 一种图像生成方法、装置、电子设备及存储介质 |
CN115733938A (zh) * | 2021-08-31 | 2023-03-03 | 北京字跳网络技术有限公司 | 视频处理方法、装置、设备及存储介质 |
CN116059637B (zh) * | 2023-04-06 | 2023-06-20 | 广州趣丸网络科技有限公司 | 虚拟对象渲染方法、装置、存储介质及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046891A (zh) * | 2006-03-29 | 2007-10-03 | 株式会社东芝 | 纹理映射设备和方法 |
CN101958002A (zh) * | 2009-07-14 | 2011-01-26 | 索尼公司 | 图像处理装置以及图像处理方法 |
CN102592297A (zh) * | 2011-12-27 | 2012-07-18 | Tcl集团股份有限公司 | 一种基于2d网格的实时水波纹理处理方法 |
CN104463937A (zh) * | 2014-12-05 | 2015-03-25 | 无锡梵天信息技术股份有限公司 | 基于不规则物体的动画生成方法及装置 |
CN105653350A (zh) * | 2015-12-30 | 2016-06-08 | 南京乐飞航空技术有限公司 | 一种用于飞行模拟器的气象雷达仿真渲染方法 |
EP3193308A1 (en) * | 2016-01-13 | 2017-07-19 | Sony Interactive Entertainment Inc. | Apparatus and method of image rendering |
CN107133981A (zh) * | 2017-03-30 | 2017-09-05 | 腾讯科技(深圳)有限公司 | 图像处理方法和装置 |
CN107369188A (zh) * | 2017-07-12 | 2017-11-21 | 北京奇虎科技有限公司 | 图像的合成方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4977712B2 (ja) * | 2005-12-01 | 2012-07-18 | スウィフトフット グラフィックス アーベー | ディスプレースクリーン上に立体画像をレンダリングするコンピュータグラフィックスプロセッサならびにその方法 |
-
2017
- 2017-11-23 CN CN201711183182.0A patent/CN107958480B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046891A (zh) * | 2006-03-29 | 2007-10-03 | 株式会社东芝 | 纹理映射设备和方法 |
CN101958002A (zh) * | 2009-07-14 | 2011-01-26 | 索尼公司 | 图像处理装置以及图像处理方法 |
CN102592297A (zh) * | 2011-12-27 | 2012-07-18 | Tcl集团股份有限公司 | 一种基于2d网格的实时水波纹理处理方法 |
CN104463937A (zh) * | 2014-12-05 | 2015-03-25 | 无锡梵天信息技术股份有限公司 | 基于不规则物体的动画生成方法及装置 |
CN105653350A (zh) * | 2015-12-30 | 2016-06-08 | 南京乐飞航空技术有限公司 | 一种用于飞行模拟器的气象雷达仿真渲染方法 |
EP3193308A1 (en) * | 2016-01-13 | 2017-07-19 | Sony Interactive Entertainment Inc. | Apparatus and method of image rendering |
CN107133981A (zh) * | 2017-03-30 | 2017-09-05 | 腾讯科技(深圳)有限公司 | 图像处理方法和装置 |
CN107369188A (zh) * | 2017-07-12 | 2017-11-21 | 北京奇虎科技有限公司 | 图像的合成方法及装置 |
Non-Patent Citations (2)
Title |
---|
《Effect of tone mapping operators on visual attention deployment》;Narwaria M等;《Proc Spie. International Society for Optics and Photonics》;20121231;1-9 * |
《虚拟现实增强技术综述》;周忠 等;《中国科学:信息科学》;20151231;第45卷(第2期);158-180 * |
Also Published As
Publication number | Publication date |
---|---|
CN107958480A (zh) | 2018-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107958480B (zh) | 图像渲染方法、装置及存储介质 | |
US11498003B2 (en) | Image rendering method, device, and storage medium | |
CN109064390B (zh) | 一种图像处理方法、图像处理装置及移动终端 | |
US11930268B2 (en) | Shooting method and terminal device | |
US20170186219A1 (en) | Method for 360-degree panoramic display, display module and mobile terminal | |
US11260300B2 (en) | Image processing method and apparatus | |
CN110502293B (zh) | 一种截屏方法及终端设备 | |
CN109725956B (zh) | 一种场景渲染的方法以及相关装置 | |
CN107204044B (zh) | 一种基于虚拟现实的画面显示方法及相关设备 | |
CN108176049B (zh) | 一种信息提示方法、装置、终端和计算机可读存储介质 | |
KR20170086077A (ko) | 증강 현실 장면에서의 드로잉을 위한 깊이 정보의 사용 | |
US10789766B2 (en) | Three-dimensional visual effect simulation method and apparatus, storage medium, and display device | |
CN109448050B (zh) | 一种目标点的位置的确定方法及终端 | |
CN112017133B (zh) | 一种图像展示方法、装置及电子设备 | |
CN111556337B (zh) | 一种媒体内容植入方法、模型训练方法以及相关装置 | |
WO2018209710A1 (zh) | 一种图像处理方法及装置 | |
CN111939567A (zh) | 游戏虚拟场景变换方法、装置以及电子终端 | |
CN109718554B (zh) | 一种实时渲染方法、装置及终端 | |
CN113129417A (zh) | 一种全景应用中图像渲染的方法及终端设备 | |
WO2014171066A1 (ja) | 三次元画像表示システム、三次元画像表示システムのサーバ及び三次元画像表示方法 | |
CN116912387A (zh) | 纹理贴图的处理方法及装置、电子设备、存储介质 | |
CN112634444B (zh) | 一种基于三维信息的人体姿态迁移方法、装置、存储介质及终端 | |
CN112116719B (zh) | 三维场景中对象的确定方法、装置、存储介质和电子设备 | |
CN111766947A (zh) | 一种显示方法、装置、可穿戴设备及介质 | |
US11663752B1 (en) | Augmented reality processing device and method |
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 |