/*** 光照(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,可以成為乙個錐體。是否封蓋這個...