国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Threejs入門之四:Threejs中的光

這篇具有很好參考價(jià)值的文章主要介紹了Threejs入門之四:Threejs中的光。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前面我們用Threejs創(chuàng)建了一個(gè)3D立方體到瀏覽器,并使其跟隨鼠標(biāo)旋轉(zhuǎn)和縮放,但是,上帝說要有光,于是就有了光~~~額,好吧,這一節(jié)我們來認(rèn)識(shí)下Threejs中的燈光,Threejs提供了很多燈光的API,這里我們主要了解下環(huán)境光(AmbientLight)、點(diǎn)光(PointLight)、平行光(DirectionalLight)、和聚光燈(SpotLight)。
1.AmbientLight:環(huán)境光會(huì)均勻的照亮場(chǎng)景中的所有物體,環(huán)境光沒有方向,所以環(huán)境光不能用來投射陰影。AmbientLight對(duì)象接收兩個(gè)參數(shù),第一個(gè)參數(shù)為光的顏色(顏色的rgb數(shù)值。缺省值為 0xffffff),第二個(gè)參數(shù)為光的強(qiáng)度(取值范圍0-1,默認(rèn)為1)

在index.js中添加如下代碼,即可創(chuàng)建環(huán)境光并添加到場(chǎng)景中

// 創(chuàng)建環(huán)境光
const light = new THREE.AmbientLight(0x404040,,0.6)
scene.add(light)

添加完成后運(yùn)行瀏覽器,發(fā)現(xiàn)瀏覽器并沒有任何變化
threejs 光線,ThreeJS,javascript,html5,3d
這是因?yàn)槲覀冊(cè)谥斑x擇材質(zhì)的時(shí)間選擇的是基礎(chǔ)網(wǎng)格材質(zhì)(MeshBasicMaterial),這種材質(zhì)是不受光照影響的,所以,我們要把之前的材質(zhì)進(jìn)行修改,修改為L(zhǎng)ambert網(wǎng)格材質(zhì)(MeshLambertMaterial),這是一種非光澤表面的材質(zhì),沒有鏡面高光。它可以很好地模擬一些表面(例如未經(jīng)處理的木材或石材),但不能模擬具有鏡面高光的光澤表面(例如涂漆木材)
找到之前創(chuàng)建的材質(zhì),修改代碼如下

const material = new THREE.MeshLambertMaterial({
  color:0xff0000,//設(shè)置顏色 
})

threejs 光線,ThreeJS,javascript,html5,3d
此時(shí)發(fā)現(xiàn)場(chǎng)景中的物體明顯變暗了
2.PointLight:點(diǎn)光源,從一個(gè)點(diǎn)向各個(gè)方向發(fā)射的光源。比如燈泡發(fā)出的光。
PointLight( color : Integer, intensity : Float, distance : Number, decay : Float )接收四個(gè)參數(shù),
color - (可選參數(shù))) 十六進(jìn)制光照顏色。 缺省值 0xffffff (白色)
intensity - (可選參數(shù)) 光照強(qiáng)度。 缺省值 1。
distance - 這個(gè)距離表示從光源到光照強(qiáng)度為0的位置。 當(dāng)設(shè)置為0時(shí),光永遠(yuǎn)不會(huì)消失(距離無窮大)。缺省值 0.
decay - 沿著光照距離的衰退量。缺省值 1
創(chuàng)建一個(gè)點(diǎn)光源并添加到場(chǎng)景中

// 創(chuàng)建點(diǎn)光 參數(shù)1 光的顏色,參數(shù)2 光的強(qiáng)度
const pointLight = new THREE.PointLight(0xffffff,1)

就想生活中的燈泡是在屋頂中央的位置安裝一樣,我們?cè)赥hreejs中也要給點(diǎn)光源一個(gè)位置,然后將其添加到場(chǎng)景中

// 點(diǎn)光源的位置 
pointLight.position.set(400,300,200)
scene.add(pointLight)

此時(shí)運(yùn)行瀏覽器,可以看到物體表明已經(jīng)有了明暗變化,光能照到的地方是亮的,找不到的地方是暗的。
threejs 光線,ThreeJS,javascript,html5,3d
3.DirectionalLight:平行光是沿著特定方向發(fā)射的光??梢岳斫鉃檫@種光是無限遠(yuǎn)的,從它發(fā)出的光線都是平行的。常常用平行光來模擬太陽光 的效果; 太陽足夠遠(yuǎn),因此我們可以認(rèn)為太陽的位置是無限遠(yuǎn),所以我們認(rèn)為從太陽發(fā)出的光線也都是平行的。
平行光可以投射陰影

