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

用于呈现2D/3D模型的计算机实现的方法和可编程系统与流程

2022-02-22 10:25:26 来源:中国专利 TAG:

用于呈现2d/3d模型的计算机实现的方法和可编程系统
1.本发明涉及分别根据权利要求1、8、9和10所述的一种用于呈现(render)2d/3d模型的计算机实现的方法、一种用于呈现2d/3d模型的可编程系统、一种包括使计算机执行所述方法的指令的计算机程序、以及一种包括使计算机执行所述方法的指令的计算机可读介质。
2.在计算机视觉和计算机图形学中,3d重建实现了真实物体的形状和外观的再现。为了实现该目的,创建了真实物体的数字三维(3d)模型。二维(2d)几何模型也方便描述某些类型的人工图像,诸如技术图、徽标、字体的字形等。它们是2d计算机图形学的基本工具,并且经常用作3d几何模型的组成部分。
3.呈现是借助于计算机程序从2d或3d模型生成真实感或非真实感图像的自动过程。这些用于呈现的计算机程序通常被称为“呈现器”或“呈现引擎”,并且定义作为整体形成所谓的“呈现管线(render pipeline)”的呈现效果。呈现管线定义了为呈现最终图像而要执行的效果的顺序。每一效果都由一组“着色器(shader)”(处于小程序的形式)定义,所述着色器可以以“通道(pass)”的形式在gpu上执行,所述通道可以包含呈现状态设置命令的列表。
4.这样的呈现管线可能变得非常大并且难以管理。一个原因是它可能会增长到数十个通道,其中许多通道需要重新配置、交换或完全移除。如果目标是不同的硬件,则这可以在编译时静态地发生,或者如果质量设置已经改变,则这可以在运行时间期间动态地发生。
5.另外,改进呈现管线的开发过程总是有益的。
6.一些商业上可获得的实时呈现引擎(诸如unity)仅支持静态呈现管线,其通过提供进入呈现管线的入口点来提供一定程度的自由度。利用这样的入口点,用户可以将他自己的特定效果和/或通道添加到引擎开发者所允许的管线。此外,允许用户在入口点处访问的数据也是有限的。此外,由于这些引擎提供的高级抽象,仅允许用户使用可用gpu特征的子集。
7.因此,本发明的目的是提供呈现的灵活设计并改进呈现管线的开发过程。
8.该目的由权利要求1、8、9和10创造性地解决。可以从从属权利要求中获得有利的进一步开发。
9.根据第一方面,本发明提供了一种用于呈现2d/3d模型的计算机实现的方法。所述方法包括以下步骤:提供存储单元和第一效果单元,所述存储单元被配置为存储关于所述模型的数据并将所述数据发送到至少所述第一效果单元,所述第一效果单元被配置为接收所发送的所述数据,基于所接收到的数据来呈现所述模型并生成第一呈现结果;生成用于执行呈现过程的第二效果单元;布置所述第二效果单元,以使得或者所述第二效果单元被配置为接收所述第一呈现结果,或者所述第二效果单元被配置为从所述存储单元接收所述数据;检测存储在所述存储单元中的所述数据的改变;以及通过所述第一效果单元和所述第二效果单元呈现所述2d/3d模型。
10.特别有利的是,本发明的方法使得用户能够自由且容易地将(效果)单元添加到现有管线,诸如将第二效果单元添加到包括第一效果单元和存储单元的现有管线。因此,用户
可以灵活地设计呈现过程或呈现管线,而不限于仅使用由呈现引擎提供的着色器的子集,不限于仅访问由呈现引擎的开发者提供的呈现引擎的入口点,并且不限于仅访问由呈现引擎的开发者定义的入口点处的某些数据/数据类型。
11.例如,创造性地,用户可以生成并编程第二效果单元,以便实现新的阴影映射(shadow mapping)算法以实现阴影的呈现。
12.进一步有利的是,当用户在呈现过程期间不断地修改输入数据时(例如为了比较呈现结果),借助于自动检测数据的改变,改进了呈现系统的开发过程。
13.在优选实施例中,当所述第二效果单元被配置为接收所述第一呈现结果时,所述方法还包括由所述第二效果单元执行的以下步骤:基于所接收到的第一呈现结果生成第二呈现结果;或者基于所接收到的第一呈现结果和来自所述存储单元的关于所述模型的数据生成第三呈现结果。
14.如果执行所述步骤的第一可选方案,则第一效果单元的输出被用作第二效果单元的仅有的(或唯一的)输入。如果执行所述步骤的第二可选方案,则不仅第一效果单元的输出被用作第二效果单元的输入,而且存储在存储单元中的数据也被用作第二效果单元的输入,以用于将包含不同特定参数的不同数据输入到第二效果单元中。
15.在另一优选实施例中,当所述第二效果单元被配置为从所述存储单元接收所述数据时,所述方法还包括由所述第二效果单元执行的以下步骤:基于从所述存储单元接收的数据来生成第四呈现结果。
16.在该实施例中,可以将存储在存储单元中的数据分别输入到第一效果单元和第二效果单元中,以便产生不同的呈现效果,然后可以将这些不同的呈现效果分别用作若干其他效果单元的输入和/或共同用作另一效果单元的输入。
17.在另一优选实施例中,所述方法还包括以下步骤:对存储在所述存储单元中的关于所述模型的数据进行变换(transforming)(特别是批处理和/或实例化);以及将经变换的数据发送到所述第一效果单元和/或所述第二效果单元中。
18.有利的是,在将存储在存储单元中的数据发送到效果单元之前,将它们变换和/或大体地编辑,使得用户可以不需要考虑例如来自场景文件的数据的重新布置,而是专注于呈现系统的开发。
19.优选地,来自例如场景文件的数据被创造性地批处理,以便按集合或组来布置。诸如几何数据的数据还可以或可选地被实例化以用于一次呈现场景中的相同网格(其是在3d计算机图形中定义多面体对象的形状的顶点和面的集合)的多个副本(copy)。
20.在另一优选实施例中,所述方法还包括移除所述第二效果单元的步骤,其中,所述第二效果单元的生成或移除是在由所述第一效果单元和/或所述第二效果单元呈现所述模型期间执行的。从而,进一步简化了开发过程。
21.在另一优选实施例中,所述方法还包括提供连接元件的步骤,所述连接元件用于将所述第二效果单元与所述第一效果单元和/或所述存储单元连接,特别是在由所述第一效果单元呈现所述模型的期间,其中,所述第一效果单元和所述第二效果单元以及所述存储单元被连接为有向非循环图,所述有向非循环图是直接连接单元而没有任何循环的图。
22.从而,可以创造性地创建完全工作的呈现管线,其拓扑结构动态地改变,并且实现呈现引擎的灵活设计。
23.在另一优选实施例中,所述第一效果单元和所述第二效果单元分别包括至少着色器子单元,所述着色器子单元从至少着色器文件生成,所述着色器文件特别地存储在所述存储单元中,并且其中,如果所述着色器文件被修改,则在由所述第一效果单元和/或所述第二效果单元呈现所述模型期间自动更新所述着色器子单元。
24.着色器文件包含可以在运行时间期间被专用化(specialized)的着色器代码。取决于存储在存储单元中的改变的输入数据,可以在运行时间期间自动选择着色器文件中的至少一个对应的代码路径以用于生成新的专用着色器。这进一步改进了开发过程。
25.根据第二方面,本发明还提供了一种用于呈现2d/3d模型的可编程系统,所述系统包括存储单元、第一效果单元和第二效果单元,所述存储单元被配置为存储关于所述模型的数据并将所述数据发送到至少所述第一效果单元中,所述第一输入单元被配置为接收所发送的所述数据,基于所接收到的数据呈现所述模型并生成第一呈现结果,所述第二效果单元被配置为接收所述第一呈现结果和来自所述存储单元的所述数据中的一者。所述第一效果单元和所述第二效果单元被配置为检测存储在所述存储单元中的数据的改变并呈现所述2d/3d模型。
26.根据第三方面,本发明还提供了一种包括指令的计算机程序,当由计算机执行所述程序时,所述指令使所述计算机执行根据第一方面的方法。
27.可以使用任何计算机语言来编写用于本发明单元以及呈现系统的其他元件的代码。
28.根据第四方面,本发明还提供了一种包括指令的计算机可读介质,当由计算机执行时,所述指令使所述计算机执行根据第一方面的方法。
29.进一步的有利细节和特征可以结合附图从本发明的示例性实施例的以下描述中获得,其中:图1示出了用于呈现2d/3d模型的本发明的可编程系统的实施例的示意图;以及图2示出了根据图1所示的实施例的新通道实例/着色器的生成的示意图。
30.根据图1,用于呈现2d/3d模型的本发明的可编程系统100的实施例包括五个效果单元6、10、20、30、40和四个存储单元2、12、14、16。效果单元6用于对存储在存储单元2中的数据进行变换或对它们进行大体编辑以适应于系统。
31.来自存储在存储单元2中的场景文件的数据可以包括场景几何形状并且被输入到效果单元6中。在所示的实施例中,关于网格的输入数据由效果单元6批量处理,以便成组地布置。
32.批量数据被传送到效果单元20,所述效果单元20是呈现深度效果单元,并且例如呈现几何形状而不在帧缓冲器中写入颜色。呈现深度效果单元20包括用于执行预深度效果单元20的呈现深度子单元21。
33.关于相机的一些附加呈现参数被存储在存储单元16中,并且被输入到呈现深度效果单元20中和前向加(forward plus)单元30中,所述前向加单元计算光照和呈现图形。
34.批量数据也被输入到阴影映射效果单元10中,所述阴影映射效果单元允许将阴影添加到3d计算机图形。存储在存储单元12、14中的各种光参数分别被输入到阴影映射效果单元10中。阴影映射效果单元10包括用于执行阴影映射效果单元10的阴影映射子单元11。
35.呈现深度效果单元20和阴影映射效果单元10的呈现结果以及批量数据也被输入
到前向加单元30中。前向加单元30包括:剔除(culling)子单元31,所述剔除子单元31剔除相关的几何对象以减少在着色期间必须考虑的光源(light)的数量;光进仓(binning)子单元32,其用于对光源进行分类;以及着色子单元33,所述着色子单元33遍历(iterate over)场景中的光源的列表以确定应当如何照亮几何对象。
36.前向加效果单元30的呈现结果被传送到后处理效果单元40,所述后处理效果单元40允许使用需要感知整个图像的效果,因为通常每个3d对象是隔离呈现的。在所示实施例中,后处理单元40包括用于执行后处理单元40的两个后处理子单元41、42。
37.之后,后处理单元40的呈现结果可以被传送到另一效果单元(未示出)或被存储以供进一步使用。
38.以前向加效果单元30的着色子单元33(参见图2)为例,该着色子单元33是从包含着色器代码330的着色器文件生成的,所述着色器代码330可以在运行时间期间被专用化。取决于改变的输入数据,可以自动选择来自着色器代码330的对应代码路径,以用于在运行时间期间生成新的通道实例/着色器331、332。这进一步改进了开发过程。
39.借助于所示的本发明的可编程系统100,实现了用于呈现2d/3d模型的灵活设计和呈现管线的简单改变。
40.通过上述优选实施例详细地描述和说明了本发明。然而,本发明不受所公开的示例的限制,并且可以从中导出其他变型,同时所述变形仍然在本发明的保护范围内。
再多了解一些

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

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

相关文献