本发明涉及一种用于渲染数据的方法、一种计算机程序产品、一种显示单元和一种车辆。本发明尤其是涉及一种用于为显示单元渲染显示图像的数据的方法、一种可执行所述方法的计算机程序产品、一种基于该方法的显示单元以及一种具有这种显示单元的车辆、尤其是机动车。
背景技术:
在基于数据生成显示图像并且可在显示单元上显示之前,在渲染方法(其也可称为图像合成方法)的范畴内处理、编辑显示图像所基于的数据并根据相应的应用和特定的控制数据将所述数据转换成随后供应给显示单元的数据。
图像合成有时使用所谓的着色器实现。着色器是这样的单元,其作为软件和/或硬件组件存在并且例如存在并运行于图形单元、图形显示卡或类似物上。
在用于为显示单元渲染显示图像的数据的方法中不利的是,传统使用的着色器被固定地预规定为源代码和/或提前针对所使用的硬件的某些特定属性而设置。因此,迄今不能灵活地设计着色器单元。更确切地说,在开发时已强制确定所使用硬件的特性并相应设计着色器单元。
技术实现要素:
因此,本发明的任务在于提供一种用于为显示单元渲染显示图像的数据的方法,其中在设计待使用的着色器单元时存在较高程度的灵活性并且尤其是还可在执行渲染期间实时调整待使用的着色器单元。
本发明所基于的任务在用于为显示单元渲染显示图像的数据的方法方面根据本发明借助独立权利要求1的特征、在计算机程序产品方面根据本发明借助独立权利要求10的特征、在显示单元方面根据本发明借助独立权利要求12的特征并且在车辆方面根据本发明借助独立权利要求13的特征来解决。有利的扩展方案分别是从属权利要求的技术方案。
根据第一方面,本发明提供一种用于为显示单元渲染显示图像的数据的方法,其中,(a)使用至少一个着色器单元来渲染显示图像的数据,(b)通过效果图(20)代表所述至少一个着色器单元,(c)效果图(i)具有结构并且(ii)代表着色器单元(10)对作为输入数据的显示图像的数据的至少一个图形效果,以产生输出数据,并且(d)在执行该方法期间动态并且实时地调整着色器单元,通过(e)根据显示单元的状态有条件地改变效果图和/或必要时其子图的结构和/或拓扑进行所述调整。
因此,与传统方法不同,所基于的着色器单元不作为固定预规定的源代码被提供。更确切地说,根据本发明预规定如下效果图,所述效果图描述数据流和针对数据的相应操作以实现图形效果并且还可在生成着色器单元之前加以改变,从而通过有条件地改变效果图的结构、尤其是根据待使用的显示单元,通过改变效果图也可动态并且实时地调整可由效果图导出的着色器单元。
因此,与传统的、被固定预规定为源代码的着色器单元相比根据本发明可实现更高程度的灵活性。
在根据本发明的方法的一种优选实施方式中规定,在通过效果图代表所述着色器单元的步骤(b)中,(b-1)检测、必要时改变并存储代表效果图的数据,并且(b-2)由代表效果图的数据生成着色器单元。这表示,以特别适合的方式通过代表效果图的数据预规定、必要时调整和随后存储效果图,以便随后由所存储的、代表效果图的数据在给定时间生成相应的着色器单元。
如果在改变效果图的和/或必要时其子图的结构和/或拓扑的步骤(e)中根据显示单元的状态动态并且实时地改变效果图的效果的结构,那么在根据本发明的、用于渲染显示图像的数据的方法中产生特别高程度的灵活性。
为了在概念性设计用于渲染显示图像的数据的方法时实现与相应的硬件资源更高程度的独立性而规定:所述显示单元的状态代表显示单元的特性、尤其是关于显示图像的显示特性。这表示:在执行用于渲染的方法时相应所使用的显示单元的状态就已可在当前作为控制数据在通过直接调整效果图生成待使用的着色器单元时被实现。这例如可涉及分辨率、颜色空间、图像刷新率、所用存储器容量、显示单元上的带宽使用以及类似特性。
如果所述效果图是具有多个节点和/或引线的有向无环图,所述节点和/或引线与值、尤其是与输入或输出数据、和/或与通过着色器单元或一部分着色器单元实现的用于渲染的处理过程相关联,那么根据本发明的用于渲染的方法变得特别简单。这些措施使所使用的效果图和其所基于的代表性数据产生特别简单的结构、尤其是具有明确的结构且没有冗余。
在根据本发明的、用于渲染显示图像的数据的方法中提供各种优化可能性,所述优化可能性可提前在规划阶段就已经或尚在执行方法期间并根据情况实时进行。
例如根据本发明的方法的一种优选实施方式规定:将多个数据组并且尤其是纹理数据组组合成一个数据图集和尤其是一个纹理图集并且尤其是通过调整着色器单元的步骤(d)选择匹配的数据组或纹理数据组用于渲染和/或从所述数据图集或纹理图集中去除不匹配的数据组或纹理数据组。借助所述措施可相应地在当前、即在执行该方法时决定是否与所使用的显示单元的要求相关联地使用或丢弃某些数据组或纹理数据组。这种优化例如降低了传输数据的耗费并且除了纹理数据之外也可用于其它数据。
数据图集或纹理图集用作多个数据缓冲器的联合,其例如可根据显示单元而具有更高或更低的渲染速度。纹理图集是数据图集的一种示例。
在根据本发明的方法的另一种实施方式中,根据所述显示单元的状态在数据格式方面检查和/或调整输入数据、尤其是着色器单元的输入数据。
根据本发明的、用于渲染显示图像的数据的方法的另一种实施方式通过下述方式变得特别有效,即根据所述显示单元的状态合并多个网格数据组并且尤其是将合并的网格数据组的效果图合并成一个共同的效果图。
在传统的用于渲染显示图像的数据的方法中在重新计算某些数据时常常存在大的耗费。所述耗费根据本发明可以下述方式减少,即检查效果图的输入数据和/或效果图的子图是否改变和/或以何频率改变,并且必要时一次性和/或伴有损失地计算尤其是不改变的或不超过一定频率地改变的输入数据和/或子图并将其缓存以供进一步使用。
根据本发明的另一方面提供一种计算机程序产品,其包括程序代码,当该程序代码在计算机或数字信号处理装置上执行时,所述程序代码使计算机或装置执行根据本发明的、用于为显示单元渲染显示图像的数据的方法。
优选根据本发明的计算机程序产品具有非易失性存储介质、如cd-rom、dvd-rom、ssd单元或类似物。
本发明还提供一种显示单元,其包括控制单元,所述控制单元构造用于在运行中执行根据本发明的、用于为显示单元渲染显示图像的数据的方法。
此外,本发明提供一种车辆、尤其是机动车,其具有根据本发明的显示单元。
附图说明
本发明的其它细节、特征和优点由下述说明和附图给出。附图如下:
图1以示意性框图的形式示出在使用根据本发明的用于渲染显示图像的数据的方法的一种实施方式情况下的显示方法;
图2以示意性框图的形式示出根据本发明的用于渲染显示图像的数据的方法的一种优选实施方式;
图3以示意性框图的形式示出根据本发明的用于渲染显示图像的数据的方法的另一种实施方式的细节,在此聚焦于着色器单元的生成;
图4以示意性框图的形式示出着色器单元所基于的效果图的结构;
图5示出使用根据本发明的显示单元的根据本发明的车辆。
具体实施方式
下面参考图1至5详细描述本发明的实施例。相同和等效的以及作用相同或等效的元件和部件用同一附图标记表示。并非在其每次出现时都复现所标出的元件和部件的详细描述。
所示特征和其它特性可以任意形式相互独立并且任意相互组合,且不脱离本发明的核心。
图1以示意性框图的形式示出用于为显示单元50处理并显示待显示的显示图像101的数据100的方法40,在此使用根据本发明的用于为显示单元50渲染显示图像101的数据100的方法的一种实施方式。所述用于处理并显示显示图像101的数据100的方法40可被理解为所谓的图形流水线。
根据图1的方法40的图形流水线主要包括应用单元41、几何单元42、栅格单元43和演示单元44。
处理和显示方法40的应用单元41提供基本过程,这些基本过程为显示单元50生成待显示图像101所基于的数据100。在此可以是常规的应用程序、如作为车辆中多媒体或导航系统的一部分。
几何单元42用于几何编辑在待显示的显示图像101方面所基于的数据100,必要时可使用控制数据102,所述控制数据例如也可描述所基于的显示单元50的显示参数。用于显示图像101的数据100和控制参数102因此构成用于几何单元42的输入数据11。
在几何单元42中设置根据本发明的、用于为显示单元50渲染显示图像101的数据100的方法1的至少一种实施方式。也就是说,使用通过效果图20代表的至少一个着色器单元10。通过使用所述至少一个着色器单元10(其必要时在使用控制数据102的情况下能动态且实时地通过改变效果图20来调整)在几何单元42中执行大部分用于从所基于的数据100生成显示图像101的几何方法步骤。这尤其、但必要时不仅仅涉及模型和照相机变换、照明、投影、在剪辑意义上对相应图像区块的剪裁以及在显示单元的显示表面上的相应坐标变换方面。
在此也可使用不同的着色器单元10,所述不同的着色器单元根据本发明则分别通过相应的效果图20代表。
接下来则是栅格单元43,其用于将所生成的数据和尤其是在此生成的图元转换成离散的片段。
演示单元44随后用于在相配的显示单元50上基于可能已调整的数据100示出显示图像101。
图2以框图形式示意性示出根据本发明的、用于为显示单元50渲染显示图像101的数据100的方法1,如可与根据图1的几何单元42相结合地构成的方法。
根据本发明的、用于渲染数据100的方法1的该实施方式在待显示图像101所基于的数据100、如一组三维坐标或类似物的基础上并且在相应供应的、也可代表所基于的显示单元50特性的控制数据102的基础上借助变换单元2-1进行变换。在此可使用第一着色器单元10-1、如由第一效果图20-1导出的顶点着色器。
接下来是覆盖单元2-2,通过覆盖单元在使用源于第二效果图20-2的第二着色器单元10-2的情况下导出场景的覆盖或镶嵌。因此,第二着色器10-2也被称为镶嵌着色器或覆盖着色器(细分曲面着色器,英语:tesselationshader)。
随后是基于第三着色器10-3和第三效果图20-3的几何单元2-3。第三着色器单元10-3也被称为几何着色器。
之后则是用于透视转换、区块剪裁和栅格化的单元2-4至2-6。作为栅格单元2-6的结果是图元、如三角形,但更一般地是单形,所述图元例如借助纹理图集60在使用纹理缓存61和纹理过滤器62的情况下在下游的像素单元2-7中通过使用基于第四效果图20-4的第四着色器单元10-4、如像素着色器在像素上为图元设置相应纹理。
接下来是用于图像合成和/或边缘平滑的重叠和平滑单元2-8以及后处理单元2-9,之后由用于为显示单元50渲染显示图像101所基于的数据100的方法1如此产生的显示数据13被供应用于显示。
图3以示意性框图的形式示出用于根据本发明从所基于的效果图20导出着色器单元10的一种实施方式。
起点是初始效果图20,其在此可包括两个子图21和22。效果图20连同待显示图像101所基于的数据100和例如可描述所基于的显示单元50的状态的控制数据102一起在步骤32中被供应给构建单元31,以便以当前形式为待构建的着色器形成一些着色器指令15-1、15-2、15-3……。
另一方面,根据控制数据102也可在步骤33中改变初始效果图20及其子图20-1和20-2的基本结构,以便因此以动态的方式和方法调整效果图20以及因此调整着色器10的未来待使用的结构,所述着色器由相应当前形式的效果图20的结构导出。
图4以示意性框图的形式示出用于代表根据本发明的着色器单元10的效果图20的一种可能结构。
根据图4的效果图20是可由两个子图20-1和20-2叠加而成的效果图20。第一子图20-1在此情况下是非静态子图,其包括一个开始或输入节点21-1和多个操作节点21-2、21-3、21-4……,它们通过引线22相互连接。由于输入节点21-1可随其输入数据而变化,因此子图20-1总体可变化、即是非静态的。该子图经受的变化使以缓存形式的暂存没有意义。
与此不同,第二子图20-2具有数据节点21-5和21-6,所述数据节点具有恒定的输入数据、如不变的顶点或纹理属性。此外,操作节点21-7、21-8和21-9以及所属的引线22也是不变的。因此,效果图20的第二子图22-2的结构和所基于的数据可被暂存、如暂存在缓冲存储器中,从而由此降低了在根据本发明的、用于渲染待显示的显示图像101的数据100的方法1的该实施方式中的计算耗费。
图5以示意性侧视图示出根据本发明的车辆的一种实施方式,在其中可使用根据本发明的显示单元50。
图5中所示的车辆70是具有车身71和安装其上的车轮72和73的机动车。在车身71内部在车辆70的前部区域中构造有根据本发明的显示单元50的实施方式。该显示单元50包括用于显示显示图像101的显示装置51和控制单元55,该控制单元通过控制线52与显示装置51连接并且基于根据本发明的、用于渲染显示图像101的数据100的方法1的一种实施方式相应显示该显示图像101。
显示单元50例如可以是导航系统、多媒体单元或其一部分。
借助下述说明进一步阐述本发明的这些和其它特征和特性:
本发明意义上的着色器单元(其也可被称为gpu着色器)是一种程序,所述程序在gpu、即图形显示卡的处理器中执行。gpu着色器例如可包括三个本发明意义上的着色器单元、即一个顶点着色器、一个几何着色器和一个像素着色器。
针对每个顶点执行顶点着色器。作为输入,顶点着色器获得角点和顶点的相关参数、如其法线和纹理坐标以及其它全局参数。顶点着色器由这些信息生成简单的三维对象、即所谓的图元。另外,顶点着色器执行另外的预计算、如确定顶点颜色、将矢量转换到坐标系中并生成纹理坐标。
在特定图形流水线中、如在direct-3d9.0(一种图形显示卡标准)中,顶点着色器的输出直接传输给栅格单元,该栅格单元将图元分解为像素。
针对每个栅格化的点执行像素着色器。像素着色器给每个像素分配特定属性、如颜色值和照明效果。
借助着色器模型4以及例如direct-3d标准在图形流水线中引入了新元件、即几何着色器。直接在顶点着色器之后并在栅格化之前执行几何着色器。顶点着色器始终只能一个接一个地处理顶点,而几何着色器却可同时处理属于一个图元的所有顶点。另外,几何着色器可复制图元并改变其大小。作为输出,几何着色器再次生成图元。
有三种高级语言用于着色器编程:glsl、hlsl和nvidia。
在本发明意义中,术语“图形效果”和“着色器”可同义地使用,但重点是由所基于的效果图生成着色器。
现在首先存在效果图以用于示出视觉效果,而非着色器。效果图作为有向无无环图(英语:directedacyclicgraph)描述数据流以及哪些数据通过哪些操作从哪些其它数据计算得出。从给定的效果图中可生成着色器,更确切地说,通过改变效果图相应改变着色器单元。
不利的是,目前着色器必须提前就已经考虑待使用硬件的属性。因此,着色器通常变得十分复杂,因为它们针对该硬件进行了优化。传统的着色器是原子的(atomar)并且着色器之间的关联性是固定规定的(“硬编码”)。在运行中可能出现等待时间或数据冲突。在开发着色器单元时,目前必须已知着色器单元是为哪个硬件而开发的。
借助效果图20可优化着色器单元10,这无法单独借助传统的基于源代码的着色器实现。尤其存在两类优化:
(a)在开发时可进行的优化。在着色器的效果图显示中也可在运行时实施这种优化。
(b)只能在运行时进行的优化。此外,可预先计算或预先确定数据,可能伴有质量损失、但却具有更高性能。
对于(a)尤其存在基于纹理图集的方法。纹理图集大约作为多个纹理的组合而被动态地计算。在此将多个纹理组合成一个纹理。然后根据硬件可动态地决定使用或去除图集中的哪些组成部分。也就是说,根据本发明系统可基于效果图并因此借助着色器来决定可借助哪个纹理来实现更好/更快的结果。然后基于所使用的显示装置来使用相应的方法。
此外,存在优化着色器输入的可能性,更确切地说,根据哪种格式对于硬件工作最快,例如通过使用三个浮点变量代替大小为3的浮点型数组。
此外,存在拼合或者说合并网格的可能性并且还可提高效率。在硬件的具体参数基础上决定是否可合并网格以及可合并哪些网格。在此根据本发明随后也同样合并经合并的网格的效果图。
对于(b)尤其存在下述方法:
根据本发明的具有静态部分——即数据不会变化或不会经常变化——的着色器单元可被如此拆分,使得仅一次性确定或计算静态部分,但可能伴有损失,或者仅在输入数据变化时才进行确定或计算。由此可节省计算时间,尤其是当静态计算相对复杂时。
重要的是,可在运行时应用优化,因为各优化可相互影响。优化的应用是动态事件,基于所述动态事件可决定是否应用其它优化。
例如可同时应用纹理图集和网格合并。在此可能将具有多个网格和多个纹理的场景转换为具有一个纹理的一个唯一的网格,从而节省gpu时间。
与传统的原子着色器不同,从效果图生成的着色器单元如此自动配置,使得它们的关联性满足要求,例如当着色器b需要来自着色器a的数据时,则首先执行着色器a,而无需开发人员明确地关注该关联性。
通过效果图——即使某些特征在开发时不可用——这些特征也可用等效特征来替代。
附图标记列表:
1用于渲染数据的方法
2-1转换单元
2-2镶嵌单元
2-3几何单元
2-4透视转换单元
2-5区块剪裁单元
2-6栅格单元
2-7像素单元
2-8覆盖和平滑单元、图像合成/边缘平滑单元
2-9后处理单元
10着色器单元
10-1着色器单元、顶点着色器
10-2着色器单元、镶嵌着色器、细分曲面着色器
10-3着色器单元、几何着色器
10-4着色器单元、像素着色器
11输入数据
12输出数据
13显示数据
15-1着色器指令
15-2着色器指令
15-3着色器指令
20效果图
20'动态子图
20”静态子图
20-1第一效果图
20-2第二效果图
20-3第三效果图
20-4第四效果图
21-1效果图20的开始节点、输入节点
21-2效果图20的操作节点
21-3效果图20的操作节点
21-4效果图20的操作节点
21-5效果图20的数据节点
21-6效果图20的数据节点
21-7效果图20的操作节点
21-8效果图20的操作节点
21-9操作节点
22效果图20的引线
31构建单元
32供应步骤
33改变步骤
34形成着色器指令15-1、15-2......的步骤
40用于处理并显示数据的方法
41应用单元
42几何单元
43栅格单元
44演示单元
50显示单元
51显示装置
52控制线
55控制单元
60数据图集、纹理图集
61数据缓存、纹理缓存
62数据过滤器、纹理过滤器
70车辆
71车身
72车轮
73车轮
74车辆70内部
100显示图像101所基于的数据
101显示图像
102控制数据