// 平行光
const directionalLight = new THREE.DirectionalLight(0xffffff,1)
// 設(shè)置光源的方向:通過光源position屬性和目標(biāo)指向?qū)ο蟮膒osition屬性計(jì)算光線的方向
directionalLight.position.set(80,100,50)
// 光的方向指向?qū)ο缶W(wǎng)格模型mesh,不設(shè)置默認(rèn)為0,0,0
directionalLight.target = mesh
scene.add(directionalLight)

threejs 光線,ThreeJS,javascript,html5,3d
4.SpotLight:聚光燈:光線從一個(gè)點(diǎn)沿一個(gè)方向射出,隨著光線照射的變遠(yuǎn),光線圓錐體的尺寸也逐漸增大。
該光源可以投射陰影

// 聚光燈
const spotLight = new THREE.SpotLight( 0xffffff );
spotLight.position.set( 0, 200, 100 );
scene.add(spotLight)

瀏覽器顯示效果如下
threejs 光線,ThreeJS,javascript,html5,3d
總結(jié):Threejs提供了各種光源,各個(gè)光源的應(yīng)用場(chǎng)景不盡相同,具體用法可以查閱官方文檔。文章來源地址http://www.zghlxwxcb.cn/news/detail-651426.html

到了這里,關(guān)于Threejs入門之四:Threejs中的光的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Three.JS教程5 threejs中的材質(zhì)

    Three.JS教程5 threejs中的材質(zhì)

    Three.js中的材質(zhì)(Material)是實(shí)現(xiàn)引人注目的3D效果的關(guān)鍵組件之一。本篇博客中,我們將深入探討Three.js中的材質(zhì)類型、屬性和用法。 在Three.js中,材質(zhì)是應(yīng)用于幾何體(Geometry)的外觀和紋理的規(guī)則。它們決定了對(duì)象在場(chǎng)景中如何反射光線、顯示顏色、反射環(huán)境等。 Three.j

    2024年02月21日
    瀏覽(95)
  • Threejs入門之三:讓物體跟隨鼠標(biāo)動(dòng)起來

    Threejs入門之三:讓物體跟隨鼠標(biāo)動(dòng)起來

    上一節(jié)我們創(chuàng)建了一個(gè)三維的立方體,將其放在了瀏覽器窗口中,但是目前來講它只是一個(gè)靜態(tài)的圖片,我們并不能通過鼠標(biāo)控制其旋轉(zhuǎn)、縮放和移動(dòng),這一節(jié)我們來實(shí)現(xiàn)用鼠標(biāo)控制物體的運(yùn)動(dòng)。 首先我們要了解一個(gè)概念,在三維場(chǎng)景中,我們要控制物體旋轉(zhuǎn),實(shí)際上不是物

    2024年02月11日
    瀏覽(42)
  • Threejs入門之十八:GUI調(diào)試器的使用

    Threejs入門之十八:GUI調(diào)試器的使用

    GUI是圖形用戶界面(Graphical User Interface)的簡(jiǎn)寫,為了方便我們?cè)诰帉懘a時(shí)對(duì)相機(jī)、燈光等對(duì)象的參數(shù)進(jìn)行實(shí)時(shí)調(diào)節(jié),Threejs為我們提供了GUI庫,使用它,可以快速創(chuàng)建控制三維場(chǎng)景的UI交互界面;threejs三維空間的很多參數(shù)都需要通過GUI的方式調(diào)試出來。這里我們?nèi)匀灰陨弦还?jié)

    2024年02月09日
    瀏覽(17)
  • 【js&threeJS】入門three,并實(shí)現(xiàn)3D汽車展示廳,附帶全碼

    【js&threeJS】入門three,并實(shí)現(xiàn)3D汽車展示廳,附帶全碼

    首先放個(gè)最終效果圖: ? 三維(3D)概念: 三維(3D)是一個(gè)描述物體在三個(gè)空間坐標(biāo)軸上的位置和形態(tài)的概念。相比于二維(2D)只有長(zhǎng)度和寬度的平面,三維增加了高度或深度這一維度 在三維空間中,我們使用三個(gè)獨(dú)立的坐標(biāo)軸來描述物體的位置。通常使用笛卡爾坐標(biāo)系

    2024年02月11日
    瀏覽(703)
  • Threejs 三維開發(fā)系列之Threejs基礎(chǔ)概念

    Threejs 三維開發(fā)系列之Threejs基礎(chǔ)概念

    Threejs簡(jiǎn)介 (是什么)Threejs是一個(gè)web端的3D圖形引擎,能利用js創(chuàng)建和控制各種三維模型和場(chǎng)景 (能用來做什么)可以用js開發(fā)各種復(fù)雜的三維場(chǎng)景、空間模型動(dòng)畫展示、各種三維小游戲(比如微信跳一跳就是Threejs開發(fā))。 (優(yōu)勢(shì)) 傳統(tǒng)三維開發(fā)一般是c++ openGl,開發(fā)成本大效率低,th

    2024年02月08日
    瀏覽(42)
  • Threejs開發(fā)3D展館 | 大帥老猿threejs特訓(xùn)

    Threejs開發(fā)3D展館 | 大帥老猿threejs特訓(xùn)

    本文將介紹如果使用Threejs開發(fā)制作一個(gè)3D展館,效果如圖: ?首先,我們需要一個(gè)展館模型。我是通過Blender做出來的,在Blender中將模型導(dǎo)出為glb格式。 接下來,我們通過代碼將模型加載到網(wǎng)頁中。 在3D圖形開發(fā)中,最基本的概念就是場(chǎng)景、相機(jī)和光源。這三個(gè)是構(gòu)成3D世界

    2024年02月11日
    瀏覽(17)
  • threejs實(shí)戰(zhàn)數(shù)字孿生園區(qū)開源(threejs+vue3+vite)

    threejs實(shí)戰(zhàn)數(shù)字孿生園區(qū)開源(threejs+vue3+vite)

    Hello大家好,我是日拱一卒的攻城師不浪,專注前端、后端、AI學(xué)習(xí)、2D3D、GIS等學(xué)習(xí)沉淀,這是2024年輸出的第10/100篇文章,歡迎志同道合的朋友一起學(xué)習(xí)交流; 公眾號(hào):攻城師不浪 綠泡泡:brown_7778 threejs數(shù)字孿生園區(qū) 近兩年, web3D 的勢(shì)頭逐漸興起。 例如得物的 VR穿戴 ,貝

    2024年04月16日
    瀏覽(16)
  • 【ThreeJS基礎(chǔ)教程-初識(shí)Threejs】1.6各種各樣的幾何體

    【ThreeJS基礎(chǔ)教程-初識(shí)Threejs】1.6各種各樣的幾何體

    本段內(nèi)容會(huì)寫在0篇以外所有的,本人所編寫的Threejs教程中 對(duì),學(xué)習(xí)ThreeJS有捷徑 當(dāng)你有哪個(gè)函數(shù)不懂的時(shí)候,第一時(shí)間去翻一翻文檔 當(dāng)你有哪個(gè)效果不會(huì)做的時(shí)候,第一時(shí)間去翻一翻所有的案例,也許就能找到你想要的效果 最重要的一點(diǎn),就是,絕對(duì)不要怕問問題,越怕找

    2024年02月08日
    瀏覽(26)
  • Threejs進(jìn)階之一:基于vite+vue3+threejs構(gòu)建三維場(chǎng)景

    Threejs進(jìn)階之一:基于vite+vue3+threejs構(gòu)建三維場(chǎng)景

    前面的章節(jié)我們都是通過HTML+JS的方式創(chuàng)建三維場(chǎng)景,從這一章節(jié)開始,我們后面將使用vite+vue3+threejs來構(gòu)建三維場(chǎng)景。 打開vscode的終端管理器,輸入如下命令 在彈出的選擇框架提醒中,按上下鍵盤鍵,選擇Vue,然后回車 選擇JavaScript,回車 提示項(xiàng)目創(chuàng)建完成, 輸入cd vue3-t

    2024年02月12日
    瀏覽(25)
  • ThreeJS 炫酷特效旋轉(zhuǎn)多面體Web頁 Demo 01《ThreeJS 炫酷特效制作》

    ThreeJS 炫酷特效旋轉(zhuǎn)多面體Web頁 Demo 01《ThreeJS 炫酷特效制作》

    本案例為一個(gè) threejs 的特效網(wǎng)頁,大小球體進(jìn)行包裹,外球體為透明材質(zhì),但是進(jìn)行了線框渲染,使其能夠通過外球踢查看其內(nèi)球體。 注:案例參考源于互聯(lián)網(wǎng),在此做代碼解釋,侵刪 本案例除 ThreeJS 外不適用任何第三方框架,放心食用 懶的同學(xué)可以直接下載代碼,打賞作

    2024年02月08日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包