TWI497396B - 三維物件旋轉方法,與其對應的電腦系統和記錄媒體 - Google Patents
三維物件旋轉方法,與其對應的電腦系統和記錄媒體 Download PDFInfo
- Publication number
- TWI497396B TWI497396B TW098134635A TW98134635A TWI497396B TW I497396 B TWI497396 B TW I497396B TW 098134635 A TW098134635 A TW 098134635A TW 98134635 A TW98134635 A TW 98134635A TW I497396 B TWI497396 B TW I497396B
- Authority
- TW
- Taiwan
- Prior art keywords
- dimensional
- driver
- dimensional object
- temporary storage
- desktop
- Prior art date
Links
Landscapes
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Description
本發明是有關於電腦的三維(3-dimensional,簡稱3D)物件描繪(rendering),且特別是有關於一種三維物件旋轉方法,與其對應的電腦系統和記錄媒體。
Linux作業系統由於開放原始碼(open source)的本質,具有廉價和易於修改等優點,加上X視窗系統(X Window System)所提供的桌面與視窗風格的使用者介面,如今已逐漸普及於消費者市場。Linux核心(kernel)以及X視窗系統,已經廣泛應用在個人電腦(personal computer,簡稱PC)、筆記型電腦(notebook)、智慧型手機、以及超級行動電腦(Ultra Mobite PC,簡稱UMPC)等各種嵌入式或桌面式電子設備。
X視窗系統有一個名為RandR(The X Resize and Rotate Extension)的擴充模組,可以在不影響應用程式和X視窗系統的情況下,提供桌面的旋轉與縮放等動態效果。上述的旋轉與縮放是由RandR進行,和應用程式本身的顯示功能無關。舉例而言,如果有使用者在桌面上執行一個三維顯示的遊戲,而且根據使用者設定,RandR會旋轉桌面,在此情況下,遊戲視窗內的三維物件會進一步接受RandR的旋轉處理,才顯示在畫面上。
使用三維加速裝置(3D accelerator)等硬體來提高描繪三維物件的效率,已經是很常見的做法。在上述範例中,每當桌面的顯示內容有所改變,例如使用者的操作使遊戲中的三維物件改變距離或視角,驅動三維加速裝置的三維驅動程式(3D driver)會發送損壞(damage)訊息給作業系統,表示桌面上哪些部分已經改變,使作業系統重新顯示改變的部分。
本發明提供一種三維物件旋轉方法、一種執行上述方法的電腦系統、以及一種電腦可讀取記錄媒體。上述的三維物件旋轉方法可提高在作業系統桌面上旋轉並顯示三維物件的效率。
本發明提出一種三維物件旋轉方法,可用於作業系統的桌面,包括下列步驟。首先,三維驅動程式接收三維資料與旋轉資訊。其中三維資料描述三維物件,而且三維資料來自執行於上述桌面的應用程式。三維驅動程式利用三維加速裝置,根據旋轉資訊對同一三維物件進行旋轉處理,在虛影畫面暫存區中描繪三維物件。
本發明另提出一種電腦系統,執行如上所述的三維物件旋轉方法。
本發明另提出一種電腦可讀取的記錄媒體,儲存一電腦程式,該電腦程式執行如上所述的三維物件旋轉方法。
本發明將三維物件的旋轉和描繪全部交由上述的三維驅動程式處理,因此使得三維物件的旋轉和顯示過程更加精簡,進而提高旋轉和顯示三維物件的效率。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1和圖2說明一般畫面顯示流程,其中圖1是旋轉並顯示上述三維物件的流程圖,圖2是執行此流程時的電腦系統示意圖。圖2的電腦系統是前面提到的個人電腦、筆記型電腦、智慧型手機、或超級行動電腦。
圖1的流程從步驟110開始,請參照圖2。首先,三維驅動程式215自應用程式205(例如三維遊戲)取得描述三維物件的三維資料210(步驟110)。三維驅動程式215透過三維加速裝置220將三維物件描繪在待顯示記憶體(on-screen memory)230(步驟120)。然後RandR 235自顯示驅動程式(display driver)245取得旋轉資訊225(步驟130)。旋轉資訊225包括RandR的旋轉角度和畫面的寬度與高度等資訊。接下來,RandR 235根據旋轉資訊225對三維物件作旋轉處理,並且將旋轉過的三維物件複製到虛影畫面暫存區(shadow frame buffer)240(步驟140)。最後,透過顯示驅動程式245將三維物件顯示在顯示器250(步驟150)。
由於RandR在每一次顯示流程都要將三維物件從待顯示記憶體230複製到虛影畫面暫存區240後,再去作旋轉資料的處理,這會降低電腦系統的效能。此外,同一個三維物件需要待顯示記憶體230和虛影畫面暫存區240這兩塊記憶體來儲存,也對電腦系統的記憶體造成額外使用。
圖3是依照本發明一實施例的三維物件旋轉方法的流程圖,圖4是執行圖3流程的電腦系統示意圖。圖4的電腦系統可以是個人電腦、筆記型電腦、智慧型手機、超級行動電腦、或其他類似的嵌入式或桌面式電子設備。圖3的方法適用於上述電腦系統執行的作業系統所顯示的桌面,例如Linux作業系統的X視窗系統所顯示的桌面。
如上所述,一般影像處理技術是由三維驅動程式描繪三維物件,並由RandR旋轉三維物件。每當桌面的顯示內容改變時,三維驅動程式會發送損壞訊息給作業系統,表示桌面上哪些部分已經改變,使作業系統重新顯示改變的部分。而本實施例則是將三維物件的描繪和旋轉交由三維驅動程式處理。每當桌面的顯示內容改變時,三維驅動程式不發送損壞訊息給作業系統,而是自行處理三維物件的描繪和旋轉。如此一來可以大為提高電腦系統的效能,且減少記憶體的使用。
圖3的流程從步驟310開始,請參照圖4。首先,三維驅動程式415接收三維資料410(步驟310)。三維資料410是由執行於桌面的應用程式405提供,描述欲顯示的三維物件。然後三維驅動程式415經由一個介面自顯示驅動程式440取得旋轉資訊420和虛影畫面暫存區435的影像暫存位址425(步驟320)。本實施例中,旋轉資料420,例如:三維物件的旋轉角度和畫面的寬度與高度...等資訊會事先添加至三維驅動程式415和顯示驅動程式440,以便於三維驅動程式415和顯示驅動程式440之間的溝通。此外,旋轉資訊420可由使用者於顯示驅動程式440中設定。
接下來,三維驅動程式415利用三維加速裝置430,在虛影畫面暫存區435的影像暫存位址425描繪三維物件,並且根據旋轉資訊420對上述三維物件進行旋轉處理(步驟330)。其中,三維驅動程式亦可經由上述之介面而自顯示驅動程式取得虛影畫面暫存區的影像暫存位址。然後,經由顯示驅動程式440,在顯示器445顯示上述的作業系統桌面和三維物件。上述三維物件顯示在上述桌面中(步驟340)。
圖3的三維物件旋轉方法可以由電腦程式執行,此電腦程式可以包括上述的三維驅動程式和顯示驅動程式,可以儲存在任何一種電腦可讀取的記錄媒體,例如記憶體、記憶卡、硬碟或光碟片等記錄媒體。
綜上所述,本發明不經由作業系統進行三維物件在桌面的旋轉,而是由三維驅動程式直接處理三維物件的描繪和桌面上的旋轉。因此處理流程比傳統技術更精簡,可以省去待顯示記憶體,也可以省去從待顯示記憶體到虛影畫面暫存區之間的複製。假如顯示三維物件的應用程式每秒顯示三十張畫面,使用本發明,每一秒鐘就能省去三十次複製。因此本發明可提高三維物件在作業系統桌面上的旋轉和顯示的效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
110-150...流程圖步驟
205...應用程式
210...三維資料
215...三維驅動程式
220...三維加速裝置
225...旋轉資訊
230...待顯示記憶體
235...RandR
240...虛影畫面暫存區
245...顯示驅動程式
250...顯示器
310-340‧‧‧流程圖步驟
405‧‧‧應用程式
410‧‧‧三維資料
415‧‧‧三維驅動程式
420‧‧‧旋轉資訊
425‧‧‧影像暫存位址
430‧‧‧三維加速裝置
435‧‧‧虛影畫面暫存區
440‧‧‧顯示驅動程式
445‧‧‧顯示器
圖1為一種三維物件旋轉方法的流程圖。
圖2為執行圖1方法的電腦系統示意圖。
圖3為本發明一實施例的一種三維物件旋轉方法的流程圖。
圖4為執行圖3方法的電腦系統示意圖。
405...應用程式
410...三維資料
415...三維驅動程式
420...旋轉資訊
425...影像暫存位址
430...三維加速裝置
435...虛影畫面暫存區
440...顯示驅動程式
445...顯示器
Claims (11)
- 一種三維物件旋轉方法,用於一作業系統的桌面,包括:一三維驅動程式接收一三維資料與一旋轉資訊,以及自一顯示驅動程式取得一虛影畫面暫存區的一影像暫存位址,其中該三維資料描述一三維物件,而且該三維資料來自執行於該桌面的一應用程式;以及該三維驅動程式利用一三維加速裝置,在一虛影畫面暫存區中的該影像暫存位址描繪該三維物件,並根據該旋轉資訊對該三維物件進行一旋轉處理,其中當該桌面的顯示內容改變時,該三維驅動程序不發送損壞訊息給該操作系統。
- 如申請專利範圍第1項所述的三維物件旋轉方法,其中該作業系統為Linux,該作業系統經由X視窗系統顯示該桌面。
- 如申請專利範圍第1項所述的三維物件旋轉方法,其中該三維驅動程式經由一介面自該顯示驅動程式取得該旋轉資訊,且該旋轉資訊包括該三維物件的旋轉角度及畫面的寬度與高度。
- 如申請專利範圍第3項所述的三維物件旋轉方法,更包括:經由該顯示驅動程式,在一顯示器顯示該桌面與該三維物件,該三維物件顯示於該桌面中。
- 一種電腦系統,於一作業系統下執行三維物件旋 轉,該電腦系統包含:一三維加速裝置,受控於一三維驅動程式,其中當一三維資料發出時,該三維驅動程式接收該三維資料,並聯合一旋轉資訊,驅動該三維加速裝置用以描述一三維物件並對該三維物件進行旋轉處理;以及一虛影畫面暫存區,連接至該三維加速裝置,該虛影畫面暫存區包含一影像暫存位址,用以暫存該三維物件資料,其中該三維驅動程式自一顯示驅動程式取得該虛影畫面暫存區的該影像暫存位址,該三維驅動程式在該虛影畫面暫存區中的該影像暫存位址描繪該三維物件,並根據該旋轉資訊對該三維物件進行該旋轉處理,其中當該桌面的顯示內容改變時,該三維驅動程序不發送損壞訊息給該操作系統。
- 如申請專利範圍第5項所述的電腦系統,其中該作業系統為Linux,該作業系統經由X視窗系統顯示該桌面。
- 如申請專利範圍第5項所述的電腦系統,其中該三維驅動程式經由一介面自該顯示驅動程式取得該旋轉資訊,且該旋轉資訊包括該三維物件的旋轉角度及畫面的寬度與高度。
- 如申請專利範圍第7項所述的電腦系統,其中該顯示驅動程式在一顯示器顯示該桌面與該三維物件。
- 一種電腦可讀取的記錄媒體,儲存一電腦程式,該電腦程式於一作業系統下執行三維物件旋轉,該電腦可讀 取的記錄媒體包含:儲存一三維驅動程式,用以驅動一三維加速裝置,其中當收到一三維資料時,該三維驅動程式接收該三維資料,並聯合一旋轉資訊,驅動該三維加速裝置,用以描述一三維物件並對該三維物件進行旋轉處理;以及儲存一顯示驅動程式,透過一介面,提供該旋轉資訊至該三維驅動程式,且該旋轉資訊包括該三維物件的旋轉角度及畫面的寬度與高度,其中該三維驅動程式經由該介面自該顯示驅動程式取得一虛影畫面暫存區之一影像暫存位址,該三維驅動程式在該虛影畫面暫存區中的該影像暫存位址描繪該三維物件,並根據該旋轉資訊對該三維物件進行該旋轉處理,其中當該桌面的顯示內容改變時,該三維驅動程序不發送損壞訊息給該操作系統。
- 如申請專利範圍第9項所述之電腦可讀取的記錄媒體,其中該作業系統為Linux,該作業系統經由X視窗系統顯示該桌面。
- 如申請專利範圍第9項所述之電腦可讀取的記錄媒體,其中該顯示驅動程式在一顯示器顯示該桌面與該三維物件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098134635A TWI497396B (zh) | 2009-10-13 | 2009-10-13 | 三維物件旋轉方法,與其對應的電腦系統和記錄媒體 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098134635A TWI497396B (zh) | 2009-10-13 | 2009-10-13 | 三維物件旋轉方法,與其對應的電腦系統和記錄媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201113799A TW201113799A (en) | 2011-04-16 |
TWI497396B true TWI497396B (zh) | 2015-08-21 |
Family
ID=44909790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098134635A TWI497396B (zh) | 2009-10-13 | 2009-10-13 | 三維物件旋轉方法,與其對應的電腦系統和記錄媒體 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI497396B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020010019A1 (en) * | 1998-03-16 | 2002-01-24 | Kazukuni Hiraoka | Game machine, and image processing method for use with the game machine |
TW200529041A (en) * | 2003-12-11 | 2005-09-01 | Nvidia Corp | System and method for accelerating a special purpose processor |
-
2009
- 2009-10-13 TW TW098134635A patent/TWI497396B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020010019A1 (en) * | 1998-03-16 | 2002-01-24 | Kazukuni Hiraoka | Game machine, and image processing method for use with the game machine |
TW200529041A (en) * | 2003-12-11 | 2005-09-01 | Nvidia Corp | System and method for accelerating a special purpose processor |
Also Published As
Publication number | Publication date |
---|---|
TW201113799A (en) | 2011-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9489165B2 (en) | System and method for virtual displays | |
US8384738B2 (en) | Compositing windowing system | |
JP6062438B2 (ja) | タイル単位レンダラーを用いてレイヤリングするシステムおよび方法 | |
US20150035860A1 (en) | Buffers for display acceleration | |
US20200380935A1 (en) | Automatic Display Orientation Configuration | |
US9164646B2 (en) | Method and apparatus for accommodating display migration among a plurality of physical displays | |
US9953620B2 (en) | Updating image regions during composition | |
JP2018511859A (ja) | スプーフクロック及び細粒度周波数制御を使用する下位互換性 | |
EP4147192A1 (en) | Multi-layer reprojection techniques for augmented reality | |
US20200020067A1 (en) | Concurrent binning and rendering | |
US11037271B2 (en) | Dynamic rendering for foveated rendering | |
US20110193858A1 (en) | Method for displaying images using an electronic device | |
TWI619092B (zh) | 使用多分辨率改善圖像品質的方法及裝置 | |
US10504278B1 (en) | Blending neighboring bins | |
US20200051214A1 (en) | Dynamic rendering for foveated rendering | |
TW201901615A (zh) | 改善圖像品質的方法及虛擬實境裝置 | |
US7382376B2 (en) | System and method for effectively utilizing a memory device in a compressed domain | |
TWI497396B (zh) | 三維物件旋轉方法,與其對應的電腦系統和記錄媒體 | |
US9760256B1 (en) | Securing a window system supporting transparency | |
US11756503B2 (en) | Low-latency context switch systems and methods | |
US20180357811A1 (en) | Method And Portable Electronic Device For Changing Graphics Processing Resolution According to Scenario | |
WO2023142752A1 (en) | Sequential flexible display shape resolution | |
WO2023274125A1 (zh) | 一种指令处理方法及其相关设备 | |
WO2021087826A1 (en) | Methods and apparatus to improve image data transfer efficiency for portable devices | |
CN118803104A (zh) | 显示控制方法、装置、电子设备及存储介质 |