当前位置: 首页 > 专利查询>微软公司专利>正文

在图形系统内提供中间目标的系统和方法技术方案

技术编号:2874123 阅读:187 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了在计算机系统内应用与计算机图形有关的中间目标的系统和方法。在各个实施例中,在视频存储器内配置了一些中间存储缓冲器,用来使来自图形API的一些串行化程序可以支持超过单个程序的程序描影器的指令限制的算法。这些中间缓冲器还允许为其他用途在程序之间共享数据,而且是可自动访问的。缓冲器的大小,即存储在中间目标内的数据量可以按图形数据的分辨率改变而可变地设定。在这方面,单个程序产生可以然后按需要由同一个程序的扩展和/或许多其他程序使用和再次使用多次的中间数据,从而使描影程序可以有相当大的灵活性和复杂性,同时保持现代图形芯片的速度。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及提供与计算机图形有关的中间存储目标的系统和方法。具体地说,本专利技术与提供配合诸如像素和顶点描影器(shader)之类的程序描影器(procedural shader)使用的中间存储目标(intermediate memory target)有关。
技术介绍
再现(rendering)和显示三维(3-D)图形通常包括许多运算和计算。例如,为了再现一个3-D对象,要形成定义这个需再现的对象的一组坐标点或顶点。可以将一些顶点连接起来形成一些定义需再现和显示的对象的表面的多边形。一旦形成了这些定义一个对象的顶点,可以将这些顶点从一个对象或模型参照系变换到一个通用参照系,最后变换到可以在一个诸如监视器之类的平面显示设备上显示的一些2-D坐标。在变换过程中,可以因为顶点超出可视区域范围,用各种照明方案和光源照明、着色,或者以其它方式变换、描影等,而对所述顶点进行旋转、缩放、剔除或截去。在再现和显示一个3-D对象中所涉及的这些过程可以是计算密集的,可能涉及大量的顶点。传统上,如图1所示,一些复杂的3-D对象或者它们的一些部分可以用一些表示这些3-D对象的近似几何形状的相邻三角形的集体(“格网”(mesh))表示,或者用在二维(2-D)表面空间内的几何图(geometrymap)或表面表示。格网可以通过这些三角形的顶点的位置确定。一个或多个纹理图(texture map)可以映射到该表面上,按照纹理映射过程生成一个纹理表面(textured surface)。在这方面,在一个表面上打了纹理的信号可以是很普通的,并且可以确定任何种类的中间结果,这中间结果可以输入诸如描影器程序(shader procedure)之类的变换机制,以产生最终颜色和/或与点样本关联的其他值。在纹理采样(texture sampling)后,在用显示设备的像元(像素)再现图像或者将数据输出到其它地方用于某些非显示的用途之前,可以按需要对纹理表面施行诸如描影算法(shading algorithm)和技术之类的附加变换。计算机图形中的图像通常表示为一个2-D离散值(灰度)阵列或三个2-D离散值(颜色)阵列。采用标准的(x,y,z)直角坐标系,一个表面可以被确定为一个格网(例如,三角网),每个格网顶点的坐标为(x,y,z),或者被确定为一个几何图,在其中(x,y,z)坐标确定为一个2D(u,v)坐标系上的直线图像(rectilinear image),有时称为表面参数化域(surface parameterization domain)。纹理图也可以用(u,v)坐标系规定。在信号已依附于表面(包括它的几何形状)的表面参数化域内,点样本(point sample)可以根据纹理格网或几何图产生。这些样点可以用各种计算予以变换和描影。在结束这变换和描影处理时,一个点样本包括(a)位置信息,即指出这个点映射到图像平面内哪里的图像地址,以及(b)纹理色或灰度,指出在由位置信息指出的位置上的样本的颜色的信息。还可以包括诸如提供隐面消除(hidden surfaceelimination)的点样深度信息、加权或任何其他有关点样的有用信息之类的其他数据。经变换的纹理表面在由显示器在2-D像素图像空间(x,y)再现前先装入一个帧缓冲器内。此时,在黑白显示设备的情况下,在帧缓冲器内按照表面的某个函数为2-D图像空间内每个(x,y)像素位置指定一个灰度值。在典型的颜色显示设备的情况下,为2-D图像空间内的每个(x,y)像素位置指定红、绿和蓝(RGB)值。应指出的是,也有RGB之外的各种颜色格式。虽然有体系结构的变动,从开始到结束,但以上所说明的载运大量的图形顶点和像素数据的载体通称为图形流水线(graphics pipeline)。计算机图形产业和图形流水线近几年有极大增长。例如,当前的各代电子游戏正在以日益提高的更为现实的方式转向三维(3-D)图形。同时,玩的速度越来越快。这加剧了对在比较经济的系统内快速再现3-D图形的真正需要。早在七十年代,一些3-D再现系统就能按照一些参数描述对象的“外貌(appearance)”。这些和以后的一些方法根据对象表面的位置和朝向以及对它照明的光源提供了对所感觉的对象颜色的参数化。这样一来,就可从中计算出对象的外貌。参数还包括诸如对象的材料的散射色、定向反射系数、反射色、反射率和透明度之类的一些值。这样的一些参数通称为对象的描影参数(shading parameter)。早期的系统只能为描影参数赋单个值,因此它们在对象的整个表面上保持恒定和一致。稍后的系统允许使用在对象的不同部分可以具有不同的值的不一致参数(例如透明度)。已经有两种突出的与众不同的技术用来描述这些不一致参数在对象表面各个部分上所取的值程序描影(procedural shading)和纹理映射(texture mapping)。纹理映射是基于像素和与分辨率有关的。程序描影通过在描影参数空间内定义1-D、2-D或3-D空间内的一个函数(通常称为程序描影器(procedural shader))描述一个实体在这个空间内任一点的外貌。对象“沉浸”在原来的1-D、2-D或3-D空间内,描影参数在对象的表面的一个给定点处的值定义为程序描影函数在这一点上的结果。例如,已经开发了一些近似表示木材、大理石或其他天然材料的外貌的程序描影器,这在文献中可以找到。在一个计算机系统内再现图形数据是资源密集过程的集体。描影过程(process of shading),即对专用图形数据结构集合执行复杂的算法,用来确定与图形数据结构关联一些图元的诸如颜色之类的值的过程,就是这种计算密集的复杂过程的一个例子。通常,描影过程已经在某种程度上规范化了。通过将设计成能与描影器工作的源代码传入一个应用程序,描影器就成为这个应用可以创建/应用的对象,以便高效地绘出复杂的视频图形。这种描影器的例子有顶点描影器(vertexshader)和像素描影器(pixel shader)。在顶点和像素描影器当前以专用硬件芯片实现之前,它们曾经完全或主要作为软件代码实现,并且有时用硬件及用于控制该硬件的软件的组合来实现。这些实现方式经常含有一个CPU或者用系统的CPU模拟其存在。例如,这些硬件实现直接将一个CPU芯片集成入它们的结构,以执行描影任务所需的处理功能。虽然由于标准处理芯片提供的功能范围,CPU为描影过程增添了很大的灵活性,但加入CPU也增加了专用描影过程的开销。然而,没有今天的硬件技术,也就没有了选择余地。不过,今天硬件技术的进步提高了预先将以软件实现的功能移入专用硬件的能力。因此,今天的像素和顶点描影器是用专用和可编程硬件芯片实现的。今天的顶点和像素描影器芯片的硬件设计是高度专业化的,因此与过去的CPU硬件实现不同。业已开发出一些专用3-D图形API,这些API暴露了今天的顶点和像素描影器的专用功能。这样,一个开发者能将一些指令下载到一个顶点描影器,实际对这个顶点描影器进行编程,以执行专用动作。例如,一些API暴露了与在顶点描影器内增加的寄存器关联的功能,例如相对于在寄存器级的浮点数的专用顶点描影功能。此外,可以实现一个使超高速顶点描影器只返回浮点数的小数部分的指令集。各种功能可以通本文档来自技高网...

【技术保护点】
一种在一个图形系统内提供和利用中间存储目标的方法,所述方法包括下列步骤:将一组程序指令发送给图形硬件的至少一个部件,以将所述至少一个部件编程成执行一种专用功能;以及执行下列操作之一:(A)将来自一个中间存储目标的数据输入给图形硬件的 所述至少一个部件,和(B)将来自图形硬件的所述至少一个部件的数据输出给一个中间存储目标。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:米歇尔B伯兰德查尔斯N伯伊德安纳塔R坎切拉
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利