概述
明暗描繪是人類真實地表達對象的主要技術之一,存在著兩種基本不同的明暗描繪方法:逐點曝光法和基於知識法,逐點曝光法按繪圖介質上各點所接收光強的大小而給定圖上該點的明暗,基於知識法則是按照已有的物體明暗變化知識,將顏料塗到介質的相應部位上去,攝影是採用逐點曝光法的一個例子,美術師作畫則是採用基於知識法的一個例子。
發展
在計算機圖形學中,明暗描繪技術被稱為Shading技術,它仍是目前研究的熱點之一,從70年代開始,已經歷了幾個重要的發展階段。
1975年,Phong提出了基於Lambertin定律的光照模型,指出光強為,與物體表面法向量夾角為,與視線夾角為的光線,在漫反射係數為,鏡面反射係數為的物體表面上引起的光強I為:
Phong模型奠定了逐點曝光的計算方法。
1980年,Whitted,提出了光線跟蹤方法(ray tracing)。這個方法除了在Phong模型基礎上略加改進,發展成一個全局照明模型外,主要貢獻在於:它不是沿著物體表面的各點來計算光強,而是沿著二維成象介質(如視區上各點)上的各象素來展開算法,這樣一來,至少有兩個直接的好處:一是可以很方便地求得環境中各物體彼此之間的反射影響;二是在視線不到之處,可以不加考慮,而在視線所到之處,可以更精細地計算(每個象素即進行計算),因此,物體的明暗描繪更加逼真.儘管第二條的優點削減了第一條所引起的計算量的大大增加,光線跟蹤方法仍需要比以前方法更多的執行時間。光線跟蹤方法與照相原理十分接近,呈現更典型的逐點曝光方法特徵。
1984年,Goral等提出輻射法(radiosity),旨在模擬物體之間的漫反射效果。輻射法把描繪的環境作為一個由面組成的閉合體處理,而這些面假定為完全漫反射。在此環境中一個面A之明暗由它所發出的光強而定,A所發出的光強為它反射環境中其他面射向它的光強之和,而其他面所射向A的光強大小則與A的位置因子(form factor)有關。位置因子由A與其他各面的距離及夾角而定,輻射法反映了物體之間彼此漫反射的效果,其計算量是十分巨大的,並且難以反映鏡面反射和折射等效果。
關於逐點曝光法
從光線跟蹤到輻射法的發展過程中,這類方法考慮的因素越來越複雜,計算也越來越繁重,在實際使用中帶來很多問題。首先是計算量過大,所耗機時過長,這個矛盾對有實時要求的套用,如動畫、視點移動模擬等等,特別突出,因此,很多套用為了追求速度,不得不降低所生成圖形的質量,其次,用逐點曝光計算法所描繪的圖形過於刻板,難以反映設計者希望的效果,難以調整,也難以互動.這一缺陷常常招致建築師和其他造型設計師的不滿,大多數研究者都以真實感為其目標.但是真實感主要是用戶的一種感覺,而這種感覺之強烈程度,並不總隨著計算的細膩程度而增加.基於上述分析與觀察,引人人類描繪明暗的第二類方法,即基於知識法是十分必要的。
關於知識描繪
基於知識描繪明暗的方法是人類設計師和畫家常採用的方法,他們從素描訓練中獲取基本體素表面上明暗變化的知識,而在設計與繪畫過程中,他們使用這種知識,可以描繪出具有非常真實感覺的圖象來,將人工智慧的方法運用到Shading技術中去,就可以在計算機上模擬人類的這獨基於知識的月暗描繪方法,不妨稱之為SBK(Shading Based on Knowiedges)技術。