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

渲染目标图像的方法、装置、电子设备及存储介质与流程

2022-06-29 16:08:25 来源:中国专利 TAG:


1.本公开实施例涉及图像处理技术领域,尤其涉及一种渲染目标图像的方法、装置、电子设备及存储介质。


背景技术:

2.随着图像处理技术的不断发展,许多应用软件都为用户提供了制作虚拟模型的功能,例如,用户可以基于应用中的相关功能,按照自己的意愿在虚拟场景中制作一件陶器。
3.现有技术中,应用可以根据用户相关操作对模型进行动态修改,然而,一方面,为了得到改变模型形状所需的数据,中央处理器(central processing unit,cpu)需要执行大量计算,从而导致相关图像处理程序的性能出现瓶颈;另一方面,为了将模型渲染出来,cpu得到计算结果后还会在图形处理器(graphics processing unit,gpu)之间产生大量的通信交互,这便进一步降低了相关程序的处理效率,用户对应用的使用体验较差。


技术实现要素:

4.本公开提供一种渲染目标图像的方法、装置、电子设备及存储介质,仅需使cpu执行粗粒度的计算并将计算结果传递给gpu,便可以得到目标图像,避免了cpu执行大量计算所导致的程序性能出现瓶颈的问题。
5.第一方面,本公开实施例提供了一种渲染目标图像的方法,包括:
6.当检测到对当前模型的触控事件时,确定与所述触控事件所对应的目标触控点的触控点属性;其中,所述当前模型包括多个子模型;
7.将所述目标触控点所属的子模型作为待调整子模型,并根据所述触控点属性确定与所述待调整子模型相邻的两个关联子模型;
8.根据所述触控点属性和两个关联子模型的子模型属性确定所述待调整子模型的待调整属性,并将所述待调整属性更新为所述待调整子模型的子模型属性;
9.将各子模型的子模型属性发送至顶点着色器,以使所述顶点着色器根据各子模型属性和原始顶点信息,渲染出对所述当前模型触控后的目标图像,并将所述目标图像中显示的模型作为当前模型;
10.其中,所述原始顶点信息与所述当前模型所对应的原始模型相匹配。
11.第二方面,本公开实施例还提供了一种渲染目标图像的方法,包括:
12.触控点属性确定模块,用于当检测到对当前模型的触控事件时,确定与所述触控事件所对应的目标触控点的触控点属性;其中,所述当前模型包括多个子模型;
13.待调整子模型确定模块,用于将所述目标触控点所属的子模型作为待调整子模型,并根据所述触控点属性确定与所述待调整子模型相邻的两个关联子模型;
14.待调整属性更新模块,用于根据所述触控点属性和两个关联子模型的子模型属性确定所述待调整子模型的待调整属性,并将所述待调整属性更新为所述待调整子模型的子模型属性;
15.子模型属性发送模块,用于将各子模型的子模型属性发送至顶点着色器,以使所述顶点着色器根据各子模型属性和原始顶点信息,渲染出对所述当前模型触控后的目标图像,并将所述目标图像中显示的模型作为当前模型;其中,所述原始顶点信息与所述当前模型所对应的原始模型相匹配。
16.第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
17.一个或多个处理器;
18.存储装置,用于存储一个或多个程序,
19.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例任一所述的渲染目标图像的方法。
20.第四方面,本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本公开实施例任一所述的渲染目标图像的方法。
21.本公开实施例的技术方案,当检测到对当前模型的触控事件时,确定与触控事件对应的目标触控点的触控属性,即确定出用户触控模型上的哪个点;将目标触控点所属的子模型作为待调整子模型,并根据触控点属性确定与待调整子模型相邻的两个关联子模型,进一步的,根据触控点属性和两个关联子模型的子模型属性确定待调整子模型的待调整属性,并将待调整属性更新为待调整子模型的子模型属性;将各子模型的子模型属性发送至顶点着色器,以使顶点着色器根据各子模型属性和原始顶点信息,渲染出对当前模型触控后的目标图像,并将目标图像中显示的模型作为当前模型,仅需使cpu执行粗粒度的计算并将计算结果传递给gpu,便可以得到目标图像,避免了cpu执行大量计算所导致的程序性能出现瓶颈的问题;同时,以大幅降低cpu与gpu之间的交互的方式,减少了gpu通信带宽对程序处理过程的限制,进一步提升了相关程序的处理效率,提升了用户在虚拟场景中制作如陶器等模型的体验。
附图说明
22.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
23.图1为本公开实施例一所提供的一种渲染目标图像的方法流程示意图;
24.图2为本公开实施例二所提供的一种渲染目标图像的装置结构示意图;
25.图3为本公开实施例三所提供的一种电子设备的结构示意图。
具体实施方式
26.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
27.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公
开的范围在此方面不受限制。
28.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
29.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
30.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
31.在介绍本技术方案之前,可以先对本公开实施例的应用场景进行示例性说明。例如,在预先开发的模型制作相关应用中,可以向用户提供在虚拟场景中制作如陶器等3d模型的功能。具体来说,应用可以将预先构建的初始陶器模型展示给用户,当检测到用户触控该模型后,即可基于本实施例的方案对模型进行处理,从而根据用户的触控操作改变初始陶器模型的形状,并将形状改变后的陶器模型呈现在应用相关联的显示界面中。
32.实施例一
33.图1为本公开实施例一所提供的一种渲染目标图像的方法流程示意图,本公开实施例适用于根据用户的触控操作对模型形状进行处理,从而将处理后的模型渲染并显示的情形,该方法可以由渲染目标图像的装置来执行,该装置可以通过软件和/或硬件的形式实现,可选的,通过电子设备来实现,该电子设备可以是移动终端、pc端或服务器等。
34.如图1所示,所述方法包括:
35.s110、当检测到对当前模型的触控事件时,确定与触控事件所对应的目标触控点的触控点属性。
36.需要说明的是,本实施例的方案可以基于目标设备来执行,其中,目标设备可以是任意搭载有cpu以及gpu的终端设备,当显示界面中显示出模型,并检测到用户针对于该模型的触控操作后,目标设备即可利用cpu以及gpu的处理能力对模型进行处理,并将处理后的模型渲染显示在相关的显示界面中。
37.其中,当前模型可以是预先构建的、显示于应用相关显示界面中的初始3d模型,例如,在提供3d模型制作功能的应用软件中,用户可以选择制作陶器或制作泥塑等多种玩法,当用户选定其中一种后,应用即可按照用户的选择在显示界面中显示出一个对应的坯子模型。同时,为了使提供给用户的初始虚拟模型更自然逼真,也为了向用户提供更好的模型制作体验,在实际应用过程中,展示于显示界面中的当前模型为轴对称模型,且当前模型的底面为圆形,可以理解为,与现实世界中的陶器更加相似。
38.进一步的,将当前模型展示于显示界面后,即可对用户的触控操作进行检测,从而按照用户的意愿改变模型的形状。如果显示设备是交互设备,触控操作可以是对当前模型的触摸操作,还可以是,为了进一步提高智能性,可以监测关键点,例如,关键点为鼻子,在显示界面中所对应的像素点,并确定该像素点是否为当前模型上的点,若是,则确定触发了触控操作。即,可以理解为,触控事件可以包括触摸事件也可以包括关键点检测事件。将触
摸点和关键点作为触控点。
39.需要说明的是,在本实施例中,为了以更加准确的方式捕捉到用户触控模型的位置,在对用户的触控操作进行检测之前,可以根据原始模型在第一方向上的高度信息,将原始模型划分为多个子模型;确定各子模型的原始高度信息和上下底面原始半径信息,将各子模型的标识、原始高度信息以及原始半径信息作为子模型属性对应发送至顶点着色器;以及,将原始模型的顶点信息发送至顶点着色器,以在检测到对原始模型的触控事件时,确定相应的子模型属性并将子模型属性发送至顶点着色器中,以使顶点着色器基于子模型属性和各顶点信息更新原始模型得到当前模型。
40.其中,为了模拟陶器制作的过程,原始模型可以是一个轴对称且底面为圆形的模型,第一方向可以是与圆柱体底面相垂直的方向,高度信息则是原始模型在三维空间内的高度值。确定出原始模型、第一方向以及模型对应的高度值后,即可对模型进行划分,划分得到的多个部分即是子模型。
41.示例性的,当构建出一个三维空间并调用一个圆柱体模型后,可以在空间内生成一个三维坐标系,将圆柱体模型的中心点作为坐标系原点,将垂直于圆柱体底面的方向作为坐标系y轴的正方向,并确定出圆柱体模型在三维坐标系中的高度为10个单位长度。此时,可以以y轴方向1个单位长度为基准,将圆柱体模型进行划分,从而得到10个子模型。
42.需要说明的是,当划分的基准不同时,所得到的子模型的个数也存在差异,同时,所划分的子模型数量越多,经过后续处理后得到的模型也越精细。
43.在本实施例中,对原始模型划分得到多个子模型后,即可确定出各子模型沿三维空间内第一方向上的原始高度信息、以及上下底面原始半径信息,进一步的,将上述数据与为各子模型分配的标识进行结合,即可得到相应的子模型属性,可以理解,基于该属性至少可以对各子模型进行区分,同时,子模型属性可以在一定程度上反映出相应的子模型的形状。最后,将各子模型属性发送给顶点着色器,其中,顶点着色器即是用于实现图像渲染的,并替代固定渲染管线的可编辑程序,主要负责模型中顶点的几何关系运算。本领域技术人员应当理解,在同一时间内,只能激活一个顶点着色器,当顶点着色器在gpu中运行时,即可在显示界面中渲染出相应的图像,本公开实施例在此不再赘述。
44.继续以上述示例进行说明,当对圆柱体模型进行划分得到10个子模型后,可以按照1号至10号的顺序为各子模型分别设置对应的标识,同时,确定出每个子模型的高度,即1个单位长度,由于原始模型为圆柱体模型,因此所确定的每个子模型的上下底面原始半径也相同,本领域技术人员应当理解,当原始模型为其他形状的模型时(如圆台体模型),对于每个相邻两个子模型来说,两个子模型衔接处的面的半径依然一致,而对于每个子模型来说,其上下底面的半径可以不同,在此不再赘述。最后,基于上述数据分别生成10组子模型属性,即可将这些子模型属性发送至与gpu对应的顶点着色器。
45.在本实施例中,在确定各子模型属性的同时,还需要将原始模型的原始顶点信息发送至顶点着色器。具体来说,模型可以由多个面片构成,而每个面片又可以由至少三个顶点构成,基于此可以理解,原始顶点信息即是构成模型的各顶点的位置信息,例如,各顶点在三维空间坐标系内的坐标。可以理解,当顶点着色器接收到属性以及原始顶点信息后,即可依托于gpu的图像处理能力对相应的模型进行渲染。
46.在本实施例中,对原始模型执行上述预处理并在显示界面中显示出当前模型后,
即可对触控事件进行检测,从而确定目标触控点的触控属性。其中,触控事件可以是基于用户触控操作所生成的事件,目标触控点即是用户执行触控操作后,在模型所处的虚拟空间内所产生的对应的触控点,对应的,触控点属性即是目标触控点相对于当前模型的具体的位置信息。示例性的,当用户用手指点击触控屏上显示的陶器坯子时,应用即可基于该点击操作生成一个对应的触控事件,同时,将虚拟空间内生成的与用户触控操作对应的点确定为目标触控点,并该点在三维空间坐标系内的坐标作为触控属性。
47.在实际应用过程中,在检测到触控事件后,可以确定于显示界面上的原始触控点,以及原始触控点和视点信息所属的目标直线;将目标直线与当前模型的目标横截面的交点信息,作为目标触控点,并将目标触控点的坐标信息作为触控点属性。
48.其中,原始触控点即是用户在触控屏上产生的触控点,同时,由于应用构建的三维空间内存在与用户视点相一致的虚拟相机,因此,可以将虚拟相机根据原始触控点发出的射线作为目标直线。进一步的,为了精确确定出用户触控了模型上哪个点,还需要确定出模型在三维空间坐标系中xoy平面(z轴与目标直线平行的情况下)的切面,并将该切面作为目标横截面。在上述基础上,当目标直线与目标横截面产生交点时,即可将该交点作为目标触控点,表明用户已经对当前模型进行点击,对应的,该交点在三维空间坐标系内的坐标即是触控点属性。
49.需要说明的是,当目标直线与当前模型的目标横截面之间没有产生交点,表明用户通过触控屏并未点击到显示界面中的当前模型,因此,可以将该数据在缓冲中删除,并继续对后续的触控事件进行检测。
50.s120、将目标触控点所属的子模型作为待调整子模型,并根据触控点属性确定与待调整子模型相邻的两个关联子模型。
51.在本实施例中,当确定出目标触目点及其对应的触控点属性后,即可确定出该触控点对应哪一个子模型,从而将该子模型作为待调整子模型,可以理解,在最终呈现的图像中,至少需要根据用户意愿改变待调整子模型的形状。
52.在实际应用过程中,可以根据目标触控点的坐标信息,确定目标触控点所属的待调整子模型。例如,当前模型为划分为10段的圆柱体模型时,若确定目标触点与从上至下第3段子模型相对应,则可以将该部分作为待调整子模型。
53.同时,为了在后续处理过程中确定出待调整子模型的改变量,还需要确定出待调整子模型相邻的两个关联子模型,其中,两个关联子模型包括第一关联子模型和第二关联子模型。可选的,根据各子模型的高度信息,确定位于待调整子模型上方的第一关联子模型,以及位于待调整子模型下方的第二关联子模型。
54.继续以上述示例进行说明,当确定出第3段子模型为待调整子模型,并确定该段子模型中心点在y轴方向的值为2时,可以根据各段模型在三维空间坐标系中所处的高度,确定出处于待调整子模型上方的、中心点在y轴方向的值为4的一段模型作为第一关联子模型,并将处于待调整子模型下方的、中心点在y轴方向的值为2一段模型作为第二关联子模型。
55.s130、根据触控点属性和两个关联子模型的子模型属性确定待调整子模型的待调整属性,并将待调整属性更新为待调整子模型的子模型属性。
56.其中,子模型属性包括子模型半径,可以理解为,当确定出目标触控点的坐标值,
以及两个关联子模型各自对应圆柱体上下底面的半径后,即可基于上述数据对待调整子模型对应圆柱体上下底面的半径进行调整。
57.可选的,确定第一方向上目标触控点与第一关联子模型下底面的第一距离信息,以及目标触控点与第二关联子模型上底面的第二距离信息;通过对第一距离信息、第二距离信息、两个关联子模型的子模型半径以及待调整子模型的子模型半径,得到待调整子模型的待调整半径信息。
58.继续以上述示例进行说明,当确定出目标触控点的坐标信息,以及处于待调整子模型上方的第2段子模型为第一关联子模型、处于待调整子模型下方的第4段子模型为第二关联子模型后,即可根据目标触控点在三维空间内的坐标值,确定出该点离第2段子模型下底面的距离值,以及该点离第4端子模型上底面的距离值。可以理解,当各子模型的上下地面与三维空间坐标系xoz面平行时,可以基于第2段子模型下底面对应的高度(与y轴对应的值)、第4端子模型上底面对应的高度以及目标触控点的高度,确定出第一距离信息以及第二距离信息。
59.进一步的,在确定出第一距离信息、第二距离信息、两个关联子模型的子模型半径以及待调整子模型的子模型半径后,即可基于曲线算法对上述四种数据进行处理,从而得到待调整子模型调整后的半径。
60.示例性的,当确定出目标触控点距离第2段子模型下底面距离为0.4个单位长度,距离第4段子模型上底面距离为0.6个单位长度,第2段子模型半径,待调整子模型半径以及第4段子模型半径均为1个单位长度时,即可基于曲线算法对上述数据进行处理,从而确定待调整子模型调整后的半径。相对于待调整子模型原有的1个单位长度的半径来说,调整后的半径更小,更符合现实世界中触控旋转中的陶器坯子从而缩小其特定部分的效果。
61.s140、将各子模型的子模型属性发送至顶点着色器,以使顶点着色器根据各子模型属性和原始顶点信息,渲染出对当前模型触控后的目标图像,并将目标图像中显示的模型作为当前模型。
62.在本实施例中,当基于cpu计算得到各子模型的半径后,即可将这些数据发送至与gpu对应的顶点着色器,并触发顶点着色器运行,从而依托于gpu的能力渲染出包含有调整后的模型的目标图像,例如,在所渲染的目标图像中,包含某一部分圆周半径根据用户触控点而发生变化的陶器模型。
63.可选的,在将子模型属性发送至顶点着色器的过程中,可以是将更新后的各子模型的子模型半径更新至与当前模型相对应的属性数组中,并将属性数组发送至顶点着色器,以使顶点着色器基于属性数组中存储的子模型半径以及预先存储的原始顶点信息,渲染出目标图像。
64.其中,属性数组可以是基于多个子模型半径所生成的向量,原始顶点信息与当前模型所对应的原始模型相匹配。在实际应用过程中,由顶点着色器对接收的数据进行处理并渲染目标图像的过程,可以是基于顶点着色器接收属性数组;根据属性数组中的子模型半径,确定各原始顶点信息所属子模型的目标半径;基于各原始顶点信息和相应的目标半径,渲染出目标图像。
65.示例性的,当子模型为10段圆柱体子模型时,根据各段圆柱体模型的半径即可构建出一个十维向量,该向量即是属性数组,进一步的,将其发送至顶点着色器后,即可使顶
点着色器基于该向量中10段圆柱体子模型的半径值,以及预先存储的10段圆柱体子模型中各个顶点的顶点坐标,计算得到根据用户触控点调整后的各圆柱体中各顶点新的顶点坐标,从而构建出调整后的模型,并渲染出包含有该调整后的模型的目标图像。
66.可选的,确定各原始顶点信息所属子模型的目标半径的方式有两种,第一种方式为针对各原始顶点信息,确定当前原始顶点信息所属的目标子模型,并基于属性数组确定目标子模型上下底面的底面半径;基于插值算法,确定当前原始顶点信息所在圆周平面的目标半径。
67.继续以上述示例进行说明,当顶点着色器已经接收到10段圆柱体子模型各原始顶点信息后,即可在三维空间坐标系中根据各顶点的坐标值确定出其属于那一段圆柱体子模型;同时,顶点着色器在接收到由10段圆柱体子模型的半径值所生成的属性数组后,可以确定出第2段子模型下底面的半径,以及第4段子模型上底面的半径。
68.进一步的,在确定出上述数据后,顶点着色器可以根据差值算法计算出原始顶点所在圆周平面的目标半径,即,当前模型中部分圆周平面根据用户触控操作调整后的半径。其中,插值算法即是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点的算法,如线性差值算法、抛物线差值算法、多项式差值算法以及样条差值算法等。可以理解,在上述示例中,基于差值算法进行计算后,即可得到第3段圆柱体子模型的各原始顶点所在圆周平面,根据用户触控操作调整后的半径。
69.第二种方式为确定属于同一圆周平面的多个待处理数组;针对各待处理数组,确定当前待处理数组中任意一个原始顶点信息所属的目标子模型,并基于属性数组确定目标子模型上下底面的底面半径;基于插值算法,确定当前待处理数组所属圆周平面的目标半径。
70.其中,待处理数组中包括至少一个原始顶点信息。继续以上述示例进行说明,当顶点着色器已经接收到10段圆柱体子模型各原始顶点信息后,即可在三维空间坐标系中根据各顶点的坐标值确定出其属于的圆周平面,并基于圆周平面构建待处理数组,可以理解,在各待处理数组中包含多个顶点的坐标值。
71.进一步的,基于与10段圆柱体子模型相关联的多个待处理数组,顶点着色器可以计算出其中作为待调整子模型的第3段子模型的上下底面的底面半径,即根据用户触控操作而生成的新的半径值。当确定出两个半径值后,同样可以基于差值算法计算出原始顶点所在圆周平面的目标半径,本公开实施例在此不再赘述。
72.需要说明的是,在本实施例中,若再次检测到触控事件,可以根据本实施例的方案构建出新的模型,并基于新的模型重新渲染出对应的图像,从而实现模型的动态调整,也向用户连续展示出根据自身意愿对如陶器等模型进行调整的视觉效果。
73.本公开实施例的技术方案,当检测到对当前模型的触控事件时,确定与触控事件对应的目标触控点的触控属性,即确定出用户触控模型上的哪个点;将目标触控点所属的子模型作为待调整子模型,并根据触控点属性确定与待调整子模型相邻的两个关联子模型,进一步的,根据触控点属性和两个关联子模型的子模型属性确定待调整子模型的待调整属性,并将待调整属性更新为待调整子模型的子模型属性;将各子模型的子模型属性发送至顶点着色器,以使顶点着色器根据各子模型属性和原始顶点信息,渲染出对当前模型触控后的目标图像,并将目标图像中显示的模型作为当前模型,仅需使cpu执行粗粒度的计
算并将计算结果传递给gpu,便可以得到目标图像,避免了cpu执行大量计算所导致的程序性能出现瓶颈的问题;同时,以大幅降低cpu与gpu之间的交互的方式,减少了gpu通信带宽对程序处理过程的限制,进一步提升了相关程序的处理效率,提升了用户在虚拟场景中制作如陶器等模型的体验。
74.实施例二
75.图2为本公开实施例二所提供的一种渲染目标图像的装置结构示意图,如图2所示,所述装置包括:触控点属性确定模块210、待调整子模型确定模块220、待调整属性更新模块230以及子模型属性发送模块240。
76.触控点属性确定模块210,用于当检测到对当前模型的触控事件时,确定与所述触控事件所对应的目标触控点的触控点属性;其中,所述当前模型包括多个子模型。
77.待调整子模型确定模块220,用于将所述目标触控点所属的子模型作为待调整子模型,并根据所述触控点属性确定与所述待调整子模型相邻的两个关联子模型。
78.待调整属性更新模块230,用于根据所述触控点属性和两个关联子模型的子模型属性确定所述待调整子模型的待调整属性,并将所述待调整属性更新为所述待调整子模型的子模型属性。
79.子模型属性发送模块240,用于将各子模型的子模型属性发送至顶点着色器,以使所述顶点着色器根据各子模型属性和原始顶点信息,渲染出对所述当前模型触控后的目标图像,并将所述目标图像中显示的模型作为当前模型;其中,所述原始顶点信息与所述当前模型所对应的原始模型相匹配。
80.在上述各技术方案的基础上,渲染目标图像的装置还包括模型划分模块。
81.模型划分模块,用于根据所述原始模型在第一方向上的高度信息,将所述原始模型划分为多个子模型;其中,所述原始模型的底面为圆形;确定各子模型的原始高度信息和上下底面原始半径信息,将各子模型的标识、原始高度信息以及原始半径信息作为子模型属性对应发送至所述顶点着色器;以及,将所述原始模型的顶点信息发送至所述顶点着色器,以在检测到对原始模型的触控事件时,确定相应的子模型属性并将所述子模型属性发送至所述顶点着色器中,以使所述顶点着色器基于所述子模型属性和各顶点信息更新所述原始模型得到所述当前模型。
82.在上述各技术方案的基础上,触控点属性确定模块210包括原始触控点确定单元以及触控点属性确定单元。
83.原始触控点确定单元,用于确定于显示界面上的原始触控点,以及所述原始触控点和视点信息所属的目标直线。
84.触控点属性确定单元,用于将所述目标直线与所述当前模型的目标横截面的交点信息,作为所述目标触控点,并将所述目标触控点的坐标信息作为所述触控点属性。
85.在上述各技术方案的基础上,所述两个关联子模型包括第一关联子模型和第二关联子模型,待调整子模型确定模块220包括待调整子模型确定单元以及关联子模型确定单元。
86.待调整子模型确定单元,用于根据所述目标触控点的坐标信息,确定所述目标触控点所属的待调整子模型。
87.关联子模型确定单元,用于根据各子模型的高度信息,确定位于所述待调整子模
型上方的第一关联子模型,以及位于所述待调整子模型下方的第二关联子模型。
88.在上述各技术方案的基础上,所述子模型属性包括子模型半径,待调整属性更新模块230包括距离信息确定单元以及待调整半径信息确定单元。
89.距离信息确定单元,用于确定第一方向上所述目标触控点与所述第一关联子模型下底面的第一距离信息,以及所述目标触控点与所述第二关联子模型上底面的第二距离信息。
90.待调整半径信息确定单元,用于通过对所述第一距离信息、所述第二距离信息、两个关联子模型的子模型半径以及所述待调整子模型的子模型半径,得到所述待调整子模型的待调整半径信息。
91.可选的,子模型属性发送模块240,还用于将更新后的各子模型的子模型半径更新至与所述当前模型相对应的属性数组中,并将所述属性数组发送至所述顶点着色器,以使所述顶点着色器基于所述属性数组中存储的子模型半径以及预先存储的原始顶点信息,渲染出目标图像。
92.在上述各技术方案的基础上,渲染目标图像的装置还包括目标图像渲染模块。
93.目标图像渲染模块,用于基于所述顶点着色器接收所述属性数组;根据所述属性数组中的子模型半径,确定各原始顶点信息所属子模型的目标半径;基于各原始顶点信息和相应的目标半径,渲染出目标图像。
94.可选的,目标图像渲染模块,还用于针对各原始顶点信息,确定当前原始顶点信息所属的目标子模型,并基于所述属性数组确定所述目标子模型上下底面的底面半径;基于插值算法,确定所述当前原始顶点信息所在圆周平面的目标半径。
95.可选的,目标图像渲染模块,还用于确定属于同一圆周平面的多个待处理数组;其中,所述待处理数组中包括至少一个原始顶点信息;针对各待处理数组,确定当前待处理数组中任意一个原始顶点信息所属的目标子模型,并基于所述属性数组确定所述目标子模型上下底面的底面半径;基于插值算法,确定所述当前待处理数组所属圆周平面的目标半径。
96.在上述各技术方案的基础上,所述当前模型为轴对称模型,且所述当前模型的底面为圆形。
97.本实施例所提供的技术方案,当检测到对当前模型的触控事件时,确定与触控事件对应的目标触控点的触控属性,即确定出用户触控模型上的哪个点;将目标触控点所属的子模型作为待调整子模型,并根据触控点属性确定与待调整子模型相邻的两个关联子模型,进一步的,根据触控点属性和两个关联子模型的子模型属性确定待调整子模型的待调整属性,并将待调整属性更新为待调整子模型的子模型属性;将各子模型的子模型属性发送至顶点着色器,以使顶点着色器根据各子模型属性和原始顶点信息,渲染出对当前模型触控后的目标图像,并将目标图像中显示的模型作为当前模型,仅需使cpu执行粗粒度的计算并将计算结果传递给gpu,便可以得到目标图像,避免了cpu执行大量计算所导致的程序性能出现瓶颈的问题;同时,以大幅降低cpu与gpu之间的交互的方式,减少了gpu通信带宽对程序处理过程的限制,进一步提升了相关程序的处理效率,提升了用户在虚拟场景中制作如陶器等模型的体验。
98.本公开实施例所提供的渲染目标图像的装置可执行本公开任意实施例所提供的渲染目标图像的方法,具备执行方法相应的功能模块和有益效果。
99.值得注意的是,上述装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开实施例的保护范围。
100.实施例三
101.图3为本公开实施例三所提供的一种电子设备的结构示意图。下面参考图3,其示出了适于用来实现本公开实施例的电子设备(例如图3中的终端设备或服务器)300的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图3示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
102.如图3所示,电子设备300可以包括处理装置(例如中央处理器、图案处理器等)301,其可以根据存储在只读存储器(rom)302中的程序或者从存储装置306加载到随机访问存储器(ram)303中的程序而执行各种适当的动作和处理。在ram 303中,还存储有电子设备300操作所需的各种程序和数据。处理装置301、rom 302以及ram 303通过总线304彼此相连。编辑/输出(i/o)接口305也连接至总线304。
103.通常,以下装置可以连接至i/o接口305:包括例如触控屏、触控板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的编辑装置306;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及通信装置309。通信装置309可以允许电子设备300与其他设备进行无线或有线通信以交换数据。虽然图3示出了具有各种装置的电子设备300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
104.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置306被安装,或者从rom 302被安装。在该计算机程序被处理装置301执行时,执行本公开实施例的方法中限定的上述功能。
105.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
106.本公开实施例提供的电子设备与上述实施例提供的渲染目标图像的方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
107.实施例四
108.本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提供的渲染目标图像的方法。
109.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便
携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
110.在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
111.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
112.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
113.当检测到对当前模型的触控事件时,确定与所述触控事件所对应的目标触控点的触控点属性;其中,所述当前模型包括多个子模型;
114.将所述目标触控点所属的子模型作为待调整子模型,并根据所述触控点属性确定与所述待调整子模型相邻的两个关联子模型;
115.根据所述触控点属性和两个关联子模型的子模型属性确定所述待调整子模型的待调整属性,并将所述待调整属性更新为所述待调整子模型的子模型属性;
116.将各子模型的子模型属性发送至顶点着色器,以使所述顶点着色器根据各子模型属性和原始顶点信息,渲染出对所述当前模型触控后的目标图像,并将所述目标图像中显示的模型作为当前模型;
117.其中,所述原始顶点信息与所述当前模型所对应的原始模型相匹配。
118.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
119.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程
序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
120.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
121.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
122.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
123.根据本公开的一个或多个实施例,【示例一】提供了一种渲染目标图像的方法,该方法包括:
124.当检测到对当前模型的触控事件时,确定与所述触控事件所对应的目标触控点的触控点属性;其中,所述当前模型包括多个子模型;
125.将所述目标触控点所属的子模型作为待调整子模型,并根据所述触控点属性确定与所述待调整子模型相邻的两个关联子模型;
126.根据所述触控点属性和两个关联子模型的子模型属性确定所述待调整子模型的待调整属性,并将所述待调整属性更新为所述待调整子模型的子模型属性;
127.将各子模型的子模型属性发送至顶点着色器,以使所述顶点着色器根据各子模型属性和原始顶点信息,渲染出对所述当前模型触控后的目标图像,并将所述目标图像中显示的模型作为当前模型;
128.其中,所述原始顶点信息与所述当前模型所对应的原始模型相匹配。
129.根据本公开的一个或多个实施例,【示例二】提供了一种渲染目标图像的方法,该方法,还包括:
130.可选的,根据所述原始模型在第一方向上的高度信息,将所述原始模型划分为多个子模型;其中,所述原始模型的底面为圆形;
131.确定各子模型的原始高度信息和上下底面原始半径信息,将各子模型的标识、原始高度信息以及原始半径信息作为子模型属性对应发送至所述顶点着色器;以及,
132.将所述原始模型的顶点信息发送至所述顶点着色器,以在检测到对原始模型的触控事件时,确定相应的子模型属性并将所述子模型属性发送至所述顶点着色器中,以使所述顶点着色器基于所述子模型属性和各顶点信息更新所述原始模型得到所述当前模型。
133.根据本公开的一个或多个实施例,【示例三】提供了一种渲染目标图像的方法,该方法,还包括:
134.可选的,确定于显示界面上的原始触控点,以及所述原始触控点和视点信息所属的目标直线;
135.将所述目标直线与所述当前模型的目标横截面的交点信息,作为所述目标触控点,并将所述目标触控点的坐标信息作为所述触控点属性。
136.根据本公开的一个或多个实施例,【示例四】提供了一种渲染目标图像的方法,所述两个关联子模型包括第一关联子模型和第二关联子模型,该方法,还包括:
137.可选的,根据所述目标触控点的坐标信息,确定所述目标触控点所属的待调整子模型;
138.根据各子模型的高度信息,确定位于所述待调整子模型上方的第一关联子模型,以及位于所述待调整子模型下方的第二关联子模型。
139.根据本公开的一个或多个实施例,【示例五】提供了一种渲染目标图像的方法,所述子模型属性包括子模型半径,该方法,还包括:
140.可选的,确定第一方向上所述目标触控点与所述第一关联子模型下底面的第一距离信息,以及所述目标触控点与所述第二关联子模型上底面的第二距离信息;
141.通过对所述第一距离信息、所述第二距离信息、两个关联子模型的子模型半径以及所述待调整子模型的子模型半径,得到所述待调整子模型的待调整半径信息。
142.根据本公开的一个或多个实施例,【示例六】提供了一种渲染目标图像的方法,该方法,还包括:
143.将更新后的各子模型的子模型半径更新至与所述当前模型相对应的属性数组中,并将所述属性数组发送至所述顶点着色器,以使所述顶点着色器基于所述属性数组中存储的子模型半径以及预先存储的原始顶点信息,渲染出目标图像。
144.根据本公开的一个或多个实施例,【示例七】提供了一种渲染目标图像的方法,该方法,还包括:
145.可选的,基于所述顶点着色器接收所述属性数组;
146.根据所述属性数组中的子模型半径,确定各原始顶点信息所属子模型的目标半径;
147.基于各原始顶点信息和相应的目标半径,渲染出目标图像。
148.根据本公开的一个或多个实施例,【示例八】提供了一种渲染目标图像的方法,该方法,还包括:
149.可选的,针对各原始顶点信息,确定当前原始顶点信息所属的目标子模型,并基于所述属性数组确定所述目标子模型上下底面的底面半径;
150.基于插值算法,确定所述当前原始顶点信息所在圆周平面的目标半径。
151.根据本公开的一个或多个实施例,【示例九】提供了一种渲染目标图像的方法,该方法,还包括:
152.可选的,确定属于同一圆周平面的多个待处理数组;其中,所述待处理数组中包括至少一个原始顶点信息;
153.针对各待处理数组,确定当前待处理数组中任意一个原始顶点信息所属的目标子模型,并基于所述属性数组确定所述目标子模型上下底面的底面半径;
154.基于插值算法,确定所述当前待处理数组所属圆周平面的目标半径。
155.根据本公开的一个或多个实施例,【示例十】提供了一种渲染目标图像的方法,该方法,还包括:
156.可选的,所述当前模型为轴对称模型,且所述当前模型的底面为圆形
157.根据本公开的一个或多个实施例,【示例十一】提供了一种渲染目标图像的装置,该装置包括:
158.触控点属性确定模块,用于当检测到对当前模型的触控事件时,确定与所述触控事件所对应的目标触控点的触控点属性;其中,所述当前模型包括多个子模型;
159.待调整子模型确定模块,用于将所述目标触控点所属的子模型作为待调整子模型,并根据所述触控点属性确定与所述待调整子模型相邻的两个关联子模型;
160.待调整属性更新模块,用于根据所述触控点属性和两个关联子模型的子模型属性确定所述待调整子模型的待调整属性,并将所述待调整属性更新为所述待调整子模型的子模型属性;
161.子模型属性发送模块,用于将各子模型的子模型属性发送至顶点着色器,以使所述顶点着色器根据各子模型属性和原始顶点信息,渲染出对所述当前模型触控后的目标图像,并将所述目标图像中显示的模型作为当前模型;其中,所述原始顶点信息与所述当前模型所对应的原始模型相匹配。
162.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
163.此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
164.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
再多了解一些

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

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

相关文献