threejs學習筆記 各種光源

2021-08-14 08:45:32 字數 1437 閱讀 6608

/*** 光照(light) ***/

//基礎光源,它的顏色會新增到整個場景和所有物件的當前顏色

//在使用其他光源時同時使用ambientlight,可以弱化陰影或新增一些顏色

//用色應該盡量保守,顏色過亮會導致畫面顏色很快飽和

new three.ambientlight(顏色); // 環境光(影響整個場景的光源)

//可以只傳入顏色引數

new three.pointlight(顏色, 強度, 距離); // 點光源(照射所有方向的光源)

//點光源例子

let pointcolor="#ccffcc";

let pointlight =new three.pointlight(pointcolor);

pointlight.distance = 100;

pointlight.intensity=20; //光強度的倍數,設為0則無燈光

scene.add(pointlight);

new three.directionallight(顏色, 亮度); // 平行光(模擬遠處類似太陽的光源)

new three.spotlight(顏色, 強度, 距離, 夾角, 衰減指數); // 聚光燈(具有錐形效果的光源)

//跟點光源差別不大,差別是castshadow設定為true可以有陰影

//可以只傳入顏色引數

//設定target屬性可以決定光源對準某個物體照射的物件(即使物件在移動,也會對準)

//如果不想對準某個物體而是指定的某一點可以建立乙個空的three.object3d()例項如下:

var target = new three.object3d();

target.position = new three.vector3(5,0,0);

spotlight.target = target; //設定光源的target屬性

//以及比較少用的其他光源

three.hemispherelight//(半球光光源)

//在室外的時候,並不是所有的光照都來自乙個方向,很多來自空氣的散射 地面的反射以及其他物體的反射

//單用乙個方向的光源使物體看起來不自然,這種光源是比較自然的光源,不過要指定來自上方光線的顏色

//地面的顏色 以及她們的光照強度 groundcolor(地面發出的光線顏色) color(天空發出的光線顏色)

//intensity(光照的強度)

three.arealight//(平面光光源) //非常複雜的光源,它會對three.webglrenderer物件造成非常嚴重的效能損失

three.lensflare//(鏡頭眩光) //現實中對著太陽看會出現鏡頭眩光,對遊戲和三維,是一種很好的效果,更加真實

threejs學習筆記 材質

meshbasematerial 網格基礎材質 meshbasematerial 網格基礎材質 是一種非常簡單的材質,這種材質不會考慮光照的影響。使用這種材質網格備渲染成簡單的平面多邊形,可以用它賦予幾何體一種簡單的顏色,並且可以顯示幾何體的線框。meshdepthmaterial 網格深度材質 m...

threejs學習筆記 10

1 webgl的原生介面是不帶陰影功能的,而threejs對陰影做了封裝,簡單設定幾個引數就可以實現陰影了。renderer.shadowmapenabled true light.castshadow true cubemesh.castshadow true plane.receiveshado...

threejs學習筆記 6

1 cylindergeometry類是用於設定圓柱的,接收上截面直徑 下截面直徑 高度 截面數 是否封頂蓋這幾個引數。但事實上,如果將截面數設定為乙個比較小的數字,比如3 4之類的,就完全看不出是個圓柱了!只有將截面數設得比較大時,才像個圓柱。如果將上截面直徑設為0,可以成為乙個錐體。是否封蓋這個...