如何在3D模型上實現太陽光照模擬?

2021-09-27 06:47:23 字數 1574 閱讀 2681

當前示例用於模擬太陽光照效果。

第一步 新增螢幕炫光

/**

* @description: 新增乙個螢幕炫光到場景,因為螢幕炫光不是實際的光源,只是乙個效果,因此一般配合其他光源使用。

* 一般用此螢幕炫光來模擬太陽光源,因此配合乙個平行光源使用。

* 一般使平行光產生陰影效果分為以下幾步:

* 1. 將渲染器的陰影設定開啟,即 renderer.shadowmap.enabled = true;

* 2. 將此光源的產生陰影的屬性開啟,即 spotldirectionallightight.castshadow = true;

* 3. 調整此光源的光源陰影範圍,一般要使產生陰影的物體的位置大於陰影相機的最小值,小於最大值;

* 4. 將需要產生陰影的物體的產生陰影的屬性開啟,即obj.castshadow = true;

* 5. 將要接收陰影的屬性開啟,即obj.receiveshadow = true;

*/const

addlensflarelight=(

)=>

第二步 建立陰影平面

// 建立乙個地面,用來接收正方體的陰影

// 需要將地面接收陰影的屬性開啟,以接收陰影

const

addground=(

)=>);

const geometry =

newthree.planegeometry

(50000

,50000,32

);// 乙個長方形幾何體,長寬都為100

const cube =

newthree.mesh

(geometry, material)

;// 建立這個mesh物件

cube.position.

copy

(vizbim.components[componentid]

.position)

;// 將這個矩形的位置設定為正方體物體的位置

cube.position.z -=

100;

// 將這個正方體的位置向z軸負方向調整100

cube.receiveshadow =

true

;// 將地面接收陰影的屬性開啟

vizbim.scene.

add(cube)

;// 將地面新增到場景中

movethebox()

;animate()

;render()

;}

第三步 構件旋轉

// 令構件旋轉

const

movethebox=(

)=>

如何在UI之間正確的顯示3D模型

我們在做角色渲染時,通常會遇到一種情況,就是在ui與ui之間顯示乙個模型。而我們模型是用3d渲染的,如果直接放乙個模型上來。那麼就會導致要麼模型永遠在ui上面,要麼ui永遠在模型上面,達不到我們想要的模型夾在兩個ui之間的效果。要做到這個效果,就會考慮到用rt來解決,具體就是在乙個ui上的乙個節點上...

3D模型在網頁上顯示

3d模型在網頁上顯示,這絕對是未來的趨勢,也是熱門。一部 阿凡達 讓電影節發生了一次 讓人們感到3d的時代到來。那麼我們it界呢?如果各位因工作時間繁忙,或者嫌上海世博會人山人海,或者嫌天氣太熱不願出門,可以選擇在網頁上遨遊上海世博會。這個3d與網頁這個以前敢都不敢想它們會連在一起的?如今實現了,當...

3D模型在網頁上顯示

3d模型在網頁上顯示,這絕對是未來的趨勢,也是熱門。一部 阿凡達 讓電影節發生了一次 讓人們感到3d的時代到來。那麼我們it界呢?如果各位因工作時間繁忙,或者嫌上海世博會人山人海,或者嫌天氣太熱不願出門,可以選擇在網頁上遨遊上海世博會。這個3d與網頁這個以前敢都不敢想它們會連在一起的?如今實現了,當...