three.js之光源

作為3D技術的發展趨勢,瀏覽器端3D技術越來越被一些技術公司重視。由此,Threejs非常注重3D渲染效果的真實性,對渲染真實性來說,使用光源是比不可少的技巧。Threejs,在光源方面提供了多種光源供選擇。

1.光源大概有7種,其中:

基礎光源4種:

環境光(AmbientLight; 會把它的顏色會添加到整個場景和所有對象的當前顏色上)

點光源(PointLight ;空間中的一點,朝所有的方向發射光線)

聚光燈光源(SpotLight ;這種光源有聚光的效果,類似于臺燈,手電筒等)

方向光(DirectionalLight ;也稱無限光,從這種光源發出的光線可以看作是平行的,例如太陽光)

特殊光源有3種:

半球光光源(HemisphereLight,可以為室內場景創建更加自然的光照效果,模擬反光面和光線微弱的天氣)

面光源(AreaLight使用這種光源可以指定散發光線的平面,而不是空間的一個點)

鏡頭炫光(LensFlare這不是一種光源,但是通過該炫光可以為場景中的光源添加炫目的效果)

2.光源基類

在three.js中,光源用light表示,它是所有光源的基類,其函數是:

THREE.Light ( hex )/////他有一個函數,接收一個16進制的顏色值。

例:

let redLight = new THREE.Light(0xFF0000);

下面分別介紹three.js的基礎光源:

1.環境光

環境光是經過多次反射而來的光稱為環境光,無法確定其最初的方向。環境光是一種無處不在的光。環境光源放出的光線被認為來自任何方向。因此,當你僅為場景指定環境光時,所有的物體無論法向量如何,都將表現為同樣的明暗程度。

環境光用THREE.AmbientLight來表示,例:

var light = new THREE.AmbientLight(0x917CF9 );

有一個接受顏色值的參數。

2.點光源

點光源:由這種光源放出的光線來自同一點,且方向輻射自四面八方。例如蠟燭放出的光,燈籠放出的光。

點光源用PointLight來表示,例:

PointLight( color, intensity, distance )

有3個參數,分別是:

光的顏色,

光的強度(默認1.0),

光的距離(默認0.0)

3.聚光燈

聚光燈:這種光源的光線從一個錐體中射出,在被照射的物體上產生聚光的效果。

聚光燈用SpotLight來表示,例:

THREE.SpotLight( hex, intensity, distance, angle, exponent )

有5個參數,分別是:

聚光燈發出的顏色,

光源強度,

光線強度,

聚光燈著色角度(用弧度作為單位,這個角度是和光源的方向形成的角度),

光源模型衰減的一個參數,越大越衰減

4.方向光

該光源可以看做是距離很遠很遠的光源,以至于該光源所發出的所有光線都是相互平行的,

方向光光源的一個范例就是太陽,方向光光源不像聚焦光那樣離目標越遠越暗淡,被方向光光源照亮的整個區域接收到的光強是一樣的

方向光用DirectionalLight來表示,例:

THREE.DirectionalLight = function ( hex, intensity )

有2個參數,分別是:

光的顏色,

光線強度

以上是three.js的基礎光源,下面來介紹特殊光源:

1.半球光源

這種光源可以為室外場景創建更加自然的光照效果

我們模擬室外光照的時候,可以使用方向光源來模擬太陽,再添加一個環境光源,為場景添加基礎色

但是這樣看起來不太自然,因為室外的光并不都是來自于上方,很多是來自于空氣的散射和地面的反射,以及其他物體的反射

所以在使用方向光源來模擬太陽的情況下再添加一個半球光就自然多了

半球光用HemisphereLight來表示

2.平面光源

平面光光源可以定義為一個發光的矩形

1 由于該光源是THREE.js的擴展,需要引入擴展庫

2 平面光源是一種很復雜的光源,因此不能再使用WebGLRenderer對象了,該對象會造成嚴重的性能損失

3 因此在處理復雜光源或者多個光源的時候,使用WebGL的延遲渲染器WebGLDeferredRenderer

平面光用AreaLight來表示

3.鏡頭炫光

當我們直接朝著太陽拍照時就會出現鏡頭眩光(彩色的小光圈),對于游戲或者三維圖像來說,鏡頭眩光會使得場景看起來更真實

鏡頭炫光用LensFlare來表示

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,533評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,055評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,365評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,561評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,346評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,889評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,978評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,118評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,637評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,558評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,739評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,246評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,980評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,619評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,347評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,702評論 2 370

推薦閱讀更多精彩內容

  • 一、四大光照類型1.環境光(Ambient Light) 一個物體即使沒有直接被光源照射,但是只要有光線通過其他物...
    CarlDonitz閱讀 1,502評論 0 0
  • 我們目前使用的所有光照都來自于一個單獨的光源,這是空間中的一個點。它的效果不錯,但是在真實世界,我們有多種類型的光...
    IceMJ閱讀 1,186評論 1 1
  • 一提到摳圖、去掉背景,我們立即會想到Photoshop。作為圖片處理的專業軟件,Photoshop在摳圖上自然很厲...
    工作力閱讀 1,785評論 0 3
  • 美欒翻出了她99年的筆記,記錄了當時創城的盛況。然后西柚說,你這一輩子都在創城;欒回,多有意義……? ...
    一枕清菏閱讀 241評論 0 0
  • 光輝歲月BEYOND - 命運派對 上個世紀的中國農村,改革開放的紅利已經凸顯,好多年輕人都選擇外出打工掙錢,南下...
    嘿大圣閱讀 252評論 0 0