201108157 六、發明說明: 【發明所屬之技術領域】 、 本發明係關於提供圖形應用分析之技術。 【先前技術】 電腦應用所使用之圖形日趨複雜。例如,遊戲應用通 常提供在即時之基礎上製作動畫的三維圖形。此圖形也越 來越逼真。 隨著此圖形之複雜度增加,應用硏發者之挑戰也加大 °例如,硏發者必須修正圖形著色之誤差,其係因未操作 或操作不當或顯示不正確所致。再者,硏發者必須以有限 之處理能力解決。因此,由圖形著色所生之處理負荷必須 加以分析且經常改善,以在此有限之處理能力內適應。 用於測試、分析、及修正圖形誤差的工具對於圖形應 用之硏發而言是相當重要的。 【發明內容】及【實施方式】 本發明之實施例提供圖形應用之分析技術。例如,一 設備可包括一圖形應用程式介面(API )、一圖形引擎、 及一圖形分析工具。圖形分析工具可以接收到發給圖形 API之多數個繪圖呼叫,並將繪圖呼叫配置成多數個序列 ,各序列係對應於一特定著色目標。由於此項資訊,許多 分析工作即可執行。例如,可以產生過度繪圖影像。再者 ,像素歷史可以基於對應之像素選擇而產生。繪圖呼叫在 -5- 201108157 所選擇像素上之效果也得以決定。此外,這些工作可在每 一著色目標之基礎上執行。 本說明書全文內有關之「某一實施例」或「一實施例 」是指關於該實施例所揭述之一特定特性、結構、或特徵 亦包括在至少一實施例內。因此,「在某一實施例中」或 「在一實施例中」等用語出現在本申請書全文內之不同處 並不需要皆視之爲同一實施例。再者,特定特性、結構、 或特徵可在一或多個實施例中以任意適當方式組合。 圖1係一示範性操作環境1 00之示意圖,其可使用本文 內所述之技術。環境1 00可包括多數個元件。例如,圖1揭 示環境100包括一圖形應用102、一圖形應用程式介面( API) 104、一圖形引擎106、及一圖形分析工具110。這 些元件可以在硬體及/或軟體之任意組合型態中實施。再 者,這些實施例並不拘限於圖1之元件。 在實施例中,圖形應用1 02係一電腦應用(例如一使 用者應用),其使用被輸出至一或多個顯示器上之圖形( 例如三維圖形)。示範性使用者應用包括(但是不限定於 )電動遊戲及模擬工具。 圖形API 104將圖形引擎106之多項服務提供於圖形應 用102。在實施例中,此可透過許多程序、資料結構、物 件等級、及/或協定來提供。圖形API 1〇4之該使用情形 在本文內係稱爲「繪圖呼叫」。這些實施例可以使用(但 是不限定於)市面上有售之APIs。此APIs之範例包括 OpenGL、DirectX、及其他。 -6- 201108157 在一般操作中,圖形應用102可以使用圖形產生中之 多數個著色目標。一著色目標係一受到繪圖操作影響之緩 衝器(由圖形引擎106維持),使圖形應用1〇2經由圖形 API 1 04啓始。 多數個著色目標可依不同方式使用。例如,圖形應用 102可以使用多數個著色目標,其中各著色目標係對應於 一特定效果。示範性效果包括(但是不限定的有)與動作 有關之陰影、起霧、打光、模糊等等。此外或另者,多數 個著色目標各者可以對應於一或多個著色物件或原件。惟 ,這些實施例並不限於著色目標的這些示範性使用情形。 圖形引擎106針對圖形應用1〇2執行圖形操作。如上所 述,這些操作可以反應於所收到之繪圖呼叫而執行,並透 過圖形API 1〇4處理。示範性操作包括著色及輸出影像( 訊框)至一顯示裝置。因此,圖形引擎106使用一圖形管 線(graphics pipeline)。如上所述,圖形引擎106可以在 硬體及/或軟體之任意組合型態中實施使用。因此,在實 施例中,圖形引擎106包括一圖形處理單元(GPU )。 圖1揭示圖形分析工具110聯結於圖形API 104與圖形 引擎106兩者。圖形分析工具1 10可以執行與圖形應用分析 有關之操作。欲達成此目的,圖形分析工具110可以取得 由圖形應用102發出之繪圖呼叫。基於這些繪圖呼叫,圖 形分析工具1 10可以使用圖形引擎106產生與繪圖呼叫有關 之操作資訊。這些資訊可包括(但是不限定的有)過度繪 圖影像及像素歷史。 201108157 再者,圖形分析工具110可以取得(或擷取)由圖形 引擎106提供之訊框。再者,圖形分析工具1 1〇可以取得與 此擷取訊框相關之繪圖呼叫。更有甚者’圖形分析工具 1 1 〇可以控制與圖形應用1 02相對應之訊框產生的速率。透 過此項控制,訊框可依一所需之速度前進。此一速度可由 一使用者建立。 如參考於圖1所述,圖形分析工具11 〇可以執行與圖形 應用分析有關之操作。圖2係一示範性實施方式200之示意 圖,其可包括在圖形分析工具11〇內。圖2揭示實施方式 2 00包括一圖形API截取模組202、一圖形API呼叫日誌資料 庫2 04、一重建模組206、一過度繪圖分析模組207、一像 素歷史分析模組208、一使用者介面模組210、及一訊框儲 存模組2 1 2。這些元件可以在硬體及/或軟體之任意組合 型態中實施。 圖形API截取模組202複製圖形API操作(在本文內稱 之爲繪圖呼叫),以產生一圖形應用(例如圖形應用1 02 )。再者,圖形API截取模組202將複製之繪圖呼叫傳送至 圖形AP I呼叫日誌資料庫2 04。接著,圖形AP I呼叫日誌資 料庫204儲存這些收到的繪圖呼叫。 圖形API呼叫日誌資料庫204可用多種方式儲存所接收 到的繪圖呼叫。例如,圖形A PI呼叫日誌資料庫2 0 4可以按 時間先後儲存繪圖呼叫。另外,此按時間先後之儲存可藉 由繪圖呼叫而配置,以用於多個著色目標之每一者。 重建模組2 06可以基於API呼叫日誌資料庫204中所儲 201108157 存之繪圖呼叫而產生不同影像(訊框)。這些重建牽涉到 一圖形引擎之使用,例如圖形引擎1 〇6。再者’在產生這 些影像時,重建模組206可以指示圖形引擎使用特定之設 定。例如,設定可被改變,使得著色影像指出所發生之特 殊事件(例如過度繪圖)數。再者,重建模組206可以啓 動或停止圖形引擎內之不同管線測試。 過度繪圖分析模組207 (在一單位著色目標之基礎上 )判斷與特定繪圖呼叫相關聯之過度繪圖。這牽涉到指示 重建模組206產生許多以過度繪圖影像爲主而選擇(使用 者選擇或自動選擇)之繪圖呼叫及著色目標。與此特性有 關之示範性操作將參考圖4說明於後。 像素歷史分析模組2 0 8判斷一序列之繪圖呼叫,其可 令一像素被寫入(觸碰這牽涉到指示重建模組2 0 6根 據不同設定以產生特定影像。與此特性有關之示範性操作 將參考圖5、6、及7說明於後。 使用者介面模組210提供使用者可與圖形分析工具11〇 互動。例如’在實施例中,使用者介面模組2 1 0即提供一 圖形使用者介面,以提供本文內所述技術之有效率使用者 操作。 訊框儲存模組2 1 2儲存一或多個由—圖形引擎(例如 圖形引擎1 06 )產生之訊框(影像)。這些訊框包含多數 個像素,其係對應於可在一顯示裝置(圖中未示)上輸出 之位置。這些訊框可以是不同格式。示範性訊框包括(但 是不限定的有)不同之RGB與CMYK格式。再者,訊框擷 201108157 取資料庫1 0 8可以使用不同壓縮及/或編碼架構,以儲存 訊框。 在實施例中,這些訊框可以根據本文內所述之技術產 生。例如,訊框儲存模組2 1 2可以儲存透過應用1 02、圖形 API 104、及圖形引擎106之正常操作而產生之訊框。再者 ,訊框儲存模組2 1 2可以儲存包含有過度繪圖影像訊框、 像素歷史訊框、及其他類型訊框之訊框。 這些實施例皆提供一使用者介面,其將圖形相關之資 訊顯示予一使用者。圖3係一示範性使用者介面(亦稱爲 —介面控制台)3 00之示意圖。介面控制台300可供一使用 者觀看與圖形操作相關聯之不同資訊。如圖3中所示,介 面控制台3 00包括一繪圖呼叫區302、一著色目標區304、 —影像著色區306'及一像素歷史區308。 著色目標區304指出多數個與一特定影像相關聯之著 色目標。在實施例中,這些著色目標可以用圖符(icons ) 或其他圖形表示法表示。一使用者可以透過GUI互動(例 如利用游標定位及雙擊)而選擇一特定之繪圖呼叫。 在實施例中,繪圖呼叫區3 02指出在一按時間先後( 例如從左至右)之條形圖中之繪圖呼叫(例如對應於一在 區3 04選出之著色目標的繪圖呼叫)。因此,各條形即對 應於一特定之繪圖呼叫。再者,各條形之高度表示由對應 之繪圖呼叫造成的圖形引擎操作(例如管線操作)之數量 。在實施例中,一使用者可以透過GUI互動(例如利用游 標定位及雙擊)而選擇一特定之繪圖呼叫。 -10- 201108157 基於一選出之繪圖呼叫,使用者可以觀看影像著色區 3 〇6中之一過度繪圖影像。與過度繪圖影像相關之特性係 參考圖4說明於後。由此過度繪圖影像,使用者可選擇一 特定像素以供分析。由此像素選擇,像素歷史影像可以顯 示於影像著色區3 06中。再者,繪圖呼叫之一相對應像素 歷史可以顯示於像素歷史區308中。有關於像素歷史之示 範性詳細說明將參考圖5-7提供於後。 用於不同實施例之操作可以參考以下圖式及伴隨之範 例而進一步揭述。有些圖式可包括一邏輯流程圖。儘管本 文內所呈現的這些圖式可包括一特定之邏輯流程圖,可以 瞭解的是邏輯流程圖僅提供本文內所述之大致功能如何實 施的一範例。再者,給定之邏輯流程圖並不必然一定要依 其順序執行,除非另有指示。此外,給定之邏輯流程圖可 由一硬體元件、一由一或多個處理器執行之軟體元件、或 其任意組合實施。這些實施例並不拘限於本文。 這些實施例提供許多技術以分析圖形應用。這些技術 是關於過度繪圖、像素歷史、繪圖呼叫等等之分析。再者 ,這些技術可以使用替代性影像重建與表示法。 這些替代性重建與表示法有利於容許性能相關之資訊 較快速地從一圖形背景擷取。這些替代性重建與表示法之 一範例牽涉到在一單位著色目標之基礎上執行的過度繪圖 分析。由此分析’即可產生對應之像素歷史。這些特性有 利於提供作爲從一序列之圖形操作中擷取其他隱藏資訊。 牽涉到此一過度繪圖分析與像素歷史產生之一範例係參考 -11 - 201108157 圖4說明於後。 圖4揭示一邏輯流程圖400’其可以作爲由一或多個實 施例執行之操作的代表。此流程圖揭述於圖1及2之內文中 。惟,此流程圖也可以使用在其他內文中。儘管圖4揭示 一特定序列,但是其他序列也可以使用。再者,所述之操 作可用不同之並行及/或順行組合執行。 在一方塊402,儲存一序列之圖形API呼叫(繪圖呼叫 )。此序列可對應於一特定影像(訊框)。在圖2之內文 中,此牽涉到用於截取這些繪圖呼叫之API截取模組202、 及用於將其儲存之圖形API呼叫日誌資料庫204。 在一方塊4〇4,所儲存之API呼叫序列儲存成多數序列 ,以供多數個著色目標之各者使用。參閱圖2,此牽涉到 用於從各API呼叫中判斷著色目標之重建槙組206。在實施 例中’重建模組206可以使用一圖形引擎(例如圖形引擎 106 )進行此動作。 針對各著色目標群,一過度繪圖影像係在一方塊406 產生。復參閱圖2,此牽涉到用於指示一圖形引擎(例如 圖形引擎106)以針對各著色目標而執行繪圖呼叫之重建 模組2〇6。惟,取代正常操作,圖形引擎係依一方式設定 ’以致使像素値得以累積。較特別的是,圖形引擎可經設 定使繪圖呼叫每當其被寫入(觸碰)時就令對應之著色目 標像素値累積(增加一像素點擊計數)。因此,在每一著 色目標中’各像素即產生一計數。此計數表示像素被觸碰 到多少次》 -12- 201108157 在一方塊408,選擇其中一著色目標。此項選擇可由 一使用者或自動進行。在實施例中,此著色目標可以選自 一顯示器上所提供一列表之多數個著色目標(例如,像是 圖符或其他圖形表示法)。 在一方塊4 09,供該選擇之著色目標用的過度繪圖影 像可在視覺上加強。此加強作用牽涉到增加過度繪圖影像 之動態範圍。有關此加強作用之細節將參考圖8說明於後 〇 在一方塊410,過度繪圖影像係顯示以用於該選擇之 著色目標。如上所述,過度繪圖影像代表像素已被觸碰到 之次數。在實施例中,這些次數可以由顯示過度繪圖影像 中之像素亮度代表。惟,實施例並不限於此特性。 此過度繪圖影像之一或多個對應像素可以在一方塊 412選擇。此項選擇可由一使用者或透過自動技術達成。 使用者選擇牽涉到透過一圖形使用者介面(GUI )而與過 度繪圖影像互動。例如,使用者可以透過一游標、透過圖 形瞄準器、透過數位座標輸入、及/或透過其他技術而選 擇像素。另者,自動選擇牽涉到基於其過度繪圖値而自動 選擇像素。例如,指出最高觸碰次數之像素即可以被自動 選擇。 在一方塊414,一用於一或多個選擇像素各者之像素 歷史係可被取用於使用者。像素歷史可包含影響到(或造 成寫入至)像素之各繪圖呼叫。在實施例中,這些繪圖呼 叫僅受限於會影響到在方塊40 8選出之著色目標者。惟, -13- 201108157 這些實施例可以另行或替代性提供會影響到其他著色目標 的對應繪圖呼叫。 這個像素歷史可在一方塊416顯示。在實施例中,此 顯示可以是一序列圖符之形式且各圖符代表一繪圖呼叫。 —使用者可在此一圖符上選擇(例如雙擊),以觀看有關 於繪圖呼叫之詳細資訊。惟,其他顯示像素歷史(例如文 字列表)之技術也可以使用。 圖4之流程圖有利於提供一直接方式,以從背景中之 最複雜像素擷取資訊。例如,從方塊4 1 0顯示之過度繪圖 影像,即可選擇一被觸碰較多次之像素(亦稱之爲一具有 高複雜度之像素)。如上所述,這些像素可以透過其顯示 亮度而變得明顯。 當選擇一具有高複雜度之像素時,使用者可以看到影 響像素(像素歷史)之API呼叫。此外,使用者可以看到 影像之一正常表示法(並非一過度繪圖表示法)。透過分 析繪圖呼叫,使用者可以判斷是否可以形成一組較有效率 之API呼叫。因此,透過此像素之識別,硏發人員可以改 善應用,以減少像素之繪圖次數。此有利於增加圖形應用 性能。 如上所述,這些實施例提供用於與像素相關之資訊的 擷取。再者,這些實施例可以告知使用者有關於繪圖呼叫 導致像素被觸碰到之次數。一單一繪圖呼叫可以觸碰到一 特定像素一次以上。例如,一命令一圖形引擎(例如圖形 引擎1 06 )著色一三維物件之繪圖呼叫可以使圖形引擎將 -14 - 201108157 重疊於像素位置之表面著色。舉例而言,一著色之立方體 可以有重疊的前與後側面。這些實施例可以(針對一特定 著色目標)每次偵測及指出一已受到一特定繪圖呼叫觸碰 之像素。一牽涉到此特性之範例係參考圖5揭述於後。 圖5揭示一邏輯流程圖500,其可以作爲由一或多個實 施例執行之操作的代表。此流程圖揭述於圖1及2之內文中 。惟,此流程圖也可以使用在其他內文中。儘管圖5揭示 一特定序列,但是其他序列也可以使用。再者,所述之操 作可用不同之並行及/或順行組合執行。 在一方塊5 02,選擇一著色目標。此項選擇可由一使 用者進行。或者,此項選擇可以自動進行。再者,在一方 塊504,選擇一或多個像素。此像素可用多種方式選擇。 例如,此像素可以是使用者選擇或自動選擇式過度繪圖, 如參考圖4所述者。惟,這些實施例並不受限於本文。 在一方塊5 06,使用者選擇一與所選出像素相對應之 繪圖呼叫。例如,使用者可以從多數個在一像素歷史中辨 識的繪圖呼叫(例如,一序列之繪圖呼叫)選擇出此繪圖 呼叫,例如一在圖4之方塊41 4處產生的像素歷史。據此, 如果這是在一序列中之第一次選擇,這些實施例可以在方 塊5 07將其指定爲一初選繪圖呼叫。 此時,關於所選擇像素(在選出之著色目標中)被觸 碰次數之資訊可在一方塊509處決定。在實施例中,這項 決定可以是針對選擇之繪圖呼叫。或者,這項決定可以是 針對一序列之繪圖呼叫,其藉由在方塊507指定之初始繪 -15- 201108157 圖呼叫開始且藉由在方塊5 0 6選擇之繪圖呼叫結束。 如圖5中所示,這些決定可牽涉到多數個操作。例如 ,一第一次操作可牽涉到執行繪圖呼叫且不作動任何圖形 管線試驗。再者,一第二次操作可牽涉到執行繪圖呼叫且 作動特定之圖形管線試驗。再者,一第三次操作可牽涉到 執行繪圖呼叫且具有初始混合(alpha blending)。方塊 5 09內的這三次操作僅爲揭述之目的,而非限制。據此, 這些實施例可以使用操作及/或其他序列之其他組合型態 。關於這些傳送之進一步詳細內容係參考圖6說明於後。 在一方塊510,使用者可選擇下一繪圖呼叫。此下— 繪圖呼叫可以是一按時間先後序列之繪圖呼叫,其影響到 所選擇之著色目標中的選擇像素。例如,此下一繪圖呼叫 可以是一緊跟在最近選出(在方塊506或方塊510)之繪圖 呼叫後的繪圖呼叫。如圖5中所示,如果選出一下一繪圖 呼叫,則操作即回到方塊5 0 9。 因此,圖5之特性可供一使用者選擇一或多個關注之 繪圖呼叫,並分析其(或它們)在特定像素上之影響。這 些特性有利於允許在一特定著色目標之任意像素上之一背 景複雜度被評估。此資訊有利於協助使用者決定是否要減 少一特定背景之複雜度或調整應用設定,以增加特定3D操 作之性能。 如上所述,關於一選擇像素(在選出之著色目標中) 被觸碰次數之資訊可在多數次操作中決定。例如,這些多 次操作之一範例係由圖6提供。 -16- 201108157 特別是,圖6係一流程圖600,其包括一第一次操作 602、一第二次操作604、及一第三次操作606。這些操作 各牽涉到多數個操作。例如,圖6揭示第一次操作602包括 方塊610-614。在方塊610,停止特定之圖形管線試驗(例 如,剪切試驗、長方形試驗、Z形試驗、模版試驗、及/ 或初始試驗)。在方塊612,判斷當這些試驗停止時繪圖 呼叫觸碰到選擇像素多少次。此牽涉到以調整過之著色操 作執行繪圖呼叫。例如,像素遮影器碼可經調整使得每次 像素被繪圖呼叫觸碰時,選擇像素之陰影即增加(例如增 加1 )。惟,實施例並不限於此技術。 這項判斷之結果係在方塊6 1 4時輸出至使用者。這些 結果可以是輸出之圖形形式(例如顯示於選擇之像素位置 ,做爲一相對應之亮度、陰影、或透明度)。或者,這些 結果可以是文字輸出形式。 圖6揭示第二次操作604包括方塊620-632。在方塊620 ,使用者可以開始一特定試驗。例如,使用者可以開始一 系列之剪切試驗、一 Z形試驗、或一模版試驗。在一方塊 622,判斷是否已選擇一試驗。如果是,操作即進行至方 塊624。否則,操作會進行至一第三次操作而在一方塊640 處。 在方塊6 24,將選出之著色目標清除。隨後,在一方 塊626處,選出之試驗係在圖形引擎中被致能。在一方塊 628,執行繪圖呼叫。 在一方塊630處,這些繪圖呼叫之結果係輸出至使用 -17- 201108157 者。這些結果可以是輸出之圖形形式(例如顯示於選擇之 像素位置,做爲一相對應之亮度或透明度)。或者,這些 結果可以是文字輸出形式。如果結果是零(無像素値), 這表示選出之試驗在每次喚起時皆失敗。惟,如果結果不 是零,則選出之試驗在至少一次喚起時會成功。 如一方塊63 2所示,使用者可以選擇另一試驗。如果 是這樣,操作即回到方塊6 2 0。否則,操作會進行至第三 次操作而在方塊640處。 圖6揭示第三次操作包括一方塊640。在此方塊,執行 一正常著色以決定像素之輸出顏色。 進一步參考圖6之流程,現在提供多數個關於一像素 已被觸碰次數之非限制性說明範例。例如,「觸碰」之次 數可以是一著色幾何形狀與像素相交之次數。例如,當被 著色之幾何形狀係一含有二側面三角形之球體時,中央像 素將有一過度繪圖計數値2:—爲前面,一爲背面(Z形試 驗在此情況下係停止)。再者,如果被著色之幾何形狀係 一含有一側面三角形之球體時,中央像素將有一過度繪圖 計數値1:—爲前面,零爲背面(因爲其背面剔除(在此 情況下致動剔除))。 再者,「觸碰」之次數可以是像素實際寫入至緩衝器 之次數(將幾何形狀遭Z形試驗拒絕之次數排除)。例如 ,當將三個從視者觀點來看是在彼此之上的三角形著色時 ,觸碰次數即取決於繪圖順序。例如,如果先畫最遠者、 接著是中間、及接著是最近者,則對於所有三個三角形重 -18- 201108157 疊之像素而言’其計數値爲3。惟,如果先畫最近者、接 著是中間、及接著是最遠者,則對於相同像素而言,其計 數値爲1。這是因爲後兩者已被Z形試驗排除。 如上所述,這些實施例容許使用者決定繪圖呼叫在特 定像素上之效果。再者,這些實施例容許繪圖呼叫之失能 。例如,一使用者可以將一或多個繪圖呼叫失能,及決定 此失能對於像素處理上之影響。因此,計算上之差異即可 確定。例如,可以決定一背景著色是否變較快。再者,使 用者可以決定此失能對於著色影像上之視覺影響。例如, 一使用者可以決定將繪圖呼叫失能是否讓背景看起來令人 難以接受。一牽涉到諸項特性之範例係參考圖7而說明於 後。 圖7揭示一邏輯流程圖700,其可以作爲由一或多個實 施例執行之操作的代表。此流程圖揭述於圖1及2之內文中 。惟,此流程圖也可以使用在其他內文中。儘管圖7揭示 一特定序列,但是其他序列也可以使用。再者,所述之操 作可用不同之並行及/或順行組合執行。 如圖7中所示,在一方塊7 02選擇一著色目標。此項選 擇可由一使用者或透過自動技術達成。再者,在一方塊 7 04,選擇一像素。此像素可用多種方式選擇。例如,此 像素可以是使用者選擇或自動選擇,如以上參考圖4所述 者。惟,這些實施例並不受限於本文。 在一方塊7 06,一使用者選擇一或多個待失能之繪圖 呼叫。此項選擇可以是來自於一序列之繪圖呼叫。在—方 -19 - 201108157 塊708,像素歷史係經決定以用於該序列之繪圖呼叫。在 實施例中,此牽涉到以上參考圖5所述之執行操作。因此 ,一像素被失能之繪圖呼叫所觸碰的次數可以被決定。如 以上參考圖5所述,這些決定可以藉由不同圖形管線試驗 (例如,剪切試驗、長方形試驗、Z形試驗、模版試驗、 及/或初始試驗)致動或停止而達成。因爲失能之繪圖呼 叫並未著色,用於後續繪圖呼叫之試驗則會有不同之試驗 結果。因此,失能之繪圖呼叫即提供一動態之像素歷史。 在一方塊7 1 0,一影像係針對該序列之繪圖呼叫著色 ,而所選擇之繪圖呼叫係爲失能。在一方塊712處,此著 色之影像則顯示於使用者。 如上所述,這些實施例提供過度繪圖之影像》再者, 這些實施例提供將任意使用者選擇之繪圖呼叫致能或失能 的能力,以停止一過度繪圖影像之合成且更深入檢查所著 色之像素。 過度繪圖之影像可含有難以目視辨別之細微差異。例 如,某一區域可能比一相鄰區域略暗(此表示該區域被觸 碰到之次數差異)。這些實施例可在視覺上加強這些差異 。例如,在圖4之方塊409,一過度繪圖影像即經過加強。 此項加強可以增加一過度繪圖影像之動態範圍。結果 ,過度繪圖影像中之細微差異即變得更易於看見。許多技 術皆可用於提供動態範圍中之此項增加。例如,這些實; 例可以使用箝制操作。 圖8揭不一邏細流程圖800'其可以作爲由一或多個實 -20- 201108157 施例執行之操作的代表。儘管圖8揭示一特定序列,但是 其他序列也可以使用。再者,所述之操作可用不同之並行 及/或順行組合執行。 在一方塊8 02,提供一過度繪圖影像。在一方塊8 04, 決定過度繪圖影像中之最小値及最大値。 在一方塊806,一矩陣係基於該最小値及最大値而產 生。在一方塊806處,過度繪圖影像隨後被以該矩陣處理 。此項處理則產生一加強之過度繪圖,其可顯示於一方塊 8 1 0處。 現在提供此技術之一範例。此範例牽涉到一 5x5矩陣 。這是用於在影像資料上執行線性運算之標準技術。假設 像素値在[0,25 5]範圍內,且矩陣値爲浮點比例因數( floating point scale factors),則使用以下公式: [Or ] [ Mrr Mrg Mrb Mra 0 ] [〇g ] [ Mgr Mgb Mgb Mga 0 ] [Ob]= [ Ir Ig lb la 1] [ Mbr Mbg Mbb Mba 0 ] [〇a ] [ Mar Mag Mab Maa 0 ] [〇] [TlrTlgTlbTlal ] 這是一個基本的矩陣乘法運算,其中RGB A影像原色 (11*,18,11),1〇乘以5\5矩陣]^,以計算出調整過之11〇8八影 像顔色(Or,Og,Ob,0a)。藉由調整Μ之20個變數元素之値 ’即可執行許多色彩調整操作。對於過度繪圖影像,矩陣 値係經調整以將過度繪圖影像依比例縮放,使重要資料之 範圍擴大。 舉例而言,假設整個著色目標中之每一像素被寫入20 次(假設全部著色目標組皆在彼此之頂部上混合),則假 -21 - 201108157 設3個以上之小三角形被寫至著色目標,其中二者有些重 豐。在此例子中,大部分像素將有一過度繪圖値20,少數 有一過度繪圖値2 1 (其係受到小三角形觸碰者),及少數 有一過度繪圖値22 (其係在二個重疊之小三角形相交處者 )0 如果一使用者在正常情況下看此影像,則看起來是暗 的,而且很難看到具有過度繪圖値21及22之訊框部分。在 此實施例中,看見一調整影像,其中正常影像中之各像素 乘以矩陣Μ,以計算出過度繪圖影像之調整色彩。在此有 使用過之値,假設8位元色彩頻道(原始及過度繪圖影像 中之R G Β Α値之每者各有値在[0,2 5 5 ]中),但是此技術並 不限於此狀況,如果使用不同色彩深度時亦可作用: 令min = 2 0//過度繪圖影像中之最小値 令max = 22//過度繪圖影像中之最大値 令△ S ( min-max) //-△ 若(△ =〇) Δ = -1; //確定△不爲零 令 ( -25 5/Δ ) /3 ; //比例 令 min/Δ ; //轉變 將Μ設定爲:
ί ! t s s s o t s s s o t Γ L rL r J rL rL 1J 1 ] ). _ 00001] 根據此範例,在矩陣計算後,影像中有三個唯一之原 -22- 201108157 値: [20/255 20/255 20/255 1 1 ] [21/255 21/255 21/255 1 1 ] [22/255 22/255 22/255 1 1 ] 藉由矩陣乘法而經過以下轉換: [20s/255 + 20s/255 + 20s/255 + 0 +1 ] [20s/255 + 20s/255 + 20s/255 + 0 +1 ] [20s/255 + 20s/255 + 20s/255 + 0 +1 ] [0 +0 +0 +0+1] [0 +0 +0 +0+1] 2 5 5 0/2 2 5 11 11 5 5 s s s Γί [[
o t rL rL t s s s o t
s s S ο 1 1 1J —r _ 00001] ο ο ο ο 1 由於‘· 3*(20/255)s = 3 * (20/255) * ((-255 / -2) / 3) = (20) * ((1 / 2)) = 10 t = 20/-2 = -10 因此: [0] [s s s 0 0] [0] [s s s 0 0] [0 ] = [ 20/255 20/255 20/255 1 1 ] [ s s s 0 0 ] [1 ] [0 0 0 0 0] [1 ] [t t t 1 1] 針對中間値(2 1 ),進行下列運算: 3*(21/255)s = 3 * (21/255) * ((-255 / -2) / 3) = (21) * ((1 / 2)) = 10.5 t = 20/-2 = -10 此據 TJ TJ 1J 5 TJ TJ 0·°·°·1 1 n rL rL rL n
s rL s 5 5 1/2 21 5 5 /2 2 5 5 /2 2 1
s s o t s s o t .--* rL rL o o o s s s o o u i 1 ) o o o o 針對最大値(22 ),進行下列運算·· -23- 201108157 3*(22/255)s = 3 * (22/255) * ((-255 / -2) / 3) = (22) * ((1 / 2)) = 11 t = 20 / -2 = -10 因此: [s s s 0 0 ] [s s s 0 0 ] [1] [1] [1] [22/255 22/255 22/255 1 1 ] [ s s s 0 0 ] [00000] [t t t 1 1] 上述技術有利於容許一小範圍値擴充至一最大範圍, 使得能見度達到最大。此項技術係提供用於說明,而非限 制。據此,其他技術也可以用於增加影像之能見度。 如上所述,這些實施例之元件(例如圖1及2之元件) 可以在硬體及/或軟體之任意組合型態中實施。據此,圖 10係一示範性平台1 002之示意圖,其中可供實施本文內所 述之本發明功能。 如上所述,這些實施例提供擷取訊框之技術。此外, 這些實施例提供單步執行通過圖形訊框(例如,一次爲單 一圖形訊框)的技術,此圖形訊框由一應用所產生。這些 特性有利於容許一應用之工作量被「即時」擷取,因而可 以擷取一關注之確切訊框。 在實施例中,此單步執行可以藉由使用者互動而控制 。例如,一使用者可以備有一暫停鈕、一單步鈕、及一擷 取鈕。這些鈕可以透過一圖形使用者介面(例如,圖3之 介面控制台300)而提供。惟,這些實施例並不拘限於本 文。再者,這些實施例並不拘限於採用圖形使用者介面。 暫停鈕特徵可供使用者遠距地暫停在其目前訊框之一 201108157 應用(例如,圖形應用102 )。依此,單步鈕特徵可供使 者單步前進恰好一個訊框。捕捉鈕特徵可供使用者決定 儲存訊框資料(以及其相對應之繪圖呼叫),以利分析。 圖9揭示一邏輯流程圖900,其可以作爲牽涉到此單步 執行及訊框擷取特徵等操作的代表。此流程圖揭述於圖1 及2之內文中。惟,此流程圖也可以使用在其他內文中。 再者’儘管圖9揭示一特定序列,但是其他序列也可以使 用。再者,所述之操作可用不同之並行及/或順行組合執 行。 在一方塊9 0 2,開始一圖形應用(例如,一遊戲)。 例如,在圖1之內文中,此可包含圖形應用1 〇 2之開始執行 〇 在一方塊9 04,使用者致動一暫停鈕。結果,在—方 塊906處,當其目前訊框完成時,圖形應用即停止操作。 此項特徵可牽涉到圖形分析工具1 1 0,其等候應用1 02做出 —「目前呼叫」(透過圖形API 1〇4)。此一呼叫表示針 對目前訊框之其繪圖呼叫已完成,且目前訊框已準備好供 圖形引擎106著色。一旦做出此一呼叫,圖形分析工具n〇 將圖形應用1 02暫停。此例如可以透過一或多個操作系統 呼叫而執行。例如,圖形分析工具1 1 0可將所有與圖形應、 用相關聯之運行CPU軟體線程停止。暫停時,目前訊框即 可以顯示。 在一方塊907,使用者致動一按鈕。如果它是單步鈕 ’則操作前進至一方塊909,圖形應用在此處重新開始且 -25- 201108157 下一訊框變成目前訊框。在圖1之內文中,此可牽涉到做 出一或多個操作系統呼叫之圖形分析工具110。隨後,操 作回到方塊906,且一旦其完成訊框時圖形應用即再次暫 停。 惟,如果使用者致動捕捉鈕,則在一方塊910,儲存 由圖形引擎(例如圖形引擎1 06 )產生之訊框。請參閱圖2 ’此可包含將目前訊框之像素資料儲存於訊框儲存模組 212中。再者,在一方塊912’儲存與目前訊框相關之其他 資訊。此資訊可包括(但是不限定的有)對應於目前訊框 之繪圖呼叫、狀態資訊-牽涉到圖形引擎(例如,管線狀 態資訊)、圖形API、及/或圖形應用。再者,此資訊可 包括由應用提供之資源(例如,世界模型資訊、頂端資訊 、明暗資訊、紋理資訊等等)。實施例不限於這些範例。 在圖2之內文中,此資訊有一些可由圖形API繪圖呼叫截取 模組202截取及識別,並儲存於圖形API呼叫日誌資料庫 204 中 〇 圖9揭示流程方塊910及912,操作可前進至方塊909, 圖形應用在此處重新開始且下一訊框變成目前訊框。隨後 ,操作回到方塊906,且一旦其完成訊框時圖形應用即再 次暫停。 如另一替代型式,圖9揭示如果使用者致動暫停鈕, 則在一方塊9 1 4,重新開始圖形應用之正常操作。在圖1之 內文中,此可牽涉到圖形分析工具1 1 0做出一或多個操作 系統呼叫。隨後,一方塊9 1 6指出操作可回到方塊9 0 4,以 -26- 201108157 執行其他訊框單步操作及訊框捕捉操作。 因此,這些訊框單步操作及訊框捕捉技術可容許一使 用者對於哪個確切訊框要修正與描繪輪廓有細腻的控制》 結果,一使用者即可發現及定位出瓶頸,及/或去除冗餘 或不重要之圖形操作。圖9之流程揭述於GUI鈕之內文中。 此係用於說明而非限制。據此,可以使用其他使用者互動 技術/裝置。因此,這些實施例可以提供不同之使用者控 制’以用於前述暫停、單步操作、擷取、及重新開始等特 徵。 在實施例中,平台1 002可包含一中央處理單元(CPU )1〇12、一圖形處理單元(GPU) 1013、一或多個驅動 器1014、一或多個網路連接1〇15、一操作系統1016、儲存 器1018、一顯示裝置1019。 CPU 101 2可包含一或多個處理器,例如雙核心處理器 。雙核心處理器之範例包括Pentium® D處理器及Pentium® 處理器Extreme Edition,兩者皆由Intel®公司製造,其例 如可以稱爲Intel Core Duo®處理器。 GPU 1013可包含不同圖形處理器,例如—周邊元件互 連快捷(PCI Express )顯示卡。惟,實施例並不拘限於此 範例。請參閱圖1,GPU 101 3可以具備圖形引擎1〇6之特徵 〇 在一實施例中,網路連接1015可包含PRO/1000 pm或 PRO/100 VE/VM網路連接,兩者皆由Intel®公司製造。 在實施例中,操作系統1016可包含由Microsoft®公司 -27- 201108157 製造之Window® XP Media Center。在另外之實施例中, 操作系統101 6可包含Linux®,以及其他類型之操作系統。 在一實施例中,儲存器1018可包含不同之實體儲存媒 體。這些儲存媒體可包括資料(例如影像或訊框)以及指 令或控制邏輯(例如軟體),以實施本文內所述之不同特 徵(例如圖1及2之元件)。這些指令或控制邏輯可由CPU 1012及/或GPU 101 3執行。儲存媒體之範例將進一步揭述 於後。 顯不裝置1 0 1 9可以輸出資訊給一使用者。此外,顯示 裝置1019可以提供使用者互動,如本文內所述者。例如, 此使用者互動可以透過示範性之使用者介面3 00。 如本文內所述,許多實施例可以使用硬體元件、軟體 元件、或其任意組合實施。硬體元件之範例可包括處理器 、微處理器、電路、電路元件(例如,電晶體、電阻器、 電容器、電感器等等)、積體電路、專用積體電路(ASIC )、可編程邏輯裝置(PLD)、數位訊號處理器(DSP) 、場可編程閘陣列(FPGA )、邏輯閘、暫存器、半導體 裝置、晶片、微晶片、晶片組等等。 軟體元件之範例可包括軟體組件、程式、應用、電腦 程式、應用程式、系統程式、機器程式、操作系統軟體、 中間軟體、韌體、軟體模組、子程式、副程式、函數、方 法、程序、軟體介面、應用程式介面(A PI )、指令組、 計算碼、計算機碼、碼區段、計算機碼區段、字元、値、 符號、或其任意組合。 -28- 201108157 有些實施例在實施上例如可以使用一儲存一指令或一 組指令之實體機器可讀取媒體(儲存媒體)或物件,如果 該指令是由一機器執行’其可根據本實施例而使該機器執 行一方法及/或操作。此一機器例如可包括任意適當之處 理平台、計算平台、計算裝置、處理裝置、計算系統、處 理系統、計算機、處理器、或類似者,及可以使用硬體及 /或軟體之任意組合型態實施。 機器可讀取媒體(儲存媒體)或物件例如可包括任意 適當類型之記億單元、記億裝置、記億物件、記憶媒體' 儲存裝置、儲存物件、儲存媒體及/或儲存單元,例如記 億體、可移除或不可移除式媒體、可抹除或不可抹除式媒 體、可寫入或可重寫式媒體、數位或類比式媒體、硬碟機 、軟碟機、唯讀記憶光碟(CD-ROM)、可錄光碟(CD-R )、可重寫光碟(CD-RW )、光碟、磁性媒體、磁-光學 性媒體、可移除記億卡或碟片、不同類型之數位多功能光 碟(DVD )、錄音帶、錄音匣、或類似者。指令可包括任 意適當類型之碼,例如原始碼、編譯碼、直譯碼、可執行 碼、靜態碼、動態碼、加密碼、及類似者,並且使用任意 適當之高階、低階 '物件導向、視覺、編譯及/或直譯程 式語言執行。 有些實施例可以使用「聯結」及「連接」等詞並配合 其衍生字以說明之。這些用詞並非做爲彼此之同義字。例 如’有些實施例可以使用「連接」及/或「聯結」等詞以 說明二或多個元件以直接實體性或電氣性彼此接觸。惟, -29 - 201108157 「聯結」一詞也指二或多個元件不直接接觸於彼此,而是 彼此合作或互動。 儘管本發明之多項實施例已揭述於上,應該瞭解的是 其僅爲舉例說明,而非限制。據此,習於此技者將瞭解到 ,在不脫離本發明之精神及範疇下,在形式及細部結構上 尙可達成多種變化。因此,本發明之寬廣性及範疇不應由 上述任一示範性實施例限制,而是僅依據文後之申請專利 範圍及其等效技術而界定。 【圖式簡單說明】 在圖式中,相似參考編號大體上表示相同、功能相似 、及/或結構相似之元件。圖式中一元件首次出現時係以 參考編號之最左側數字表示。本發明將參考附圖以說明之 ’其中: 圖1係一示範性操作環境之示意圖; 圖2係一可包括在圖形分析工具內之實施方式之示意 圖: 圖3係一示範性使用者介面之示意圖; 圖4-9係邏輯流程圖;及 圖1 〇係一示範性平台之示意圖。 【主要元件符號說明】 100 :示範性操作環境 102 :圖形應用 -30- 201108157 104 :圖形應用程式介面(API) 106 :圖形引擎 1 1 0 :圖形分析工具 200 :示範性實施方式 202 :圖形API截取模組 204 :圖形API呼叫日誌資料庫 206 :重建模組 207 :過度繪圖分析模組 208 :像素歷史分析模組 210 :使用者介面'模組 2 1 2 :訊框儲存模組 3 0 0 :介面控制台 3 0 2 :繪圖呼叫區 304 :著色目標區 3 06 :影像著色區 3 0 8 :像素歷史區 1002:平台 1012:中央處理單元(CPU ) 1013:圖形處理單元(GPU ) 1 0 1 4 :驅動器 1015 :網路連接 1 0 1 6 :操作系統 1 〇 1 8 :儲存器 1019 :顯示裝置 -31 -