CN100342396C - 使用捕捉的图形硬件指令的图形着色方法和系统 - Google Patents
使用捕捉的图形硬件指令的图形着色方法和系统 Download PDFInfo
- Publication number
- CN100342396C CN100342396C CNB001049232A CN00104923A CN100342396C CN 100342396 C CN100342396 C CN 100342396C CN B001049232 A CNB001049232 A CN B001049232A CN 00104923 A CN00104923 A CN 00104923A CN 100342396 C CN100342396 C CN 100342396C
- Authority
- CN
- China
- Prior art keywords
- instruction
- painted
- hardware
- function
- hardware instruction
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
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
技术领域
本发明涉及计算机图形系统,并特别涉及提供将着色操作从主机处理器卸载到基于寄存器的图形子系统以增加图形着色速度和效率的方法和系统,图形子系统能够在需要时只需要正常主机处理器操作而进行图形着色。
背景技术
一般来说,计算机图形图象是通过将在存储于称为帧缓冲区的存储器位置的象素定义(色度和颜色)传输至显示屏而产生。当前,多数显示系统是基于光栅的,这意味着存储在帧缓冲区中的一个值确定给定象素的电子束的色度和颜色,电子束以适合的频率扫描显示屏的荧光涂层内表面。
将一组程序码形式的图象定义传输至能够物理显示在CRT上的一组象素值,并且接着将象素值扫描到CRT上的过程经常被称为“着色”。在着色中,处理器必须从应用程序中取得图形图元的说明并将它们转换成象素定义,其中图形图元是更复杂的图象的基础。
请求进行图形操作的应用程序一般调用基本着色函数以着色图元,例如,线,圆和多边形。这些基本着色函数是用低级代码写成的,并位于图形库中。已知的一组基本图形函数是应用程序员接口(API),以使程序员根据这些基本函数以例如C和Fortan的高级语言写应用程序,而不需要写低级代码。一些标准化和商业提供的API包括OpenGL,PHIGS(程序员分级图形标准),和GKS(图形内核系统)。
为了使图形被着色,应用程序中的高级API说明必须被解释并降低成硬件级代码。之后,该硬件级代码必须被执行以进行填充或修改帧缓冲区所需的实际物理输入/输出操作。
即使是简单的图象,这些任务也消耗很大部分的处理器时间和系统存储器。但是,图形应用程序越来越复杂,要求复杂,真实的图象以彩色,带有照明,阴影和其他的方式被着色。如果一定图象要求被反复着色,例如,在视频游戏的情况下,对处理器时间和系统存储器的高要求能够拖慢图形着色,使用户懊恼。
发明内容
这样,要求有一种着色方法能够将重复的任务从主机处理器卸载,使其可以进行其他需要的任务。特别是,主机处理器周期和存储器得以保留,并提高了着色速度,如果要求在图形应用程序中从高级API说明中产生硬件可执行指令的主机处理器操作对要求反复着色的图象只进行一次操作,并且硬件可执行指令可以在需要时被执行以着色该图象。在现有技术中还没有这种方法。
根据本发明的一个方面,提供一种图形着色的方法,包括以下步骤:
捕获:捕获由图形应用程序调用的基本着色函数而生成的硬件指令,在存储器中作为可执行程序;和
执行:在需要的时候在图形子系统上执行捕获的硬件指令,以着色图象。
根据本发明的另一个方面,提供一种进行图形着色的计算机系统,包括:
一个主机操作系统;和
一个图形子系统,包括进行着色操作的硬件;
捕获装置,用于响应在主机操作系统上运行的图形应用程序发出的指令,捕获由基本着色函数生成的图形子系统的硬件指令,在存储器中作为一个可执行程序,供所述硬件执行,其中基本着色函数是由图形应用程序调用的。
根据本发明的另一个方面,提供一种执行高级计算机程序指令序列的方法,使用可重用硬件级指令,这些指令在需要时在主机操作系统的子系统上执行,包括以下步骤:
捕获:捕获由图形应用程序调用的基本着色函数而生成的硬件指令,在存储器中作为可执行程序;和
执行:在需要的时候在图形子系统上执行捕获的硬件指令。
根据本发明的另一个方面,提供一种执行图形着色的方法,包括以下步骤:
在图形应用程序中定义一个基本着色函数序列,作为存储器中被捕获的硬件指令序列;
执行包含定义的序列的图形应用程序,以产生被捕获硬件指令;知
执行捕获的硬件指令以着色图象。
根据本发明的另一个方面,提供一种进行图形着色的方法,包括以下步骤:
在存储器中捕获由图形应用程序调用的基本着色函数序列生成的硬件指令作为一个可执行程序,所述序列定义一个子场景;
为被着色的所述子场景指定在主场景中的位置;和
执行所述捕获的指令在被指定的位置着色所述子场景。
本发明提供一种从主机处理器卸载着色任务至图形子系统的方法和系统,其中图形子系统在需要时进行着色任务。在根据本发明的方法和系统中,由图形应用程序调用的基本着色函数产生的图形硬件的图形指令在存储器中被捕捉。一旦硬件指令被捕捉,它们可以根据需要在图形子系统中执行,只需要正常主机处理器操作下着色图象。
根据本发明的软件响应任何图形应用程序中的指令,图形应用程序定义被捕捉作为硬件指令的基本着色函数序列。应用程序中的指令一般由希望使用本发明提供的优点的程序员编写的,并且可以包括一系列API中的基本着色函数的高级调用以着色一个特定的图象,这些函数由开始程序和结束程序标识符界定。
根据最佳实施例,当应用程序执行时,开始程序标识符激活本发明的软件。该软件执行指令以产生相应于在开始程序和结束程序标识符之间界定的基本着色函数的高级调用的硬件指令。然后,当该软件遇到结束程序标识符时,它向一个主机系统寄存累积存储的硬件指令作为一个可执行程序。
结果,每当应用程序要求图象被着色,它发出该寄存的可执行程序的调用,并且在图形子系统内执行存储的硬件指令而着色图象,而只要求正常的主机处理器操作。这样,主机处理器周期被保留而可用于其他任务,并且降低了系统存储器的要求,因为由应用程序指定的相应于基本着色函数的硬件指令只被生成一次。
附图说明
图1示出现有技术的图形着色系统的一般视图;
图2示出实现本发明的系统的基本软件和硬件部件;
图3示出根据本发明的捕捉例程的流程;
图4示出应用本发明的一个应用程序的例子。
具体实施方式
图1示出现有技术的图形着色系统的概念总图。在图1示出的系统中,主机操作系统5有图形设备驱动软件7,它响应图形应用程序8中的高级图形着色指令,发出低级指令至图形子系统6中的图形加速器30。在图形设备驱动器7的控制下,加速器30将象素定义写入帧缓冲区35,帧缓冲区35被扫描至显示设备40以物理显示着色图象。
相反,图2示出根据本发明的图形着色方法和系统的基本软件和硬件部件。元件包括图形子系统10,图形子系统10包括一个随机存储器20,一个定制图形处理器,即显示列表处理器(DLP)25,一个加速器30,一个帧缓冲器25,和一个显示设备40,例如CRT。DLP25能够取回存储于存储器20中的硬件指令,并发出指令以控制加速器30。加速器30包括多个高速寄存器,它们能够根据DLP 25发出的指令使象素定义写入帧缓冲器35。之后,象素定义从帧缓冲器35扫描至显示设备40以产生图象。
现参考图2和图3,用于实现本发明的特征的计算机可执行指令在图形设备驱动器15中实现。设备驱动器15包括捕捉例程50和一个API组17,即,一组用于着色图元的基本着色函数。API中的每个函数包括一系列硬件级的计算机可执行指令,首要寄存器写入指令,以指定,例如,给定图元的尺寸和颜色和它在帧缓冲器中的位置。
API 17中的函数可以由高级程序中的指令激活,通过由它的唯一助记符号标识符指定的一个函数,例如,“Draw_Line”,“Draw_Circle”或“Fill_Circle”,并为其传递适合的参数,例如线的长度,圆的直径或填充颜色。
捕捉例程50包括计算机可执行指令以响应在主机系统5上执行的高级应用程序45内的指令,识别被事先存储在随机存储器02中的一系列API函数调用47作为硬件指令。高级程序内的这些指令一般由程序员编写至要求图象被着色的应用程序中,以激活本发明提供的更先进的功能。
高级应用程序45内激活本发明的功能的指令包括“Begin_Program”46和“End_Program”48标识对,它们包含或界定一系列API函数调用47,它们由程序员编写,作为由助记符号标识符(与所需的参数一起)调用在设备驱动器15中提供的API组17内的特定着色函数。程序员任意编写API序列,以产生所希望的图象。Begin_Program/End_Program界定对标识被事先存储在存储器20中作为硬件指令的API序列。
当应用程序45中的Begin_Program指令46被执行时,发出一个函数调用至设备驱动器代码15中的捕捉例程50。图3示出捕捉例程的基本流程。示出的序列被应用程序45内的Begin_Program指令46初始化。首先,如方框55所示,捕获例程设置一个标志指示设备驱动器15存储由API函数调用47生成的硬件指令至存储器20,而不是通过将它们发送至加速器30而执行执行硬件指令。这样,如方框60所示,通过传递程序员指定的参数至API库中的API函数,并将API存储到存储器20中,在Begin_Program指令46以后的API函数调用47被估值以生成相应的硬件指令。API包括完全机器可执行寄存器指令以写入帧缓冲器35,进行由程序员在调用参数中指定的着色函数。捕获例程50为每个API函数调用47进行方框60中指示的操作。在捕获例程中,设备驱动器计算和记录开始地址和存储器20中存储的指令的范围。然后,如方框65所示,当应用程序45发出一个End_Program指令48时,捕获例程复位由Begin_Program指令46设置的标志,并在主机系统5寄存累积存储的硬件可执行指令作为一个可执行程序。现在该程序可以使用唯一助记码标识符“id”而被激活,助记码标识符“id”是包含由设备驱动器计算出的数字并返回至应用程序45的变量。该“id”变量一般由程序员在Begin_Program指令46中给出一个有意义的名字。
设备驱动器为每个应用程序45中的Begin_Program/End_Program对进行上述的处理。可能有多个这样的对;但是,一旦界定API序列47被转换成硬件指令,存储在存储器20中并在主机系统5中寄存作为可执行程序,它可以根据需要由图形子系统10执行,而不需要一般的主机处理器,即,设备驱动器,操作。如图3所示,应用程序45可以在显示器以希望的频率着色一个图形,这通过简单地在Execute_Program49中指定它的分配的助记码,“id”来完成。Execute_Program指令49使得DLP 25读出相应于存储在存储器20中的硬件指令,并发出指令至加速器30。加速器执行寄存的指令以填充帧缓冲器35。之后,象素定义从帧缓冲器35扫描至显示设备40以产生所希望的图象。
所需的唯一一个设备驱动器操作是在帧缓冲器35中定位图象在Locate_Scene指令中指定位置,之后初始化Execute_Program指令49中指定的存储的硬件指令以物理上着色图象。已不再需要进行API函数序列所需的设备驱动器操作,它们每次在应用程序需要时执行,从而为其他操作释放了主机处理器周期和执行操作所需的存储器。
以下示出本发明的应用程序的一个例子,其中程序员希望为视频游戏生成一个汽车的图象。该汽车图象需要重复生成。
一般地,程序员在一个有主机处理器,存储器,读/写磁盘存储器,和例如键盘和鼠标的I/O设备的计算机系统上工作,该计算机系统允许用户与操作系统和应用程序进行交互,应用程序包括用于编写和编辑软件的文本编辑器。程序员将使用文本编辑器编写或编辑包含由本发明的设备驱动器软件识别的指令的源代码。为实现本发明,该计算机系统一般进一步要求图形子系统包含如图2所示的部件。
在视频游戏的源代码中,程序员一般编写程序指令定义Begin_Program/End_Program对以界定API函数序列,着色汽车图象部件。例如,界定API函数序列以着色汽车轮胎部件的伪码可以如下:
htire=Begin_Program();//定义一个被存储程序以着色
//一个原始的轮胎;
Draw_Circle(100); //画轮胎的轮廓;
Fill_Circle(Black); //用黑色填充圆;
Draw_Circle(10); //直接在轮胎的中间画一个小的圆;
Fill_Circle(Silver); //给它一个铬色中心;
End_Program(); //保存硬件指令以着色轮胎;
在这个例子中,根据本发明的方法,第一个指令“htire=Begin_Program()”标识API函数序列的开始以转换成硬件指令并存储在存储器中。助记码“htire”是由程序员随意指定的并表示一个被产生的包含有设备驱动器15计算的并用于识别和跟踪被存储的程序的数字的变量。
下面的指令,“Draw_Circle(100)”(请注意100在此是一个函数参数而不是附图标号),“Fill_Circle(Black)”和“Fill_Circle(Silver)”表示调用着色图元的API 17中的函数。在此,API函数将着色黑色圆圈,该圆圈中心有一个较小的银色圆圈,表示一个轮胎。
最后一行,“End_Program()”,标识被存储的API序列的结尾。
视频游戏源代码被相似地编辑以界定API序列,着色汽车的车身,车窗,保险杠等等。
一般地,为了最好地实现本发明的优点,程序员确定将所有API序列如上所述预先存储作为硬件指令,作为应用程序执行的开始或初始化阶段。被存储后用于执行硬件指令的源代码一旦存储完这些硬件指令将位于这个初始化阶段之后。在这个汽车的例子中,被存储的硬件指令伪码可以是如下:
Locate_Scene(front); //定位前轮胎画在何处;
Execute_program(htire); //在汽车的前面着色整个轮胎;
Locate_Scene(rear); //定位后轮胎画在何处;
Execute_program(htire); //在汽车的后面着色整个轮胎;
Locate_Scene(top); 定位汽车的车身画在何处;
Execute_program(hbody); //画车身(“hbody”是预先存
//储的程序,与“htire”相似
在如上编辑以识别并执行预存储API序列后,视频游戏源代码被存储在存储设备中以在以后执行。
图4示出上述示例程序的执行(未示出车身的着色)。该程序作为主机系统5中的图形应用程序45执行。指令“htire=Begin_Program”46的执行产生捕获例程50的一个函数调用,并初始化图3示出的基本过程。正在讨论的特定的例子的流程在图4中示出。
首先,捕获例程50设置标志以指示相应于API函数调用47的硬件指令是被存储于存储器20中而不是被执行。这样,如方框60a所示,API调用“Draw_Circle(100)”47a使得捕获例程执行指令以生成和存储相应的硬件指令。为此,捕获例程传递程序员指定的定义所希望的圆半径参数“100”,给基本着色函数“Draw_Circle()”18,包含寄存的I/O指令的,并存储寄存的指令至存储器20。
之后,如方框60b所示,响应下一个指令,“Fill_Circle(Black)”47b,捕获例程生成一个硬件指令,通过传递颜色参数“Black”至基本着色函数“Fill_Circle()”,用黑色填充圆,并存储寄存的指令至存储器20。
方框60c和60d与API指令47c和47d的响应相似。
之后,应用程序发出End_Program指令48,并且捕获例程如方框65所示响应。由Begin_Program指令设置的标志被复位,并且在上述过程中存储于存储器20中的累积硬件指令在主机系统5中寄存为可执行程序“htire”。
应用程序45继续执行。着色轮胎图象所需的所有硬件级指令作为可执行程序存储于存储器20中。结果,这样,每当应用程序希望在显示设备40上着色轮胎时,它简单地按希望的频率发出“Execute_Program(htire)”指令49,而图形子系统着色轮胎而不需要除了如Locate_Scene指令70a和70b指定定位图形以外的其它设备驱动器操作,并且之后初始化Execute_Program指令49指定的存储的硬件指令以物理着色图象。响应Execute_Program指令49,DLP25读取存储在存储器20中相应于的“htire”的硬件指令,并发出指令至加速器30。加速器执行寄存的指令以填充帧缓冲器35。之后,象素定义从帧缓冲器35扫描至显示设备40上以生成轮胎图象。
在以上的汽车着色例子中,Locate_Scene(front)70a和Locate_Scene(rear)70b伪码指令表示指定帧缓冲器位置操作,而使用被捕获硬件指令着色轮胎。一个复杂的情况是汽车由在Locate_Scene指令中指定的位置上的轮胎,车身等组装部件组成。
通过嵌套Execute_Program指令来着色汽车也是可能的。例如,调用“hcar”的主程序由激活″htire″,″hbody″d等等的Execute_Program指令组成。这些Execute_Program指令被Locate_Scene_Object指令处理,它指定相对于主场景,一个对象在主场景的哪个位置进行着色。之后,当″hcar″被捕获时,整个汽车由单一一个Execute_Program(hcar)指令着色。
如汽车着色例子所示,根据上述的本发明的方法和系统,本发明提供的一个优点是能够利用被捕捉的简单的可重定位的子场景作为硬件指令而有效地合成一个复杂的场景。帧缓冲器中的主场景位置被指定,然后使用被捕捉的硬件指令迅速地着色复杂场景而将子场景放入主场景中。
这个特征的细节可以由捕捉Locate_Scene操作本身并重定位子场景作为硬件指令而获得。示意性例子在以下伪码中示出:
//创建在右下角包含对角线的可重定位子场景
hprog=Begin_Program() //初始化捕捉例程以创建调用
//″hprog″的存储的程序
Locate_Scene_Object(20,20)//生成和存储硬件指令以定位
//相对于指定的主场景坐标的
//对象在坐标(20,20)
Draw_in_Object(0,0,10,10) //生成和存储硬件指令以着色
//10象素的对角线
End_Program(hprog) //结束捕捉例程并在主机系统上
//寄存″hpror″作为一个可执行程序
当如图2和3所示对应用程序45编码和在主机系统5上执行时,上述伪码将创建一个在存储器20中存储的包含硬件指令的程序,当由DLP25执行时,它将在有相对于主场景的指定坐标的迪卡尔(x,y)坐标(20,20)的帧缓冲器位置着色一个10象素对角线。
以下伪码示出使用被捕捉程序″hprog″以有效地在主场景中重定位和着色子场景的例子:
Locate_Scene(primary_scene,0,0) //定位一个子场景在主场
//景内的坐标(0,0)处
Execute_Program(hprog) //在相对于(0,0)的(20,20)处使
//用捕获的硬件指令着色子
//场景(10象素对角线)
Locate_Scene(primary_scene,55,59)//定位子场景在主场
//景内的(5 9,5 9)处
Execute_Program(hprog) //使用捕获的硬件指令在相对于
//(59,59)的(20,20)处着色子场景
当在应用程序45中执行时,以上的伪码例子将使得DLP 25执行捕获的硬件指令“hprog”,在标识为“主场景”的主场景内在坐标(20,20)和坐标(75,79)处着色包含10象素的对角线的子场景。
以上描述的本发明的概念有较宽的应用范围,且可用于从不同类型的由应用程序员指定的高级计算机程序指令序列中生成存储的可重用的硬件级指令。存储的硬件指令可以在子系统上执行,该子系统有主机操作系统要求的最小的操作,以减低对主机处理器周期和存储器的需求。
如上所述,本发明可以更好地在图形子系统的图象设备驱动器中作为计算机可执行指令实现。为此,设备驱动器代码可以驻留在任何计算机可用介质的适合的位置上,例如,在计算机的存储器中,作为主机操作系统的完全链接子程序。当未被实际完成时,该代码位于可携带计算机可用介质上,例如,磁带,软盘,硬盘,CD-ROM等等。
以上描述列举和说明了本发明。此外,以上公开只是示出和说明了本发明的最佳实施例,可以理解,本发明能够在不同的其它组合,修改和环境中使用,并可以结合以上的描述和/或本领域的现有技术,在本发明概念的范围内作出改变和修改。这里的实施例还用于解释实现本发明的最佳方式并使本领域的技术人员能够以这些或其它实施例和特定应用程序或使用本发明所需的不同的修改而利用本发明。这样,以上描述不是为了将本发明限制在在此公开的范围。而且,以下的权利要求书可以包括不同的实施例。
Claims (15)
1.一种图形着色的方法,包括以下步骤:
捕获:捕获由图形应用程序调用的基本着色函数而生成的硬件指令,在存储器中作为可执行程序;和
执行:在需要的时候在图形子系统上执行捕获的硬件指令,以着色图象。
2.如权利要求1的方法,其中所述捕获步骤包括以下步骤:
响应:通过生成相应于所述着色函数的硬件指令,响应界定基本着色函数序列的图形应用程序内的指令;
存储:在所述存储器中存储所述硬件指令;和
定义:定义所述存储的硬件指令作为主机操作系统可执行程序。
3.如权利要求1的方法,其中所述硬件指令通过传递用户定义的参数至一个基本着色函数集合中所包含的基本着色函数而生成。
4.如权利要求1的方法,其中所述执行步骤包括以下步骤:
利用图形处理器从存储器中发出捕获的硬件指令;和
利用图形加速器接收所述捕获的指令并将从捕获的指令导出的象素信息写入帧缓冲器,以着色图象。
5.一种进行图形着色的计算机系统,包括:
一个主机操作系统;和
一个图形子系统,包括进行着色操作的硬件;
捕获装置,用于响应在主机操作系统上运行的图形应用程序发出的指令,捕获由基本着色函数生成的图形子系统的硬件指令,在存储器中作为一个可执行程序,供所述硬件执行,其中基本着色函数是由图形应用程序调用的。
6.如权利要求5的计算机系统,其中所述捕获装置通过以下方式捕获所述硬件指令:
生成相应于所述着色函数的硬件指令,响应界定基本着色函数序列的所述图形应用程序中的指令;
存储所述硬件指令至存储器;和
定义所述存储的硬件指令作为一个主机操作系统的可执行程序。
7.如权利要求5的计算机系统,其中所述硬件指令是通过传递用户定义的参数至一个基本着色函数集合中所包含的基本着色函数而生成的。
8.如权利要求5的计算机系统,其中进行图形着色的所述硬件包括:
一个图形处理器,从存储器发出捕获的硬件指令;和
一个图形加速器,接收所述捕获的指令并将从所述捕获的指令导出的象素信息写入帧缓冲器,以着色图象。
9.一种执行高级计算机程序指令序列的方法,使用可重用硬件级指令,这些指令在需要时在主机操作系统的子系统上执行,包括以下步骤:
捕获:捕获由图形应用程序调用的基本着色函数而生成的硬件指令,在存储器中作为可执行程序;和
执行:在需要的时候在图形子系统上执行捕获的硬件指令。
10.如权利要求9的方法,其中捕获步骤包括以下步骤:
响应:通过生成相应于所述着色函数的硬件指令,响应界定基本着色函数序列的图形应用程序内的指令;
存储:在所述存储器中存储所述硬件指令;和
定义:定义所述存储的硬件指令作为主机操作系统可执行程序。
11.如权利要求9的方法,其中所述硬件指令通过传递用户定义的参数至一种硬件级函数集合中所包含的硬件级函数而生成。
12.一种执行图形着色的方法,包括以下步骤:
在图形应用程序中定义一个基本着色函数序列,作为存储器中被捕获的硬件指令序列;
执行包含定义的序列的图形应用程序,以产生被捕获硬件指令;和
执行捕获的硬件指令以着色图象。
13.如权利要求12的方法,其中所述定义步骤包括:
界定标识符之间的基本着色函数序列以激活捕捉过程。
14.如权利要求13的方法,其中所述图形应用程序的执行步骤是在有一个图形子系统的主机操作系统上进行的,并包括含有指令的软件用于:
通过生成相应于所述着色函数的图形硬件的硬件指令,响应界定基本着色函数序列的所述图形应用程序中的所述标识符;
存储所述硬件指令至存储器;和
定义所述存储的硬件指令作为一个主机操作系统的可执行程序。
15.一种进行图形着色的方法,包括以下步骤:
在存储器中捕获由图形应用程序调用的基本着色函数序列生成的硬件指令作为一个可执行程序,所述序列定义一个子场景;
为被着色的所述子场景指定在主场景中的位置;和
执行所述捕获的指令在被指定的位置着色所述子场景。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/283,386 US6952215B1 (en) | 1999-03-31 | 1999-03-31 | Method and system for graphics rendering using captured graphics hardware instructions |
US09/283,386 | 1999-03-31 | ||
US09/283386 | 1999-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1270366A CN1270366A (zh) | 2000-10-18 |
CN100342396C true CN100342396C (zh) | 2007-10-10 |
Family
ID=23085812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB001049232A Expired - Fee Related CN100342396C (zh) | 1999-03-31 | 2000-03-30 | 使用捕捉的图形硬件指令的图形着色方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6952215B1 (zh) |
JP (1) | JP3375074B2 (zh) |
KR (1) | KR100357296B1 (zh) |
CN (1) | CN100342396C (zh) |
TW (1) | TW463104B (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7209140B1 (en) * | 1999-12-06 | 2007-04-24 | Nvidia Corporation | System, method and article of manufacture for a programmable vertex processing model with instruction set |
US20050091576A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Programming interface for a computer platform |
US6828975B2 (en) * | 2001-03-01 | 2004-12-07 | Microsoft Corporation | Method and system for managing graphics objects in a graphics display system |
US10033700B2 (en) | 2001-12-12 | 2018-07-24 | Intellectual Ventures I Llc | Dynamic evaluation of access rights |
US7380120B1 (en) | 2001-12-12 | 2008-05-27 | Guardian Data Storage, Llc | Secured data format for access control |
US8065713B1 (en) | 2001-12-12 | 2011-11-22 | Klimenty Vainstein | System and method for providing multi-location access management to secured items |
US10360545B2 (en) * | 2001-12-12 | 2019-07-23 | Guardian Data Storage, Llc | Method and apparatus for accessing secured electronic data off-line |
US7219352B2 (en) * | 2002-04-15 | 2007-05-15 | Microsoft Corporation | Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays |
JP4718763B2 (ja) * | 2002-04-15 | 2011-07-06 | マイクロソフト コーポレーション | ビデオ・レンダラーとグラフィックス・デバイス・ドライバの間の相互作用を促進すること |
US7451457B2 (en) | 2002-04-15 | 2008-11-11 | Microsoft Corporation | Facilitating interaction between video renderers and graphics device drivers |
US7643675B2 (en) | 2003-08-01 | 2010-01-05 | Microsoft Corporation | Strategies for processing image information using a color information data structure |
US7158668B2 (en) * | 2003-08-01 | 2007-01-02 | Microsoft Corporation | Image processing using linear light values and other image processing improvements |
KR20080008137A (ko) | 2006-07-19 | 2008-01-23 | 삼성전자주식회사 | 영상 복원 장치 및 방법 |
KR100803216B1 (ko) | 2006-09-28 | 2008-02-14 | 삼성전자주식회사 | 3차원 그래픽 데이터를 저작하는 방법 및 장치 |
US7817154B1 (en) * | 2006-12-12 | 2010-10-19 | Nvidia Corporation | Graphics system with state transition caching |
US20090096792A1 (en) * | 2007-10-15 | 2009-04-16 | Ati Technologies Ulc | Fill mode determination in vector graphics |
US9792718B2 (en) | 2008-07-25 | 2017-10-17 | Qualcomm Incorporated | Mapping graphics instructions to associated graphics data during performance analysis |
CA2730291A1 (en) * | 2008-07-25 | 2010-01-28 | Qualcomm Incorporated | Performance analysis during visual creation of graphics images |
US8587593B2 (en) | 2008-07-25 | 2013-11-19 | Qualcomm Incorporated | Performance analysis during visual creation of graphics images |
WO2012045191A1 (en) * | 2010-10-05 | 2012-04-12 | Intel Corporation | System and method for multiple native software applications user interface composition |
CN102467737B (zh) * | 2010-11-04 | 2015-05-13 | 扬智科技股份有限公司 | 用于向量图形的线段对照表产生方法与产生装置 |
WO2013003567A2 (en) * | 2011-06-30 | 2013-01-03 | Google Inc. | Rendering a text image following a line |
US10154265B2 (en) | 2013-06-21 | 2018-12-11 | Nvidia Corporation | Graphics server and method for streaming rendered content via a remote graphics processing service |
KR101847262B1 (ko) | 2016-03-18 | 2018-05-28 | 연세대학교 산학협력단 | 하드웨어 가속기를 포함하는 메인 메모리 및 메인 메모리의 동작 방법 |
CN107797904B (zh) * | 2017-09-12 | 2021-12-24 | 福建天晴数码有限公司 | 一种测量响应时间的方法及终端 |
CN108717354B (zh) * | 2018-05-17 | 2021-12-17 | 广州多益网络股份有限公司 | 手机游戏渲染数据的采集方法、装置及存储设备 |
CN110942518B (zh) * | 2018-09-24 | 2024-03-29 | 苹果公司 | 上下文计算机生成现实(cgr)数字助理 |
CN110969685B (zh) * | 2018-09-28 | 2024-03-12 | 苹果公司 | 使用渲染图的可定制渲染管线 |
CN114669047B (zh) * | 2022-02-28 | 2023-06-02 | 荣耀终端有限公司 | 一种图像处理方法、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2181711Y (zh) * | 1993-03-02 | 1994-11-02 | 郭玉霞 | 图形分层产生装置 |
CN1173666A (zh) * | 1996-08-09 | 1998-02-18 | 三菱电机半导体软件株式会社 | 绘制多边形等图形的方法及显示控制装置 |
US5757364A (en) * | 1995-03-29 | 1998-05-26 | Hitachi, Ltd. | Graphic display apparatus and display method thereof |
US5764243A (en) * | 1995-03-24 | 1998-06-09 | 3Dlabs Inc. Ltd. | Rendering architecture with selectable processing of multi-pixel spans |
US5790125A (en) * | 1996-04-22 | 1998-08-04 | International Business Machines Corporation | System and method for use in a computerized imaging system to efficiently transfer graphics information to a graphics subsystem employing masked span |
US5812136A (en) * | 1996-10-30 | 1998-09-22 | Microsoft Corporation | System and method for fast rendering of a three dimensional graphical object |
US5821950A (en) * | 1996-04-18 | 1998-10-13 | Hewlett-Packard Company | Computer graphics system utilizing parallel processing for enhanced performance |
US5841439A (en) * | 1994-07-22 | 1998-11-24 | Monash University | Updating graphical objects based on object validity periods |
US5856829A (en) * | 1995-05-10 | 1999-01-05 | Cagent Technologies, Inc. | Inverse Z-buffer and video display system having list-based control mechanism for time-deferred instructing of 3D rendering engine that also responds to supervisory immediate commands |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61150059A (ja) | 1984-12-24 | 1986-07-08 | Sony Corp | デ−タ処理装置 |
JP2564805B2 (ja) * | 1985-08-08 | 1996-12-18 | 日本電気株式会社 | 情報処理装置 |
JPS6362079A (ja) | 1986-09-03 | 1988-03-18 | Agency Of Ind Science & Technol | グラフイツクデイスプレイ |
US5509115A (en) | 1990-08-08 | 1996-04-16 | Peerless Systems Corporation | Method and apparatus for displaying a page with graphics information on a continuous synchronous raster output device |
US5276798A (en) * | 1990-09-14 | 1994-01-04 | Hughes Aircraft Company | Multifunction high performance graphics rendering processor |
JP2558991B2 (ja) | 1992-04-06 | 1996-11-27 | 松下電器産業株式会社 | 視点・光源機能の属性追加交換直接操作システム |
AUPM704394A0 (en) | 1994-07-25 | 1994-08-18 | Canon Information Systems Research Australia Pty Ltd | Optimization method for the efficient production of images |
US5659407A (en) * | 1995-06-06 | 1997-08-19 | Apple Computer, Inc. | Method and system for rendering achromatic image data for image output devices |
JP3002406B2 (ja) | 1995-07-12 | 2000-01-24 | 株式会社ハドソン | グラフィックプロセッサ |
JP3038139B2 (ja) | 1995-08-30 | 2000-05-08 | 株式会社クボタ | グラフィックプロセッサ |
US6222542B1 (en) * | 1995-10-10 | 2001-04-24 | Anysoft, Ltd | Apparatus for and method of acquiring, processing and routing data contained in a GUI window |
US5657479A (en) * | 1995-12-04 | 1997-08-12 | Silicon Graphics, Inc. | Hierarchical display list processing in graphics data retrieval system |
US5675773A (en) * | 1995-12-21 | 1997-10-07 | Cirrus Logic, Inc. | Graphics display system with a low level hardware dependent graphics library |
US5793937A (en) | 1996-03-29 | 1998-08-11 | Peerless Systems Corporation | Fallback processing for page generation using memory reduction techniques |
KR970071323A (ko) | 1996-04-22 | 1997-11-07 | 포만 제프리 엘 | 그래픽 서브시스템 |
JP2768352B2 (ja) | 1996-05-24 | 1998-06-25 | 日本電気株式会社 | 図形描画処理システム |
US5995113A (en) * | 1996-08-02 | 1999-11-30 | Hewlett-Packard Company | Coloring events in event streams in order to provide information about operation of a software library |
US5889994A (en) | 1997-03-27 | 1999-03-30 | Hewlett-Packard, Co. | Method for cataloging graphics primitives by rendering state |
US5969728A (en) * | 1997-07-14 | 1999-10-19 | Cirrus Logic, Inc. | System and method of synchronizing multiple buffers for display |
-
1999
- 1999-03-31 US US09/283,386 patent/US6952215B1/en not_active Expired - Fee Related
-
2000
- 2000-03-22 TW TW089105241A patent/TW463104B/zh active
- 2000-03-23 KR KR1020000014747A patent/KR100357296B1/ko not_active IP Right Cessation
- 2000-03-28 JP JP2000088445A patent/JP3375074B2/ja not_active Expired - Fee Related
- 2000-03-30 CN CNB001049232A patent/CN100342396C/zh not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2181711Y (zh) * | 1993-03-02 | 1994-11-02 | 郭玉霞 | 图形分层产生装置 |
US5841439A (en) * | 1994-07-22 | 1998-11-24 | Monash University | Updating graphical objects based on object validity periods |
US5764243A (en) * | 1995-03-24 | 1998-06-09 | 3Dlabs Inc. Ltd. | Rendering architecture with selectable processing of multi-pixel spans |
US5757364A (en) * | 1995-03-29 | 1998-05-26 | Hitachi, Ltd. | Graphic display apparatus and display method thereof |
US5856829A (en) * | 1995-05-10 | 1999-01-05 | Cagent Technologies, Inc. | Inverse Z-buffer and video display system having list-based control mechanism for time-deferred instructing of 3D rendering engine that also responds to supervisory immediate commands |
US5821950A (en) * | 1996-04-18 | 1998-10-13 | Hewlett-Packard Company | Computer graphics system utilizing parallel processing for enhanced performance |
US5790125A (en) * | 1996-04-22 | 1998-08-04 | International Business Machines Corporation | System and method for use in a computerized imaging system to efficiently transfer graphics information to a graphics subsystem employing masked span |
CN1173666A (zh) * | 1996-08-09 | 1998-02-18 | 三菱电机半导体软件株式会社 | 绘制多边形等图形的方法及显示控制装置 |
US5812136A (en) * | 1996-10-30 | 1998-09-22 | Microsoft Corporation | System and method for fast rendering of a three dimensional graphical object |
Also Published As
Publication number | Publication date |
---|---|
US6952215B1 (en) | 2005-10-04 |
CN1270366A (zh) | 2000-10-18 |
JP3375074B2 (ja) | 2003-02-10 |
JP2000311240A (ja) | 2000-11-07 |
KR100357296B1 (ko) | 2002-10-19 |
TW463104B (en) | 2001-11-11 |
KR20010006855A (ko) | 2001-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100342396C (zh) | 使用捕捉的图形硬件指令的图形着色方法和系统 | |
US20220063089A1 (en) | Machine learning methods and apparatus related to predicting motion(s) of object(s) in a robot's environment based on image(s) capturing the object(s) and based on parameter(s) for future robot movement in the environment | |
US5825363A (en) | Method and apparatus for determining visible surfaces | |
CN1299244C (zh) | 一种三维场景动态建模和实时仿真的系统及方法 | |
CN1120419C (zh) | 图形渲染的方法和系统 | |
DE102020106714A1 (de) | Methoden und geräte für komplexe montage über autonome roboter mit verstärkungs-lernaktionsprimitive | |
CN1993712A (zh) | 用来建造块模型的建造指令的自动生成 | |
US11488351B2 (en) | Generating synthetic images and/or training machine learning model(s) based on the synthetic images | |
CN1093956C (zh) | 信息检索装置 | |
US6836700B2 (en) | System and method generating a trajectory for an end effector | |
JP2008165760A (ja) | グラフィックスを処理する方法および装置 | |
US6784896B1 (en) | Colorization of a gradient mesh | |
CN1860505A (zh) | 图形处理系统中的统一合成引擎的系统和方法 | |
CN101046891A (zh) | 纹理映射设备和方法 | |
CN1445715A (zh) | 便于模式识别的系统和方法 | |
CN1763786A (zh) | 用于3d中硬件加速的抗图形失真方法 | |
EP2992510A1 (en) | Tessellation of two-dimensional curves using a graphics pipeline | |
CN105531743A (zh) | 描绘装置 | |
US8416241B2 (en) | Efficient tile-based rasterization | |
CN1294539C (zh) | 三角多边形描绘装置和三角多边形描绘方法 | |
US6734855B2 (en) | Image editing system and method, image processing system and method, and recording media therefor | |
US8026912B1 (en) | System and method for structuring an A-buffer | |
CN1639767A (zh) | 显示控制方法、信息显示设备以及介质 | |
CN1110018C (zh) | 特征值抽取方法及设备 | |
JP5248958B2 (ja) | 3次元位置指定装置、3次元位置指定用プログラム、ボクセルモデリング装置およびボクセルモデリング用プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071010 Termination date: 20120330 |