three.js繪製過程(二)

同一個場景中能夠有多個攝像機,同一個屏幕緩衝區能夠分塊繪製不一樣的物體。canvas

 

WeblGLRender 中autoClear 設定爲false以後, 每次繪製不會清空緩衝區;函數

setSize 設定canvas的大小date

setViewport 設定繪製的位置的大小構造函數

clear() 手動清空繪製緩衝區margin

 

例若有兩個攝像機A B;top

將autoClear設定爲false,移動

在繪製函數中 di

開始手動清空緩衝區clear()co

setViewport (0 0, Width/2, height) 左側能夠繪製第一個攝像機的看到的場景,background

render() 

setViewport(width/2, 0, width/2, height) 右側能夠繪製第二個攝像機的場景

render()

 

這樣就能夠在一個屏幕上繪製兩個攝像機的看到的場景。

 

CameraHelper:

THREE 中有 CameraHelper類能夠幫助肯定場景中攝像機的位置,和可視見範圍, 本質上是一個場景節點。

CameraHelper 自己是一個Object3D, 能夠做爲攝像機的子節點, 這樣就能夠保證和攝像機一塊兒移動。

CameraHelper的update函數, 當觀察的攝像機參數改變, 好比fov, far平面, 則須要更新helper的狀態。

 

構造函數 CameraHelper(camera) 傳入要觀察的攝像機

相關文章
相關標籤/搜索