CN101038663A - 简化绘图系统的脚本文件的方法及其系统 - Google Patents
简化绘图系统的脚本文件的方法及其系统 Download PDFInfo
- Publication number
- CN101038663A CN101038663A CNA2007101032777A CN200710103277A CN101038663A CN 101038663 A CN101038663 A CN 101038663A CN A2007101032777 A CNA2007101032777 A CN A2007101032777A CN 200710103277 A CN200710103277 A CN 200710103277A CN 101038663 A CN101038663 A CN 101038663A
- Authority
- CN
- China
- Prior art keywords
- instruction
- script file
- those
- resource
- input instructions
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在此提出一种简化绘图系统的脚本文件的方法及其系统。首先,接收脚本文件,而此脚本文件包含绘图系统的多个输入指令。接着,将每一个输入指令分类至资源,且称其属于该资源。然后,找出特定指令属于的该资源,并且保留属于该资源的该些输入指令,删除其余的输入指令。最后,最佳化所保留的该些输入指令。
Description
技术领域
本发明是关于一种简化绘图系统的脚本文件(script)的方法及其系统,且特别是关于一种保留脚本文件中特定渲染(rendering)指令所相关的资源内输入指令,并最佳化这些保留的输入指令的简化方法及其系统。
背景技术
随着计算机多媒体技术的发展,通过使用计算机即能精确地呈现现实世界中绚丽多彩的物体。通过应用程序界面(application program interface,API),程序设计人员所设计的软件只需调用应用程序界面内的程序,从而让应用程序界面自动地与硬件(例如:显示卡)的驱动程序沟通,便能启动图形处理功能。
一般而言,驱动程序开发者可以利用记录器(logger)将绘图系统的多个输入指令记录为脚本文件,通过播放此脚本文件的渲染程序来重现根源于显示驱动程序的程序错误。然而,目前的三维应用程序,例如:大型游戏、标准检查程序(benchmark),即使是一张画面(frame)的渲染也可能包含成千个绘制图元(primitive)指令,而一个有问题的像素渲染(rendering)可能出现在成千个好的像素渲染之后。此时,当开发者在重新播放脚本文件的渲染程序时,必须运转大量无关于有问题的像素渲染的上彩功能(rendering),例如:抖色(Dithering)、雾化(Fogging Haze)、消除边缘锯齿(Anti-Aliasing)等。
换而言之,假使开发者于实际图形芯片(graphic chip)中进行除错时,归因于硬件的高速运作,不必要的像素渲染不一定会耗费相当的时间。然而,在图形芯片的设计时期,开发者会使用软件来仿真图形芯片的算法,而在软件模型上实现这些像素的渲染是极为缓慢的,因此在有问题的像素渲染指令前,运转这些不必要的渲染指令会造成图形芯片的开发较无效率。
此外,由于有问题的渲染可能会使用到一些可渲染的纹理(render-abletexture)作为输入,而此可渲染的纹理内容为由先前渲染指令所决定,并非简易地将所有先前渲染指令删除即可节省运转这些先前渲染指令的时间。因而针对有问题的渲染,将不必要的渲染指令删除,以增进除错的效率成为目前精进及改善的目标。
有鉴于此,本发明设计一种简化器(simplifier)能自动地保留脚本文件中有问题的渲染所影响到的输入指令,并且删除没有问题的对象及其渲染,藉以仅对有问题的渲染进行分析及除错,大大地节省运转不必要输入指令的时间,增进开发的效率。
发明内容
本发明提供一种简化绘图系统的脚本文件的方法。此简化方法为将脚本文件内所有输入指令先分类至其所属的资源,再找出特定指令属于的资源,并且保留属于此资源的输入指令。通过脚本文件的简化来保留特定指令所影响到的输入指令,并最佳化所保留的输入指令,藉以有效地对这些保留的输入指令进行分析及除错。
本发明提出一种简化绘图系统的脚本文件的方法。此简化方法为先接收脚本文件,而此脚本文件包含绘图系统的多个输入指令,再将会改变纹理或缓冲器的内容的每一个输入指令分类至资源,并称此输入指令属于此资源。接着,找出特定渲染指令属于的资源,并保留属于此资源的输入指令,删除其余的输入指令。最后,最佳化所保留的输入指令。
上述的简化绘图系统的脚本文件的方法,在一实施例中还包括找出所保留的输入指令使用的多个着色器(shader),并删除所保留的输入指令之中的渲染指令未使用到的着色器的指令。
上述的简化绘图系统的脚本文件的方法,在一实施例中还包括比较所保留的输入指令所相关的多个状态,并保留最新的状态,其中这些状态包含渲染状态、纹理阶层状态、以及着色器常量三者之任一。
上述的简化绘图系统的脚本文件的方法,在一实施例中在找出特定指令属于的这些资源,并保留属于这些资源的输入指令的步骤中,还包括找出所保留的输入指令之中的渲染指令属于的这些资源,并保留属于这些资源的输入指令。
上述的简化绘图系统的脚本文件的方法,在一实施例中在最佳化所保留的输入指令步骤中,包括在所保留的输入指令之中找出会更改整个资源内容的任一输入指令,以及删除位于被找出的输入指令之前且与被找出的输入指令属于同一资源的输入指令。
从另一观点来看,本发明又提出一种简化绘图系统的脚本文件的系统。此简化系统包括记录器、简化器、以及播放器。记录器用以将绘图系统的多个输入指令记录为脚本文件。简化器用以将脚本文件所包含的输入指令分类,并依据特定渲染指令来简化脚本文件。播放器用以获取并语法分析简化的脚本文件的每一个输入指令,以播放简化的脚本文件所包含的输入指令。
上述的简化绘图系统的脚本文件的系统,在一实施例中简化器包括指令分类模块、指令分析模块、以及指令消除模块。指令分类模块用以将会改变纹理或缓冲器的内容的每一个输入指令分类至其所属的资源,并称其属于这些资源。指令分析模块用以找出特定渲染指令属于的这些资源,并保留属于这些资源的输入指令,删除其余的输入指令。指令消除模块用以从保留的输入指令中找出会更改整个资源内容的任一输入指令,删除被找出的输入指令之前且与被找出的输入指令属于同一资源的输入指令。
上述的简化绘图系统的脚本文件的系统,在一实施例中简化器还包括着色器消除模块。着色器消除模块用以找出保留的输入指令所使用的多个着色器(shader),并删除保留的输入指令中的渲染指令未使用到的着色器的指令。
上述的简化绘图系统的脚本文件的系统,在一实施例中简化器还包括比较分析模块。比较分析模块用以比较保留的输入指令中的渲染指令所相关的多个状态,并保留最新的该些状态,其中这些状态包含渲染状态、纹理阶层状态、以及着色器常量三者之任一。
本发明因采用一种简化器自动地对包含绘图系统的多个输入指令的脚本文件进行简化,通过将输入指令分类至其所属的资源、找出特定渲染指令属于的这些资源及保留属于这些资源的所有指令、以及将保留的输入指令最佳化的各步骤,仅保留特定渲染指令所影响到的输入指令,以能针对有问题的渲染分析及除错,亦能减少运转不必要指令的时间,大大增进开发程序的效率。
为让本发明的上述和其它目的、特征和优点能更明显易懂,下文特举本发明的较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1绘示为本发明的一实施例的简化绘图系统的脚本文件的系统。
图2绘示为本发明实施例图1中简化器的方块图。
图3绘示为本发明的另一实施例的简化绘图系统的脚本文件的方法。
[主要元件标号说明]
101:记录器
102:简化器
103:播放器
201:指令分类模块
202:指令分析模块
203:指令消除模块
204:着色器消除模块
205:比较分析模块
S301~S304:本发明的一实施例的简化绘图系统的脚本文件的方法的步骤
具体实施方式
图1绘示为本发明的一实施例的简化绘图系统的脚本文件的系统,此实施例以在三维图形中的应用进行详述,但本发明并不限于此。请参照图1,此简化系统100包含记录器101、简化器102、以及播放器103。记录器101为将绘图系统的多个输入指令记录为脚本文件。由简化器102自动地扫描此脚本文件,并从脚本文件之中找出及保留会影响有问题的渲染的输入指令,删除其余输入指令(细节后述)。其中有问题的渲染为特定渲染指令所造成之。
在简化器102将脚本文件简化后,传送简化的脚本文件至播放器103,由播放器103获取并语法分析简化的脚本文件所包含的输入指令,以重新播放简化的脚本文件的渲染程序。由于此简化的脚本文件仅包含影响有问题的渲染的输入指令,因此节省了播放器103运转不必要输入指令的时间,亦能有效的对有问题的渲染进行分析及除错。
以下便详细说明简化器102依据脚本文件所包含的输入指令来进行简化的过程。图2绘示为本发明实施例图1中简化器102的方块图。请参照图2,简化器102包括指令分类模块201、指令分析模块202、指令消除模块203、着色器消除模块204以及比较分析模块205。当指令分类模块201接收到记录器101所记录的脚本文件后,将会改变纹理或者缓冲器(例如:顶点缓冲器、顶点索引缓冲器)的内容的每一个输入指令分类至其所属的资源,亦可称此输入指令为属于这些资源。其中会改变纹理或者缓冲器的内容为包括渲染、纹理或缓冲器的加载、清除、从其一纹理转换(blt)至另一纹理...等处理。
另外,举例来说,由于特定渲染指令可能会用到可渲染的纹理(render-able texture),而可渲染的纹理内容为由特定渲染指令之前的输入指令(称之为先前输入指令)所决定,因此必须保留这些相关的先前输入指令。而指令分析模块202即为找出特定渲染指令所属于的这些资源,并且将属于这些资源的输入指令保留下来。值得一提的是,假使所保留的输入指令中具有渲染指令,则找出所保留的输入指令之中的渲染指令属于的资源,亦保留属于这些资源的输入指令。
接着由指令消除模块203来最佳化所保留的输入指令。此最佳化的过程为从所保留的输入指令中找出会更改整个资源内容的任一输入指令,并删除被找出的输入指令之前与被找出的输入指令属于同一资源的输入指令。由于被找出的输入指令会更改整个资源内容(例如:纹理或缓冲器的加载、清除...等),因此无须保留被找出的输入指令之前的输入指令。
此外,着色器消除模块204会找出所保留的输入指令使用到的着色器(shader),并且删除所保留的输入指令之中的渲染指令未使用到的着色器的创建指令。由于在重新播放脚本文件的渲染程序中,着色器不同于资源,一旦创建了便不会改变,只须判断是否需要使用着色器,因此将所保留的输入指令之中的渲染指令未使用到的着色器的创建指令删除。而比较分析模块205为将所保留的输入指令中的渲染指令所相关的状态做比较,以保留最新的状态。而这些状态为渲染状态(例如:光罩是否打开、雾状是否打开、视角位置...等)、纹理阶层状态、着色器常量其中之一。
如上述实施例的说明,在此可以归纳为下列的方法流程。图3绘示为本发明的另一实施例的简化绘图系统的脚本文件的方法。请参照图3,首先,简化器102接收脚本文件(步骤S301),此脚本文件由记录器101所记录之,且包含绘图系统的多个输入指令。而简化器102将会改变纹理或者缓冲器的内容的输入指令分类至其所属的资源(步骤S302),且称其为属于此资源。接着,简化器102依据特定渲染指令,找出此特定渲染指令属于的资源,并保留脚本文件中属于这些资源的输入指令,删除其余输入指令(步骤S303)。最后再最佳化所保留的输入指令(步骤S304)。
综上所述,本发明实施例为通过简化器将包含绘图系统的多个输入指令的脚本文件简化,得以保留特定渲染指令所影响到的输入指令,并删除其余的输入指令。假使保留的输入指令中具有渲染指令,还可从脚本文件中删除渲染指令未使用到的着色器的创建指令加以简化,或者比较这些渲染指令相关的状态,仅保留最新状态即可。因此,通过简化的脚本文件,得以针对有问题的渲染进行分析及除错,而在重新播放简化的脚本文件的渲染程序过程中,更可节省运转不必要指令的时间,以及提升开发程序的效率。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。
Claims (11)
1.一种简化绘图系统的脚本文件的方法,包括下列步骤:
接收脚本文件,其中该脚本文件包含多个输入指令;
将每一该些输入指令分类至资源,并称其属于该资源;
找出特定指令属于的该资源,并保留属于该资源的该些输入指令,删除其余的输入指令;以及
最佳化所保留的该些输入指令。
2.根据权利要求1所述的简化绘图系统的脚本文件的方法,其中,该些输入指令为会改变纹理或缓冲器的内容的指令,以及该特定指令为渲染指令。
3.根据权利要求1所述的简化绘图系统的脚本文件的方法,还包括下列步骤:
找出保留的该些输入指令所使用的多个着色器,并删除所保留的该些输入指令之中的渲染指令未使用的该些着色器的指令;以及
比较所保留的该些输入指令所相关的多个状态,并保留最新的该些状态。
4.根据权利要求4所述的简化绘图系统的脚本文件的方法,其中该些状态包含渲染状态、纹理阶层状态、以及着色器常量三者之任一。
5.根据权利要求1所述的简化绘图系统的脚本文件的方法,其中找出该特定指令属于的该资源,并保留属于该资源的该些输入指令,还包括下列步骤:
找出所保留的该些输入指令中的指令属于的该些资源,并保留属于该些资源的该些输入指令。
6.根据权利要求1所述的简化绘图系统的脚本文件的方法,其中最佳化所保留的该些输入指令包括下列步骤:
于所保留的该些输入指令中找出会更改整个资源内容的任一输入指令;以及
删除位于被找出的该输入指令之前且与被找出的输入指令属于同一资源的该些输入指令。
7.一种简化绘图系统的脚本文件的系统,包括:
记录器,用以将绘图系统的多个输入指令记录为脚本文件;
简化器,用以将该脚本文件所包含的该些输入指令分类,并依据特定指令简化该脚本文件;以及
播放器,用以获取并语法分析简化的该脚本文件的每一该些输入指令,以播放简化的该脚本文件所包含的该些输入指令。
8.根据权利要求7所述的简化绘图系统的脚本文件的系统,其中该简化器包括:
指令分类模块,用以将每一该些输入指令分类至其所属的资源,并称其属于该资源;
指令分析模块,用以找出特定指令属于的该资源,并保留属于该资源的该些输入指令,删除其余的输入指令;以及
指令消除模块,用以从所保留的该些输入指令中找出会更改整个资源内容的任一输入指令,删除位于被找出的该输入指令之前且与被找出的输入指令属于同一资源的该些输入指令。
9.根据权利要求8所述的简化绘图系统的脚本文件的系统,其中该些输入指令为会改变纹理或缓冲器的内容的指令,以及该特定指令为渲染指令。
10.根据权利要求7所述的简化绘图系统的脚本文件的系统,其中该简化器还包括:
着色器消除模块,用以找出保留的该些输入指令所使用的多个着色器,并删除保留的该些输入指令中的指令未使用的该些着色器的指令;以及
比较分析模块,用以比较所保留的该些输入指令所相关的多个状态,并保留最新的该些状态。
11.根据权利要求10所述的简化绘图系统的脚本文件的系统,其中该些状态包含渲染状态、纹理阶层状态、以及着色器常量三者之任一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101032777A CN100527162C (zh) | 2007-05-10 | 2007-05-10 | 简化绘图系统的脚本文件的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101032777A CN100527162C (zh) | 2007-05-10 | 2007-05-10 | 简化绘图系统的脚本文件的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101038663A true CN101038663A (zh) | 2007-09-19 |
CN100527162C CN100527162C (zh) | 2009-08-12 |
Family
ID=38889547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101032777A Active CN100527162C (zh) | 2007-05-10 | 2007-05-10 | 简化绘图系统的脚本文件的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100527162C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111179150A (zh) * | 2019-12-27 | 2020-05-19 | 浙江大学 | 一种基于绘制指令流的着色器自动简化方法和系统 |
CN115729557A (zh) * | 2022-11-16 | 2023-03-03 | 格兰菲智能科技有限公司 | 脚本处理方法和装置 |
-
2007
- 2007-05-10 CN CNB2007101032777A patent/CN100527162C/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111179150A (zh) * | 2019-12-27 | 2020-05-19 | 浙江大学 | 一种基于绘制指令流的着色器自动简化方法和系统 |
CN115729557A (zh) * | 2022-11-16 | 2023-03-03 | 格兰菲智能科技有限公司 | 脚本处理方法和装置 |
CN115729557B (zh) * | 2022-11-16 | 2024-01-26 | 格兰菲智能科技有限公司 | 脚本处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100527162C (zh) | 2009-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8284207B2 (en) | Method of generating digital images of objects in 3D scenes while eliminating object overdrawing within the multiple graphics processing pipeline (GPPLS) of a parallel graphics processing system generating partial color-based complementary-type images along the viewing direction using black pixel rendering and subsequent recompositing operations | |
CN100342403C (zh) | 使用图案阴影来产生阴影效果的方法与装置 | |
JP4598031B2 (ja) | 加速された開始タイル探索 | |
US9928565B2 (en) | Flex rendering based on a render target in graphics processing | |
JP5866457B2 (ja) | オーバドロー・トラッカを用いたグラフィック処理におけるダイレクト・レンダリングとビニングとの切替 | |
US9292414B2 (en) | System, method, and computer program product for debugging graphics programs locally utilizing a system with a single GPU | |
US8063903B2 (en) | Edge evaluation techniques for graphics hardware | |
US10796478B2 (en) | Dynamic rendering for foveated rendering | |
US7876332B1 (en) | Shader that conditionally updates a framebuffer in a computer graphics system | |
US6618053B1 (en) | Asynchronous multilevel texture pipeline | |
US20160035129A1 (en) | Control of a sample mask from a fragment shader program | |
CN1287330C (zh) | 用于区带渲染的有效图形状态管理 | |
US7847798B1 (en) | Clipping and culling artwork using a graphics processing unit | |
US20090135190A1 (en) | Multimode parallel graphics rendering systems and methods supporting task-object division | |
US8917281B2 (en) | Image rendering method and system | |
US8547395B1 (en) | Writing coverage information to a framebuffer in a computer graphics system | |
US10140268B2 (en) | Efficient browser composition for tiled-rendering graphics processing units | |
US7898549B1 (en) | Faster clears for three-dimensional modeling applications | |
US8416241B2 (en) | Efficient tile-based rasterization | |
US7817151B2 (en) | Hardware corrected software vertex shader | |
CN116210029A (zh) | 深度缓冲区预处理 | |
US8773447B1 (en) | Tag logic scoreboarding in a graphics pipeline | |
CN101038663A (zh) | 简化绘图系统的脚本文件的方法及其系统 | |
EP2728551B1 (en) | Image rendering method and system | |
JP5864474B2 (ja) | 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180322 Address after: 6 floor, G District, No. 666, Beijing East Road, Huangpu District, Shanghai Patentee after: Weisheng Electronics (Shanghai) Co. Ltd. Address before: Taiwan County, Taipei, China Patentee before: Weisheng Electronic Co., Ltd. |
|
TR01 | Transfer of patent right |