基本信息
可視計算是在現代微處理器、計算機圖形學、多媒體等技術日益發展成熟的條件下,新興的一個研究把計算機構造成為可視建模設備的活躍領域。可視計算強調把抽象的事物以可視的形式反映給用戶,是使計算變得更容 易,擴大人們的認識範圍的一個有力手段。
分類
不同的使用者對計算機有著不同的要求:終端用戶關心的是用戶界面,程式設計師關心的是程式可視化和可視程式設計;科學工作者和數據分析員關心的是可視化和模擬。從這一角度來看,可視計算可分三個主要的分支,即:程式設計可視輔助、可視界面及可視化 。
程式可視化和可視程式設計是提高程式設計師生產率和正確性的有效途徑。前者主要用於程式構造,後者主要用於程式調試、程式行為理解以及數據可視化,第二個分支是與 計算機的可視互動。依據實現互動的技術,可將各種系統分為三類:WIMP,
虛擬現實,及自然人工景物技術。 第三個分支是
科學可視化,它是可視計算中發展最為迅速的一 個領域。 它的迅速發展部分歸功於計算能力和三維圖形的發展,因為直到最近,才有可能繪製出一 個用戶可與之互動的三維環境的令人信服的界面,當前有兩種主要的科學可視化方法:基於面的可視化方法和基於體的可視化方法。
程式設計可視輔助
圖形有強有力的表達能力,而傳統語言又不盡人意,人們便對使用圖形作為程式設計的輔助手段產生了極大興趣。傳統程式設計語言的主要缺陷在於它的線性程式設計風格,圖形增加了表達的維數,使程式設計師能直接把思想中的概念反映到計算機中。這種程式設計風格對人來說更為自然,由於它自動地完成程式設計中的瑣碎工作,因此增強了程式設計師開發和調試代碼的能力,在程式設計的簡單性和高效性上取得重大突破。
可視程式設計系統使程式設計師可以通過二維或高維計算功能和單元的顯示技術來合成程式;程式可視化則是通過提供對程式不同方面的特徵的可視來幫助人們調試和理解程式。可視程式設計系統根據圖形在構造程式中的使用方式來進行分類:第一類是圖形界面系統,用戶通過與系統互動來指導系統生成程式;第二類是可視語言系統,除了用圖象代替正文之外,這類系統與傳統程式設計系統類似。根據用來生成程式的圖象不同,對可視語言 系統可作進一步的分類。.
可視化系統是根據它們是否顯示程式代碼、程式數據或基本算法來進行分類的。根據它們是靜態還是動態,程式代碼和數據可視化系統還可進一步劃分。
1、可視程式設計系統
(1)圖形互動程式設計:圖形互動系統提供給程式設計師互動式圖形界面,程式設計師通過互動來指導系統生成一個供最終用戶使用的程式,這種程式設計也叫不可見編程。大多數這類系統是解釋執行的。
(2)可視程式設計語言系統:可視程式設計語 言有一個圖形符號集,這些符號按一定語法規則排列就構造 出程式,圖形符號的排列有嚴格定義的語義。就此而言,傳統程式設計語言和可視程式設計語言的唯一區別,在於後者使用 的是圖形符號、而不是正文表達式。但在編程的簡單性和效率方面,二者相去甚遠。根據在創建程式 時使用的圖形抽象不同 ,現有的大多數可視程式設計語言可劃分為三類:流圖、圖符、表和表格。
(3)流圖:基於流圖的可視程式設計系統使程式設計師能使用各種類型的圖表和圖來構造程式。流圖被用來說 明程式的數據流或控制流。程式設計師創建的圖形說明被編譯為某一傳統程式設計語言,或 直接由系統進行翻譯。Grail系統把用戶描述的流程圖直接翻譯成機器語言程式;PASCAL/HSD則是在PASCAL中加上標準流程圖的圖形符號。還有一些用數據流圖來支持數據流語言程式自動生成的系統,如PROGRAPH。
(4)圖符:在圖符系統中,程式是通過稱為圖符的專門設計的圖形符號及其之間的聯繫來構造程式的。通常,圖符的互聯方式是由系統對圖符的排列斌予一定的語義來說明的。多數基於圖符的程式設計系統提供預定義 的圖符,並允許用戶自定義圖符。程式設計師通過某種方式把它們連成需要的控制流的路徑表示來構造程式。使用圖符的程式設計系統有:SunPict, Show and Tell, VenLisp等。
(5)表/表格:這類系統允許用戶通過使用表或填寫表格來構造程式。表格填寫被認為是一種與用戶 互動的容易方法,因而在許多系統中被大量地使用。如QEE允許用戶用 二維表說明對關係資料庫的查詢;FORMANAGER使用戶能用表格開發事務信息系統,FORMAL是一種基於表的資料庫語言。
2、可視化系統
(1)程式可視化:程式可視化系統提供程式代碼的靜態或動態顯示,幫助對程式代碼結構和程式控制流的理解,以及對程式性能調試的分析。靜態程式可視化系統通常藉助於流程圖來描述程式數據流,或藉助整齊列印空行、空格、縮進格式、和注釋等來增加程式的可讀性。動態程式可視化系統以動畫形式顯示程式的執行過程,或以對應於程式的動畫圖畫,或以加亮程式代碼的方式,顯示程式運行時的控制、程式、或數據視圖。動態程式可視化對調試和分析分散式及多處理機軟體特別有用,使程式設計師能了解系統與正在執行的程式之間的相互作用。PECAN是典型的多視圖動態可視化系統。
(2)算法可視化:這種系統顯示程式的基本操作,不僅體現 數據的轉換和訪間,也體現控制流。RonBaecker的系統能生成幀序列,產生電影效果的算法動畫顯示;BALSA系統則是在算法代碼中插有趣事件過程調用來生成動畫。
(3)數據可視化:數據可視化系統以靜態或動畫的方式來顯示程式數據。靜態數據可視化系統通常用於數據結構的自動生成,系統除提供顯示庫外,還允許用戶自定義顯示方式,並支持各種數據結構的可視、編輯、和瀏 覽等功能,如INSENCE。動態數據可視化通過互動式圖形顯示來定義程式數據結構之間的關係、描述程式運行過程中對數據的訪問和修改,這類系統已在並行和分散式程式的性能調試中廣泛使用,如PV。
最終用戶與計算機的互動
用 戶界面的發展導致了軟體和硬體上新技術的進步,以及新的互動模型的開發。近年來,界面已從單純的正文方式發展到圖形方式和使用象頭盔顯示器及數據手套這樣的高級界面設備的直接操作方式。
對最終用戶與計算機的互動的分類可分為兩級,第一級基於實現互動所用的軟、硬體技術。主要包含WIMP、VR、人工自然場景。使用上述分類中的每種技術也還有不同的互動風格,這些互動模型或隱喻構成了分類的第二級。
其中WIMP問題包含:桌面隱喻和空間隱喻兩種;VR包含具體現實和抽象現實;自然人工場景代表了用自然方式(如手勢、文字書寫、及口述語言)與計算機互動的發展方向。
科學可視化
科學可視化在實現數據可視和互動的科學家界面時,利用了計算機圖形學、圖像理解與合成、用戶界面、計 算機視覺、及計算機輔助設計的技術,取得了極大成功。科學可視化主要套用於計算科學和工程設計套用中產生的數值數據的可視。
直到最近,可視化軟體工具 一直是 由圖形子程式庫和動 畫程式包組成的。圖形子程式庫是一個低級圖形操 作集合,用該庫實現可視化,用戶需要用傳統語言編程,並在程式中嵌入對圖形子程式的調用。這一過程不僅 要花費許多時間,而且要求用戶有特殊的技巧,例如,要了解圖形庫使用的數據 結構、影響圖像成像的觀察和光 照屬性 、以及庫所使用的繪製過程。
使用動畫程式包生成可視化軟體時,用戶首先(通常以批方式 ) 生成可視數據,然後用包提洪的功能來實現可視化。儘管與圖形子程式庫相比,使用程式包更為容易和高效,但也還有許多問題。如大多數程式包的套用範圍非常狹窄,數據輸入格式也十分有限,常常需要將一個模組產生的輸出數據轉換為另一個模組能夠接受的數據形式。
將來的研究
可視計算機將來的研究點如下:
1、程式設計的可視輔助
可視程式設計和程式可視化正越來越受關注,過去的幾年中已推出許多有趣的系統,而更多的正在開發。儘管已作了很多努力,充分開發圖形在程式設計中的潛力還有待於作進一步的努力。
2、與計算機互動
(1)WIMP界面:儘管在基於WIMP技術的界面設計中已取得成功, 並有了大量的經驗, 低質量的WIMP界面仍在生產。主要的問題是, 缺少開發良好界面的支持工具。用戶界面管理系統的目標是通過提供界面開發的輔助工具來解決這一問題;
(2)虛擬現實:許多現有的虛擬現實應用程式是用低級工具開發的, 既費時又昂貴, 這不利於對其它技術的探索,也限制了它的套用。因此需要開發支持生成這些界面的軟體工具箱和UIMS;
(3)自然人工場景:實現與計算機以人類日常互動的方式互動是有趣的, 然而難以做到, 因為這是一個相當廣的領域, 包括許多不同的技術, 而這些技術的信噪比都很高, 難以準確判斷出真正的輸入; 而且聲頻、手勢以及手寫體的使用很可能是高度依賴於使用者的, 要解決這個問題, 要么使系統專用於特定的用戶風格, 要么使它一般化到能夠獨立於使用者。
3、科學可視化
科學可視化的算法和數據結構是一個重要研究領域, 因為可視化生成通常是一個計算密集的過程,算法上一個相對較小的提高, 也能使生成圖像的總時間大大減少。這些算法可分為幾類; 加快可視化( 體可視化和面可視化) 的算法、由圖像數據構造體的算法以及構造體數據幾何模型的算法。
,