專利名稱:一種多屏3d同步顯示的方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖形顯示處理領(lǐng)域,特別是涉及一種多屏3D同步顯示方 法、 一種多屏3D同步顯示裝置及一種多屏3D同步顯示系統(tǒng)。
背景技術(shù):
科學(xué)計(jì)算可視化,是上世紀(jì)80年代后期隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展 而出現(xiàn)的 一 門新興技術(shù),它通過把各種復(fù)雜的數(shù)據(jù)轉(zhuǎn)換成直觀的圖形或 圖像,以方便人們正確理解數(shù)據(jù)或過程的含義。它的主要目的是更加有 效地處理和分析越來越多的科學(xué)和工程數(shù)據(jù),為科研和工程人員提供一 個(gè)有效、直觀地探索和研究客觀世界的工具??茖W(xué)計(jì)算可視化發(fā)展的初 期,計(jì)算機(jī)硬件的成本較高,而且性能有限。當(dāng)時(shí)的可視化技術(shù)主要集 中在高分辨率、大視野顯示技術(shù)的研究上。在這一階段,國(guó)外公司依靠 其先進(jìn)的硬件制造技術(shù),研發(fā)了高檔專用的可視化系統(tǒng),這類系統(tǒng)配備 著專用軟件,在當(dāng)時(shí)提供了無以倫比的顯示性能,但系統(tǒng)價(jià)格昂貴,遠(yuǎn) 沒有達(dá)到普及應(yīng)用的地步。隨著計(jì)算機(jī)技術(shù)的發(fā)展,其硬件成本的不斷 降低和性能的不斷提高為科學(xué)計(jì)算可視化的發(fā)展提供了巨大的推動(dòng)力, 目前可視化技術(shù)已成為流體工程、氣象學(xué)、分子生物學(xué)和醫(yī)學(xué)等數(shù)據(jù)密 集學(xué)科的重要研究手段?,F(xiàn)有技術(shù)中,可視化技術(shù)的應(yīng)用主要是2D顯示,具體可以分為單屏 多窗口顯示和多屏多窗口顯示。單屏多窗口顯示基于流行的Windows系 統(tǒng)的圖形操作界面,它具有設(shè)備簡(jiǎn)單、全圖形畫面、設(shè)計(jì)和制作系統(tǒng)完 善、易用等優(yōu)點(diǎn);但單屏多窗口顯示在同一時(shí)間顯示的信息有限,在改 變畫面時(shí)需要較多的窗口操作,工作效率不高;多屏多窗口顯示是單屏多窗口顯示的擴(kuò)展方式,即在單臺(tái)計(jì)算機(jī)上進(jìn)行多屏顯示擴(kuò)展,通常釆 用以下兩種實(shí)現(xiàn)方法一種是利用簡(jiǎn)單的視頻分配器,將一臺(tái)計(jì)算機(jī)的視頻輸出送到多個(gè) 相同的顯示屏,每個(gè)顯示屏顯示完全相同的內(nèi)容;這種方法是多屏顯示的低級(jí)擴(kuò)展形式,它只是擴(kuò)大了顯示的地理區(qū) 域,在不同屏幕上顯示的內(nèi)容是一致的。二是利用多路視頻分配器將一臺(tái)計(jì)算機(jī)視頻輸出進(jìn)行分割,將不同 的顯示區(qū)域送到不同的顯示屏,以達(dá)到擴(kuò)大顯示尺寸和提高顯示分辨率 的目的。應(yīng)用這種方法,所有屏幕只能顯示某個(gè)特定屏幕的一部分。 可以看出,這兩種實(shí)現(xiàn)方法與單屏多窗口顯示方式?jīng)]有本質(zhì)的區(qū)別,還存在以下缺陷(1 )依賴于特殊硬件的支持;(2)需要進(jìn)行與應(yīng)用有 關(guān)的編程(底層編程),還必須依靠特殊的平臺(tái)支持;(3)只能顯示與應(yīng) 用有關(guān)的對(duì)象,且不能對(duì)不同屏幕間的顯示同步進(jìn)行控制;(4)只能進(jìn) 4亍2D顯示。總之,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是如 何能夠創(chuàng)新的提出 一種多屏3D同步顯示機(jī)制,用以實(shí)現(xiàn)在在單臺(tái)計(jì)算機(jī) 控制的多個(gè)顯示器上以3D方式同步展示立體對(duì)象的不同視角的功能。發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題是提供一種多屏3D同步顯示方法,以實(shí) 現(xiàn)在單臺(tái)計(jì)算機(jī)控制的多個(gè)顯示器上以3D方式同步展示立體對(duì)象的不 同視角的功能。本發(fā)明的另 一個(gè)目的是將上述構(gòu)思應(yīng)用于具體的應(yīng)用環(huán)境中,提供一 種多屏3D同步顯示裝置和一種多屏3D同步顯示系統(tǒng),/人而保證該方法 的實(shí)現(xiàn)和應(yīng)用。為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種多屏3D同步顯示方 法,包括獲取顯示器的位置信息,依據(jù)所述位置信息創(chuàng)建顯示窗口,所述顯示 窗口為各個(gè)顯示器對(duì)應(yīng)的顯示區(qū)域;分別配置所述顯示窗口的三維顯示上下文環(huán)境;接收用戶輸入的指令,并解析成所述三維顯示上下文環(huán)境下的繪制命令;根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。優(yōu)選的,所述三維顯示上下文環(huán)境為OpenGL上下文環(huán)境,所述配置 步驟包括針對(duì)所述顯示窗口創(chuàng)建設(shè)備上下文; 依據(jù)所述設(shè)備上下文生成OpenGL渲染上下文; 關(guān)聯(lián)所述OpenGL渲染上下文與設(shè)備上下文。 優(yōu)選的,所述繪制步驟包括確定繪制的目標(biāo)顯示窗口 ,將所述顯示窗口的OpenGL上下文環(huán)境設(shè) 置為當(dāng)前OpenGL上下文環(huán)境;在當(dāng)前OpenGL上下文環(huán)境執(zhí)行所述繪制命令,完成繪制; 釋放所述OpenGL上下文環(huán)境; 觸發(fā)下一個(gè)繪制的目標(biāo)顯示窗口 。 優(yōu)選的,所述的方法,還包括檢測(cè)所述顯示器的運(yùn)行環(huán)境,判斷是否滿足運(yùn)行要求。優(yōu)選的,所述顯示器的位置信息包括顯示器對(duì)應(yīng)區(qū)域的邊界坐標(biāo)、顯示器對(duì)應(yīng)區(qū)域的寬度和顯示器對(duì)應(yīng)區(qū)域的高度。本發(fā)明實(shí)施例還公開了一種多屏3D同步顯示裝置,包括 窗口創(chuàng)建模塊,用于獲取顯示器的位置信息,依據(jù)所述位置信息創(chuàng)建顯示窗口,所述顯示窗口為各個(gè)顯示器對(duì)應(yīng)的顯示區(qū)域;配置模塊,用于分別配置所述顯示窗口的三維顯示上下文環(huán)境; 指令處理模塊,用于接收用戶輸入的指令,并解析成所述三維顯示上下文環(huán)境下的繪制命令;繪制模塊,用于根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。 優(yōu)選的,所述三維顯示上下文環(huán)境為OpenGL上下文環(huán)境,所述配置模塊包括設(shè)備上下文創(chuàng)建子模塊,用于針對(duì)所述顯示窗口創(chuàng)建設(shè)備上下文; OpenGL上下文創(chuàng)建子模塊,用于依據(jù)所述設(shè)備上下文生成OpenGL 渲染上下文;關(guān)聯(lián)子模塊,用于關(guān)聯(lián)所述OpenGL渲染上下文與設(shè)備上下文。 優(yōu)選的,所述繪制模塊包括目標(biāo)確定子模塊,用于確定繪制的目標(biāo)顯示窗口,將所述顯示窗口的OpenGL上下文環(huán)境設(shè)置為當(dāng)前OpenGL上下文環(huán)境;執(zhí)行子模塊,用于在當(dāng)前OpenGL上下文環(huán)境執(zhí)行所述繪制命令,完 成繪制;釋放子模塊,用于釋放所述OpenGL上下文環(huán)境; 觸發(fā)子模塊,用于觸發(fā)下一個(gè)繪制的目標(biāo)顯示窗口。 優(yōu)選的,所述的裝置,還包括檢測(cè)模塊,用于檢測(cè)所述顯示器的運(yùn)行環(huán)境,判斷是否滿足運(yùn)行要求。 本發(fā)明實(shí)施例還公開了一種多屏3D同步顯示系統(tǒng),包括與一臺(tái)計(jì)算機(jī)連接的多個(gè)顯示器,所述顯示器用于通過相應(yīng)的顯示窗口展示同一顯示對(duì)象的不同視角; 所述計(jì)算機(jī)包括;窗口創(chuàng)建模塊,用于獲取顯示器的位置信息,依據(jù)所述位置信息創(chuàng)建 顯示窗口,所述顯示窗口為各個(gè)顯示器對(duì)應(yīng)的顯示區(qū)域;配置模塊,用于分別配置所述顯示窗口的三維顯示上下文環(huán)境;指令處理模塊,用于接收用戶輸入的指令,并解析成所述三維顯示上 下文環(huán)境下的繪制命令;繪制模塊,用于根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)首先,本發(fā)明基于通用的開放接口和計(jì)算機(jī)硬件平臺(tái),簡(jiǎn)單、有效地 實(shí)現(xiàn)了在單臺(tái)計(jì)算機(jī)控制的多個(gè)顯示器上以3D方式同步展示立體對(duì)象 的不同視角的功能;再者,本發(fā)明基于通用硬件實(shí)現(xiàn)的單計(jì)算機(jī)多顯示器平臺(tái),以及開放 的三維顯示接口實(shí)現(xiàn),因而可以進(jìn)一步減少開發(fā)和運(yùn)行成本;最后,本發(fā)明技術(shù)實(shí)現(xiàn)簡(jiǎn)單,無技術(shù)障礙,無特殊保密算法。
圖1是本發(fā)明的 一種多屏3D同步顯示方法實(shí)施例的流程圖; 圖2是本發(fā)明的一種多屏3D同步顯示裝置實(shí)施例的結(jié)構(gòu)框圖; 圖3是應(yīng)用圖2所示的優(yōu)選實(shí)施例進(jìn)行多屏3D同步顯示的方法流程圖; 圖4是本發(fā)明的一種多屏3D同步顯示系統(tǒng)實(shí)施例的結(jié)構(gòu)框架圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合 附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。 '科學(xué)計(jì)算可視化是利用先進(jìn)的計(jì)算機(jī)技術(shù)提供研究對(duì)象更加逼真或 更加全面的視覺感知。計(jì)算機(jī)顯示技術(shù)是其所依托的主要技術(shù)之一。隨 著計(jì)算機(jī)軟硬件技術(shù)的發(fā)展,計(jì)算機(jī)顯示技術(shù)經(jīng)歷了二維到三維、靜態(tài) 到動(dòng)態(tài)、非實(shí)時(shí)到實(shí)時(shí)、非交互到交互、集中到分布等一系列的發(fā)展。交互的實(shí)時(shí)3D分布顯示技術(shù)是計(jì)算機(jī)顯示技術(shù)的研究熱點(diǎn),有著廣泛的 應(yīng)用前景,科學(xué)計(jì)算可視化使用3D顯示,能夠提供研究對(duì)象更多、更深 層和更內(nèi)在的信息。作為科學(xué)計(jì)算可視化應(yīng)用,目前的單屏3D顯示能同時(shí)提供給觀察者的信息有限,許多互相聯(lián)系的信息不能同時(shí)顯示出來,為解決這一局限 性。因而提出了多屏3D同步顯示技術(shù),用以同時(shí)提供被觀察對(duì)象互相聯(lián) 系的多個(gè)不同側(cè)面的3D視覺,從而更深刻、更具體、更完整地展示被觀 察對(duì)象。進(jìn)一步地,還可以將多屏3D同步顯示技術(shù)和網(wǎng)絡(luò)技術(shù)的結(jié)合, 便構(gòu)成分布的3D顯示系統(tǒng),以應(yīng)用于遠(yuǎn)程故障分析、異地科學(xué)研究、遠(yuǎn) 程醫(yī)學(xué)診斷等領(lǐng)域。因而,本發(fā)明是在單屏3D顯示技術(shù)的基礎(chǔ)上進(jìn)一步深入研究,構(gòu)成 多屏幕多視角的3D顯示。其特點(diǎn)是可以同時(shí)提供同一個(gè)對(duì)象或相關(guān)對(duì)象 不同視角或不同層面的3D可視化,具體為,通過單個(gè)計(jì)算機(jī)控制多個(gè)顯 示器,能夠應(yīng)用相關(guān)圖形接口技術(shù)在多個(gè)顯示器上同步顯示同一個(gè)三維 物體。參考圖1,示出了本發(fā)明的一種多屏3D同步顯示方法實(shí)施例的流程 圖,可以包括以下步驟步驟101 、獲取顯示器的位置信息,依據(jù)所述位置信息創(chuàng)建顯示窗口 , 所述顯示窗口為各個(gè)顯示器對(duì)應(yīng)的顯示區(qū)域;步驟102、分別配置所述顯示窗口的三維顯示上下文環(huán)境;步驟103、接收用戶輸入的指令,并解析成所述三維顯示上下文環(huán)境 下的繪制命令;步驟104、根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。 可以理解的是,本發(fā)明實(shí)施例基于單個(gè)計(jì)算機(jī)對(duì)于多個(gè)顯示器的硬 件環(huán)境實(shí)現(xiàn),若針對(duì)現(xiàn)有的單個(gè)計(jì)算機(jī)對(duì)應(yīng)單個(gè)顯示器的環(huán)境,則需要 進(jìn)行相應(yīng)的顯示器擴(kuò)展。現(xiàn)有技術(shù)中提供了多種擴(kuò)展方法,例如,在一 臺(tái)計(jì)算機(jī)上安裝多個(gè)顯示適配器,并保證它們適配于當(dāng)前硬、軟件環(huán)境, 若每一個(gè)顯示適配器具有兩個(gè)視頻輸出,則對(duì)應(yīng)每一個(gè)視頻輸出連接一個(gè)顯示器;在操作系統(tǒng)中,對(duì)每一個(gè)顯示適配器控制的顯示進(jìn)行設(shè)置, 以將顯示區(qū)域擴(kuò)展到這四個(gè)顯示器。當(dāng)然,本領(lǐng)域技術(shù)人員可以采用現(xiàn) 有技術(shù)中的任一種方法設(shè)置本發(fā)明所需的硬件環(huán)境,上述方式僅僅用于 舉例,本發(fā)明對(duì)此并不需要做出限定。在這種情況下,本發(fā)明實(shí)施例還可以包括步驟 檢測(cè)所述顯示器的運(yùn)行環(huán)境,判斷是否滿足運(yùn)行要求。 即通過檢測(cè)當(dāng)前設(shè)置的硬件環(huán)境,以判斷是否能滿足系統(tǒng)運(yùn)行的要 求,確保后續(xù)操作的順利執(zhí)行,若不滿足要求,還可以提示用戶進(jìn)行相 應(yīng);也處J里。例如,假設(shè)存在與單臺(tái)計(jì)算機(jī)連接的四個(gè)顯示器,其中,有一個(gè)主 顯示器和三個(gè)子顯示器,它們的位置排列為主顯示器放置在最左方, 其它子顯示器依次排列在主顯示器的右方。 一種檢測(cè)當(dāng)前硬件環(huán)境的方 法為,將主顯示器的寬度加上一個(gè)小于第一個(gè)子顯示器寬度的非零值, 該點(diǎn)的位置應(yīng)當(dāng)對(duì)應(yīng)第一個(gè)子顯示器的顯示區(qū)域,可以用來判斷該位置上是否存在第一個(gè)子顯示器;然后,將第一個(gè)子窗口的寬度加上一個(gè)小 于第二個(gè)子顯示器寬度的非零值,該點(diǎn)的位置應(yīng)當(dāng)對(duì)應(yīng)第三個(gè)子顯示器的顯示區(qū)域,可以用來判斷該位置上是否中存在第三個(gè)子顯示器;以此類推。具體可以采用以下主要代碼實(shí)現(xiàn)上述^r測(cè)過程—cxMainMonitor = GetSystemMetrics(SM一CXSCREEN);〃獲得主顯示器的寬度值m—cxMainMonitorm—hMonitor 1 =MonitorFromPoint(CPoint(m—cxMainMonitor+10, 100), MONITOR—DEFAULTTONUIX);〃獲得一個(gè)HMONITOR類的返回值m—hMonitor 1基于本例,如果m—hMonitorl不為0,則表示該位置上存在第一個(gè)子 顯示器;如果m—hMonitorl為0,則表示該位置上不存在第一個(gè)子顯示器。 '然后,GetMonitorlnfo(m—hMonitorl, &monInfo); 〃獲得第一個(gè)子顯示器的信息monlnfo 保存該顯示器的信息后,m—hMonitor2=MonitorFromPoint(CPoint(monInfo.rcMonitor.right+10, 100), MONITOR—DEFAULTTONULL);〃獲得一個(gè)HMONITOR類的返回值m—hMonitor2基于本例,如果m—hMonitor2不為0,則表示該位置上存在第二個(gè)子 顯示器;如果m—hMonitor2為0,則表示該位置上不存在第二個(gè)子顯示器。以此類推,即通過存在的第i個(gè)子顯示器,可以采用以上方法纟企測(cè)是 否存在第i+l個(gè)子顯示器,直到檢測(cè)到足夠的顯示器為止。優(yōu)選的是,在本實(shí)施例中,所述顯示器的位置信息可以包括顯示器 對(duì)應(yīng)區(qū)域的邊界坐標(biāo)、顯示器對(duì)應(yīng)區(qū)域的寬度和顯示器對(duì)應(yīng)區(qū)域的高度?;谏侠?,則可以通過monlnfo保存所有顯示器的信息,這些信息可 以包括顯示器只于應(yīng)區(qū)i或的左邊界坐才示m—xMonitor = monlnfo.rcMonitor.left顯示器對(duì)應(yīng)區(qū)域?qū)挾萴—cxMonitor = monlnfo.rcMonitor.right -onlnfo .rcMonitor. left顯示器對(duì)應(yīng)區(qū)域高度m—cyMonitor = monlnfo.rcMonitor.bottom -monlnfo .rcMonitor. top需要說明的是,本例中由于上邊界坐標(biāo)為0,故在上述信息中省略。 在實(shí)際中,本領(lǐng)域技術(shù)人員采用任一種獲取顯示器位置的方法,以定位 對(duì)應(yīng)顯示窗口都是可行的,本發(fā)明對(duì)此不作限制?;谏鲜鲲@示器的位置信息,即可將相應(yīng)的顯示窗口定位到特定顯 示器對(duì)應(yīng)的顯示區(qū)域。所述定位的方法可以采用現(xiàn)有技術(shù)中的任一種方法,例如,用函數(shù) SetWindowPos()定位各個(gè)顯示窗口 。假設(shè)顯示器包括主顯示器和子顯示器,則相應(yīng)的顯示窗口亦可包括 主窗口和子窗口。定位主窗口時(shí),可以不用創(chuàng)建對(duì)應(yīng)的窗口,也不用i殳置相應(yīng)的位置,而只要在應(yīng)用程序啟動(dòng)時(shí),將主框架窗口設(shè)置為最大化, 即主顯示器對(duì)應(yīng)的顯示區(qū)域就是系統(tǒng)默認(rèn)的顯示區(qū)域。定位子窗口時(shí), 則可以通過創(chuàng)建無模態(tài)對(duì)話框,并將各個(gè)無模態(tài)對(duì)話框的窗口用SetWindowPos()函數(shù)定位到各個(gè)子顯示器對(duì)應(yīng)的顯示區(qū)域,以完成顯示器 和顯示窗口的關(guān)if關(guān)。當(dāng)然,上述顯示器與顯示窗口的關(guān)聯(lián)方法也僅僅用于舉例,本領(lǐng)域 技術(shù)人員根據(jù)需要或經(jīng)驗(yàn)釆用任一種關(guān)聯(lián)方法都是可行的,本發(fā)明對(duì)此 不需要進(jìn)行限定。然后,針對(duì)各個(gè)顯示窗口分別配置相應(yīng)的三維顯示上下文環(huán)境。優(yōu) 選的,所述三維顯示上下文環(huán)境可以為OpenGL上下文環(huán)境。OpenGL的英文全稱是"Open Graphics Library",顧名思義,OpenGL 便是"開放的圖形程序接口 ,, , OpenGL是由多家大計(jì)算機(jī)公司共同制定的 一種開放式三維圖形開發(fā)標(biāo)準(zhǔn),是目前較為完善的三維圖形標(biāo)準(zhǔn)。 OpenGL是一個(gè)與硬件無關(guān)的接口 ,它獨(dú)立于窗口系統(tǒng)、操作系統(tǒng)和硬件 系統(tǒng),可以應(yīng)用于多種不同的石更件平臺(tái)。OpenGL還可應(yīng)用于各種網(wǎng)絡(luò)環(huán) 境,在客戶端運(yùn)行和發(fā)布OpenGL命令,在服務(wù)器端接收并且執(zhí)行命令。 OpenGL作為一個(gè)圖形硬件的軟件接口 ,擁有多個(gè)不同的函數(shù),利用這些 函數(shù)可以創(chuàng)建各種二維和三維物體原形并對(duì)物體進(jìn)行各種操作,包括對(duì) 物體形狀的描述、模型變換、視點(diǎn)變換、坐標(biāo)變換、光效果處理、顏色 設(shè)定、紋理支持、裁剪、位圖處理、反走樣及各種增強(qiáng)效果處理等。 在這種情況下,所述配置步驟102可以包括以下子步驟 子步驟S1、針對(duì)所述顯示窗口創(chuàng)建設(shè)備上下文; 子步驟S2、依據(jù)所述設(shè)備上下文生成OpenGL渲染上下文; 子步驟S3、關(guān)聯(lián)所述OpenGL渲染上下文與設(shè)備上下文。 設(shè)備上下文(Device Context, DC )是一種Windows數(shù)據(jù)結(jié)構(gòu),它包 括與 一個(gè)設(shè)備的繪制屬性相關(guān)的信息。所有的繪制操作通過一個(gè)設(shè)備上下文對(duì)象進(jìn)行,該對(duì)象封裝了實(shí)現(xiàn)繪制線條、形狀和文本等的 Windows API函數(shù)。設(shè)備上下文可以用來向屏幕、打印機(jī)和圖元文件輸出 結(jié)果。本步驟可以通過對(duì)OpenGL進(jìn)行初始化實(shí)現(xiàn),即首先獲得設(shè)備上下文,再利用 一個(gè)OpenGL函數(shù)wglCreateContext從所述設(shè)備上下文生成一 個(gè)OpenGL的渲染上下文(Render Context ) hGLRC ; 然后調(diào)用 wglMakeCurrent把生成的渲染上下文hGLRC跟設(shè)備上下文hDC關(guān)聯(lián)起 來。例如,針對(duì)主窗口和子窗口分別創(chuàng)建OpenGL設(shè)備環(huán)境。其中,主 窗口 OpenGL的顯示處理可以在SDI應(yīng)用程序框架的基礎(chǔ)上實(shí)現(xiàn),主窗 口 OpenGL的初始化處理可以放在SDI視窗類的OnCreate()函數(shù)中進(jìn)行, 包括諸如建立所需的像素格式、得到指定設(shè)備環(huán)境的象素模式索引值, 以及據(jù)此聲明一個(gè)象素模式等處理;然后,通過wglCreateContext()函數(shù), 依據(jù)本窗口關(guān)聯(lián)的設(shè)備上下文創(chuàng)建一個(gè)OpenGL的渲染上下文,并用 wglMakeCurrent()函數(shù)把生成的OpenGL渲染上下文跟設(shè)備上下文關(guān)聯(lián)起 來,將主窗口 (主窗口 3D顯示)的上下文環(huán)境設(shè)置為當(dāng)前OpenGL的上 下文環(huán)境。子窗口的3D顯示則可以通過將之前創(chuàng)建的無模態(tài)對(duì)話框?qū)?yīng)的窗 口分別與新創(chuàng)建的OpenGL渲染上下文關(guān)聯(lián)實(shí)現(xiàn)。各子窗口 OpenGL的 初始化過程與上述主窗口的初始化過程類似,只是應(yīng)力文在各對(duì)話框的 OnCreate()函數(shù)中進(jìn)行。例如,可以采用以下主要代碼實(shí)現(xiàn)創(chuàng)建OpenGL上下文環(huán)境的過程CClientDC* m_pDC = new CClientDC(this);〃創(chuàng)建一個(gè)設(shè)備上下文b S etP ixelF ormat();〃建立應(yīng)用所需的像素格式,并與當(dāng)前設(shè)備上下文相關(guān)聯(lián) int n = ::GetPixelFormat(m_pDC->GetSafeHdc()); 〃獲得指定設(shè)備環(huán)境的象素模式索引::DescribePixelFormat(m_pDC->GetSafeHdc() , n , sizeof(pfd), &pfd);〃聲明一個(gè)象素模式HGLRC hrc = wglCreateContext(m_pDC-〉GetSafeHdc()); 〃創(chuàng)建一個(gè)OpenGL的渲染上下文 wglMakeCurrent(m_pDC->GetSafeHdc() , hrc);〃關(guān)聯(lián)所述OpenGL渲染上下文與設(shè)備上下文,設(shè)置為當(dāng)前OpenGL 的上下文環(huán)境...〃進(jìn)行當(dāng)前上下文環(huán)境的其它設(shè)置例如讀入紋理it據(jù);glEnable打開一些功能,比如GL一BLEND混 合,GL—TEXTURE—2D 二維紋理;glViewport設(shè)定窗口顯示范圍;glFmstum設(shè)定視錐等。當(dāng)然,本領(lǐng)域技術(shù)人員根據(jù)經(jīng)驗(yàn)或需要采用任一種方法設(shè)置各顯示 窗口的上下文環(huán)境都是可行的,本發(fā)明對(duì)此不作限制。一旦接收到用戶輸入的指令,如,用戶通過各種輸入設(shè)備輸入的瀏 覽指令,則將這些指令解析成所述三維顯示上下文環(huán)境下的繪制命令。 例如,用戶在不同瀏覽模式下進(jìn)行鼠標(biāo)移動(dòng)操作,系統(tǒng)接收到用戶的鼠 標(biāo)移動(dòng)指令后,則根據(jù)當(dāng)前瀏覽模式,設(shè)置OpenGL的繪制參數(shù),然后 發(fā)出更新繪制的消息。優(yōu)選的是,所述繪制步驟104可以包括以下子步驟子步驟D1、確定繪制的目標(biāo)顯示窗口,將所述顯示窗口的OpenGL 上下文環(huán)境設(shè)置為當(dāng)前OpenGL上下文環(huán)境;子步驟D2、在當(dāng)前OpenGL上下文環(huán)境執(zhí)行所述繪制命令,完成繪制;子步驟D3、釋放所述OpenGL上下文環(huán)境; 子步驟D4、觸發(fā)下一個(gè)繪制的目標(biāo)顯示窗口。例如,基于主窗口與子窗口的OpenGL上下文環(huán)境,則主窗口的繪制 可以在OnDraw()函數(shù)中進(jìn)行,子窗口的繪制可以在各自的OnPaint()函數(shù) 中進(jìn)行。每個(gè)窗口的繪制開始時(shí),可以先用函數(shù)wglMakeCurrent(Hdc , hrc)使該窗口擁有OpenGL上下文環(huán)境,其中Hdc為當(dāng)前窗口的設(shè)備上下文 句柄,hrc是由函數(shù)wglCreateContext(Hdc)創(chuàng)建的適合本窗口的OpenGL繪 制上下文句柄。在完成本窗口所有的OpenGL繪制后,還可以用函凄t wglMakeCurrent(NULL,NULL)釋放OpenGL上下文環(huán)境。主窗口繪制完成后,則利用SendMessage向第 一個(gè)子窗口發(fā)送繪制消 息,每一個(gè)子窗口收到繪制消息之后,進(jìn)行與主窗口類似的繪制過程, 子窗口繪制完成后,再向下一個(gè)子窗口發(fā)送繪制消息,以此類推。例如,可以采用以下主要代碼實(shí)現(xiàn)每個(gè)窗口的具體繪制過程 (1 ) wglMakeCurrent(m_pDC->GetSafeHdc(), hrc);〃將對(duì)應(yīng)的OpenGL上下文環(huán)境設(shè)置為當(dāng)前環(huán)境 (2)進(jìn)行特定的OpenGL繪制處理包括用glClear()函數(shù)清除顯示;用g正nable()或glDisable()允許或禁止 OpenGL的某些特性;以及,用Show3DS()函數(shù)完成OpenGL的繪制處理。 (3 ) SwapBuffers(wglGetCurrentDC()); 〃交換前后臺(tái)顯示緩沖區(qū)(4) wglMakeCu醒t(NULL, NULL); 〃釋放OpenGL上下文環(huán)境(5 )::SendMessage(m_pNextWnd->m—hWnd, WM—WNDTHREE—UPDATE, 0, 0);〃通知下 一 個(gè)窗口進(jìn)行繪制最后一個(gè)子窗口繪制完成后,利用SendMessage向主窗口發(fā)送繪制 完成消息。如果此時(shí)繪制過程沒有結(jié)束,則由主窗口啟動(dòng)下一輪繪制; 如果繪制過程結(jié)束,則主窗口不再進(jìn)行新的繪制,系統(tǒng)回到等待接收用 戶指令的狀態(tài)。當(dāng)然,本領(lǐng)域技術(shù)人員根據(jù)經(jīng)驗(yàn)或需要采用任一種繪制方法都是可 行的,本發(fā)明對(duì)此不需要進(jìn)行限定。以下進(jìn)一步對(duì)OpenGL的繪制原理進(jìn)4亍說明在OpenGL中的所有數(shù)據(jù)包括幾何頂點(diǎn)數(shù)據(jù)和象素?cái)?shù)據(jù)都可以被存 儲(chǔ)在顯示列表中或者立即可以得到處理。其中,幾何頂點(diǎn)數(shù)據(jù)包括模型 的頂點(diǎn)集、線集、多邊形集,這些數(shù)據(jù)經(jīng)過流程圖的上部,包括運(yùn)算器、 逐個(gè)頂點(diǎn)操作等;圖像數(shù)據(jù)包括象素集、影像集、位圖集等,圖像象素 數(shù)據(jù)的處理方式與幾何頂點(diǎn)數(shù)據(jù)的處理方式是不同的,但它們都經(jīng)過光 柵化、逐個(gè)片元(Fragment)處理直至把最后的光柵數(shù)據(jù)寫入幀緩沖器。 因而,在OpenGL中,顯示列表技術(shù)是一項(xiàng)重要的技術(shù)。OpenGL要求把所有的幾何圖形單元都用頂點(diǎn)來描述,這樣運(yùn)算器和 逐個(gè)頂點(diǎn)計(jì)算操作都可以針對(duì)每個(gè)頂點(diǎn)進(jìn)行計(jì)算和操作,然后進(jìn)行光柵 化形成圖形碎片;對(duì)于象素?cái)?shù)據(jù),象素操作結(jié)果被存儲(chǔ)在紋理組裝用的內(nèi)存中,再象幾何頂點(diǎn)操作一樣光柵化形成圖形片元。整個(gè)流程操作的 最后,圖形片元都要進(jìn)行一系列的逐個(gè)片元操作,這樣最后的象素值送 入幀緩沖器實(shí)現(xiàn)圖形的顯示。從而,可以歸納出在OpenGL中進(jìn)行主要的圖形操作直至在計(jì)算機(jī) 屏幕上渲染繪制出三維圖形的基本步驟1) 根據(jù)基本圖形單元建立模型,并且對(duì)所建立的模型進(jìn)行數(shù)學(xué)描述 (OpenGL中把點(diǎn)、線、多邊形、圖像和位圖都作為基本圖形單元)。2) 把模型放在三維空間中的合適的位置,并且設(shè)置視點(diǎn)(viewpoint) 以觀察所感興趣的景觀。3) 計(jì)算模型中所有物體的色彩,其中的色彩根據(jù)應(yīng)用要求來確定, 同時(shí)確定光照條件、紋理粘貼方式等。4) 把模型的數(shù)學(xué)描述及其色彩信息轉(zhuǎn)換至計(jì)算機(jī)屏幕上的象素,這 個(gè)過程也就是光4冊(cè)化(rasterization )。在這些步驟的執(zhí)行過程中,OpenGL可能執(zhí)行其他的一些操作,例如 自動(dòng)消隱處理等。另外,景物光柵化之后被送入幀緩沖器之前還可以根 據(jù)需要對(duì)像素?cái)?shù)據(jù)進(jìn)行操作。此外,通過OpenGL的前臺(tái)緩存和后臺(tái)緩 存交替顯示場(chǎng)景(Scene)技術(shù),即后臺(tái)緩存計(jì)算場(chǎng)景、生成畫面,前臺(tái) 緩存顯示后臺(tái)緩存已畫好的畫面,還特別有利于提高本發(fā)明的同步顯示 效率。綜上所述,本發(fā)明基于通用的開放接口和計(jì)算機(jī)硬件平臺(tái),簡(jiǎn)單、 有效地實(shí)現(xiàn)了在單臺(tái)計(jì)算機(jī)控制的多個(gè)顯示器上以3D方式同步展示立 體對(duì)象的不同視角的功能;并且,本發(fā)明基于通用硬件實(shí)現(xiàn)的單計(jì)算機(jī) 多顯示器平臺(tái),以及開放的三維顯示接口實(shí)現(xiàn),因而可以進(jìn)一步減少開 發(fā)和運(yùn)行成本。參考圖2,示出了本發(fā)明的一種多屏3D同步顯示裝置實(shí)施例的結(jié)構(gòu) 框圖,具體可以包括以下模塊窗口創(chuàng)建模塊201,用于獲取顯示器的位置信息,依據(jù)所述位置信息 創(chuàng)建顯示窗口 ,所述顯示窗口為各個(gè)顯示器對(duì)應(yīng)的顯示區(qū)域;配置模塊202,用于分別配置所述顯示窗口的三維顯示上下文環(huán)境;指令處理模塊203,用于接收用戶輸入的指令,并解析成所述三維顯示上下文環(huán)境下的繪制命令;繪制模塊204,用于根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。 '優(yōu)選的,在本實(shí)施例中,所述三維顯示上下文環(huán)境為OpenGL上下文環(huán)境,所述配置模塊202可以包括以下子模塊設(shè)備上下文創(chuàng)建子模塊,用于針對(duì)所述顯示窗口創(chuàng)建設(shè)備上下文; OpenGL上下文創(chuàng)建子纟莫塊,用于依據(jù)所述i殳備上下文生成OpenGL渲染上下文;關(guān)聯(lián)子模塊,用于關(guān)聯(lián)所述OpenGL渲染上下文與設(shè)備上下文。 在這種情況下,所述繪制模塊204也可以進(jìn)一步包括以下子模塊 目標(biāo)確定子模塊,用于確定繪制的目標(biāo)顯示窗口,將所述顯示窗口的OpenGL上下文環(huán)境設(shè)置為當(dāng)前OpenGL上下文環(huán)境;執(zhí)行子模塊,用于在當(dāng)前OpenGL上下文環(huán)境執(zhí)行所述繪制命令,完成繪制;釋放子模塊,用于釋放所述OpenGL上下文環(huán)境;觸發(fā)子模塊,用于觸發(fā)下一個(gè)繪制的目標(biāo)顯示窗口。優(yōu)選的,本實(shí)施例還可以包括檢測(cè)模塊,用于檢測(cè)所述顯示器的運(yùn)行環(huán)境,判斷是否滿足運(yùn)行要求,用以確保后續(xù)操作的順利執(zhí)行。參考圖3,示出了應(yīng)用圖2所示的優(yōu)選實(shí)施例進(jìn)行多屏3D同步顯示的方法流程圖,可以包括以下步驟步驟301、檢測(cè)模塊檢測(cè)所述顯示器的運(yùn)行環(huán)境,判斷是否滿足運(yùn)行要求,如果是,則執(zhí)行下一步;否則提示錯(cuò)誤信息;步驟302、窗口創(chuàng)建模塊獲取顯示器的位置信息,依據(jù)所述位置信息創(chuàng)建顯示窗口,所述顯示窗口為各個(gè)顯示器對(duì)應(yīng)的顯示區(qū)域;步驟303、配置模塊分別配置所述顯示窗口的三維顯示上下文環(huán)境; 優(yōu)選的,所述三維顯示上下文環(huán)境為OpenGL上下文環(huán)境,在這種情況下,可以通過以下子模塊執(zhí)行以下子步驟實(shí)現(xiàn)配置子步驟Al、設(shè)備上下文創(chuàng)建子模塊針對(duì)所述顯示窗口創(chuàng)建設(shè)備上下文;子步驟A2、 OpenGL上下文創(chuàng)建子模塊依據(jù)所述設(shè)備上下文生成OpenGL渲染上下文;子步驟A3、關(guān)聯(lián)子模塊關(guān)聯(lián)所述OpenGL渲染上下文與設(shè)備上下文。 步驟304、指令處理模塊接'收用戶輸入的指令,并解析成所述三維顯示上下文環(huán)境下的繪制命令;步驟305、繪制模塊根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。具體可以通過以下子模塊執(zhí)行以下子步驟實(shí)現(xiàn)繪制子步驟B1、目標(biāo)確定子模塊確定繪制的目標(biāo)顯示窗口,將所述顯示窗口的OpenGL上下文環(huán)境設(shè)置為當(dāng)前OpenGL上下文環(huán)境;子步驟B2、執(zhí)行子模塊在當(dāng)前OpenGL上下文環(huán)境執(zhí)行所述繪制命令,完成繪制;子步驟B3、釋放子模塊釋放所述OpenGL上下文環(huán)境;子步驟B4、觸發(fā)子模塊觸發(fā)下一個(gè)繪制的目標(biāo)顯示窗口。由于圖2所示的裝置可以通過圖1所示的流程完成,相關(guān)內(nèi)容和詳細(xì)的實(shí)施過程已經(jīng)在前述部分進(jìn)行了詳細(xì)描述,有關(guān)圖2的描述中未詳盡之處,可以參見本說明書前述相關(guān)部分。參考圖4,示出了本發(fā)明的一種多屏3D同步顯示系統(tǒng)實(shí)施例的結(jié)構(gòu) 框架圖,具體可以包括與一臺(tái)計(jì)算機(jī)401連接的多個(gè)顯示器402...,所述 顯示器用于通過相應(yīng)的顯示窗口展示同一顯示對(duì)象的不同視角;所述計(jì)算機(jī)401包括;窗口創(chuàng)建模塊4011,用于獲取顯示器的位置信息,依據(jù)所述位置信 息創(chuàng)建顯示窗口 ,所述顯示窗口為各個(gè)顯示器對(duì)應(yīng)的顯示區(qū)域;配置模塊4012,用于分別配置所述顯示窗口的三維顯示上下文環(huán)境;指令處理模塊4013,用于接收用戶輸入的指令,并解析成所述三維 顯示上下文環(huán)境下的繪制命令;繪制模塊4014,用于根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。優(yōu)選的,在本實(shí)施例中,所述三維顯示上下文環(huán)境為OpenGL上下 文環(huán)境,所述配置才莫塊4012可以包括以下子才莫塊設(shè)備上下文創(chuàng)建子模塊,用于針對(duì)所述顯示窗口創(chuàng)建設(shè)備上下文; OpenGL上下文創(chuàng)建子才莫塊,用于依據(jù)所述i殳備上下文生成OpenGL 渲染上下文;關(guān)聯(lián)子模塊,用于關(guān)聯(lián)所述OpenGL渲染上下文與設(shè)備上下文。 在這種情況下,所述繪制模塊4014也可以進(jìn)一步包括以下子模塊 目標(biāo)確定子模塊,用于確定繪制的目標(biāo)顯示窗口,將所述顯示窗口的OpenGL上下文環(huán)境i殳置為當(dāng)前OpenGL上下文環(huán)境;執(zhí)行子模塊,用于在當(dāng)前OpenGL上下文環(huán)境執(zhí)行所述繪制命令,完成繪制;釋放子模塊,用于釋放所述OpenGL上下文環(huán)境; 觸發(fā)子模塊,用于觸發(fā)下一個(gè)繪制的目標(biāo)顯示窗口。 優(yōu)選的,本實(shí)施例還可以包括檢測(cè)模塊,用于檢測(cè)所述顯示器的運(yùn) 行環(huán)境,判斷是否滿足運(yùn)行要求??梢韵氲降氖牵景l(fā)明的系統(tǒng)還可實(shí)現(xiàn)基于網(wǎng)絡(luò)的多機(jī)多屏3D顯示 系統(tǒng),即在由網(wǎng)絡(luò)連接的多臺(tái)計(jì)算機(jī)上,通過運(yùn)行特定的控制軟件實(shí)現(xiàn) 的多屏3D顯示系統(tǒng)。系統(tǒng)中每臺(tái)計(jì)算機(jī)都可以作為主控計(jì)算機(jī),可以分 別設(shè)置每臺(tái)計(jì)算機(jī)顯示的視角,各計(jì)算機(jī)的顯示在主控計(jì)算機(jī)的控制下, 按指定的視角同步進(jìn)行同一對(duì)象的顯示變換。以生成多臺(tái)計(jì)算機(jī)連網(wǎng)構(gòu) 成的多機(jī)多屏3D顯示系統(tǒng)。對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相應(yīng)于方法實(shí)施例,所以描述的 比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。本發(fā)明可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如個(gè) 人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處 理器系統(tǒng)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的 一般上下文中描 述,例如程序模塊。 一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽 象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布 式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò) 而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。以上對(duì)本發(fā)明所提供的一種多屏3D同步顯示方法、 一種多屏3D同 步顯示裝置及一種多屏3D同步顯示系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般 技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改 變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1、一種多屏3D同步顯示方法,其特征在于,包括獲取顯示器的位置信息,依據(jù)所述位置信息創(chuàng)建顯示窗口,所述顯示窗口為各個(gè)顯示器對(duì)應(yīng)的顯示區(qū)域;分別配置所述顯示窗口的三維顯示上下文環(huán)境;接收用戶輸入的指令,并解析成所述三維顯示上下文環(huán)境下的繪制命令;根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。
2、 如權(quán)利要求l所述的方法,其特征在于,所述三維顯示上下文環(huán)境 為OpenGL上下文環(huán)境,所述配置步驟包括針對(duì)所述顯示窗口創(chuàng)建設(shè)備上下文; 依據(jù)所述設(shè)備上下文生成OpenGL渲染上下文; 關(guān)聯(lián)所述OpenGL渲染上下文與設(shè)備上下文。
3、 如權(quán)利要求2所述的方法,其特征在于,所述繪制步驟包括 確定繪制的目標(biāo)顯示窗口 ,將所述顯示窗口的OpenGL上下文環(huán)境設(shè)置為當(dāng)前OpenGL上下文環(huán)境;在當(dāng)前OpenGL上下文環(huán)境執(zhí)行所述繪制命令,完成繪制; 釋力文所述OpenGL上下文環(huán)境; 觸發(fā)下一個(gè)繪制的目標(biāo)顯示窗口 。
4、 如權(quán)利要求l所述的方法,其特征在于,還包括 檢測(cè)所述顯示器的運(yùn)行環(huán)境,判斷是否滿足運(yùn)行要求。
5、 如權(quán)利要求l所述的方法,其特征在于,所述顯示器的位置信息包 括顯示器對(duì)應(yīng)區(qū)域的邊界坐標(biāo)、顯示器對(duì)應(yīng)區(qū)域的寬度和顯示器對(duì)應(yīng)區(qū)域 的高度。
6、 一種多屏3D同步顯示裝置,其特征在于,包括 窗口創(chuàng)建模塊,用于獲取顯示器的位置信息,依據(jù)所述位置信息創(chuàng)建顯示窗口,所述顯示窗口為各個(gè)顯示器對(duì)應(yīng)的顯示區(qū)域;配置模塊,用于分別配置所述顯示窗口的三維顯示上下文環(huán)境; 指令處理模塊,用于接收用戶輸入的指令,并解析成所述三維顯示上下文環(huán)境下的繪制命令;繪制模塊,用于根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。
7、 如權(quán)利要求6所述的裝置,其特征在于,所述三維顯示上下文環(huán)境 為OpenGL上下文環(huán)境,所述配置模塊包括設(shè)備上下文創(chuàng)建子模塊,用于針對(duì)所述顯示窗口創(chuàng)建設(shè)備上下文; OpenGL上下文創(chuàng)建子模塊,用于依據(jù)所述設(shè)備上下文生成OpenGL渲 染上下文;關(guān)聯(lián)子模塊,用于關(guān)聯(lián)所述OpenGL渲染上下文與設(shè)備上下文。
8、 如權(quán)利要求7所述的裝置,其特征在于,所述繪制模塊包括 目標(biāo)確定子模塊,用于確定繪制的目標(biāo)顯示窗口 ,將所述顯示窗口的OpenGL上下文環(huán)境設(shè)置為當(dāng)前OpenGL上下文環(huán)境;執(zhí)行子模塊,用于在當(dāng)前OpenGL上下文環(huán)境執(zhí)行所述繪制命令,完 成繪制;釋放子模塊,用于釋放所述OpenGL上下文環(huán)境; 觸發(fā)子模塊,用于觸發(fā)下一個(gè)繪制的目標(biāo)顯示窗口。
9、 如權(quán)利要求6所述的裝置,其特征在于,還包括檢測(cè)模塊,用于檢測(cè)所述顯示器的運(yùn)行環(huán)境,判斷是否滿足運(yùn)行要求。
10、 一種多屏3D同步顯示系統(tǒng),其特征在于,包括與一臺(tái)計(jì)算機(jī)連接 的多個(gè)顯示器,所述顯示器用于通過相應(yīng)的顯示窗口展示同一顯示對(duì)象的 不同視角;所述計(jì)算機(jī)包括;窗口創(chuàng)建模塊,用于獲取顯示器的位置信息,依據(jù)所述位置信息創(chuàng)建 顯示窗口,所述顯示窗口為各個(gè)顯示器對(duì)應(yīng)的顯示區(qū)域;配置模塊,用于分別配置所述顯示窗口的三維顯示上下文環(huán)境;指令處理模塊,用于接收用戶輸入的指令,并解析成所述三維顯示上 下文環(huán)境下的繪制命令;繪制模塊,用于根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。
全文摘要
本發(fā)明提供了一種多屏3D同步顯示方法,包括獲取顯示器的位置信息,依據(jù)所述位置信息創(chuàng)建顯示窗口,所述顯示窗口為各個(gè)顯示器對(duì)應(yīng)的顯示區(qū)域;分別配置所述顯示窗口的三維顯示上下文環(huán)境;接收用戶輸入的指令,并解析成所述三維顯示上下文環(huán)境下的繪制命令;根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。本發(fā)明可以實(shí)現(xiàn)在單臺(tái)計(jì)算機(jī)控制的多個(gè)顯示器上以3D方式同步展示立體對(duì)象的不同視角的功能。
文檔編號(hào)G06T15/00GK101236485SQ200810057009
公開日2008年8月6日 申請(qǐng)日期2008年1月28日 優(yōu)先權(quán)日2008年1月28日
發(fā)明者劉建明 申請(qǐng)人:國(guó)電信息中心