three.js Frustum

2023-02-16 17:46 更新

Frustums 用于確定相機(jī)視野內(nèi)的東西。 它有助于加速渲染過程——位于攝像機(jī)視錐體外的物體可以安全地排除在渲染之外。

該類主要用于渲染器內(nèi)部計(jì)算 camera 或 shadowCamera的視錐體。

構(gòu)造器(Constructor)

Frustum(p0 : Plane, p1 : Plane, p2 : Plane, p3 : Plane, p4 : Plane, p5 : Plane)

p0 - (可選參數(shù)) Plane.
p1 - (可選參數(shù)) Plane.
p2 - (可選參數(shù)) Plane.
p3 - (可選參數(shù)) Plane.
p4 - (可選參數(shù)) Plane.
p5 - (可選參數(shù)) Plane.

使用6個(gè)面來構(gòu)建一個(gè)視錐體。

屬性(Properties)

.planes : Array

包含6個(gè)平面 planes 的數(shù)組。

方法(Methods)

.clone () : Frustum

返回一個(gè)與當(dāng)前對(duì)象有相同參數(shù)的視錐體。

.containsPoint ( point : Vector3 ) : Boolean

point - Vector3 被檢測(cè)的點(diǎn)。

檢測(cè)該點(diǎn) point 是否在視錐體內(nèi)。

.copy ( frustum : Frustum ) : this

frustum - 用于拷貝的視錐體。

將傳入 frustum 的屬性拷貝到當(dāng)前對(duì)象。

.intersectsBox ( box : Box3 ) : Boolean

box - Box3 用于檢測(cè)是否要交的包圍盒。

返回 true 如果該 box 與視錐體相交。

.intersectsObject ( object : Object3D ) : Boolean

檢測(cè) object 的包圍球 bounding sphere 是否與視錐體相交。

注意:該對(duì)象必須有一個(gè) BufferGeometry ,因?yàn)檫@樣才能計(jì)算出包圍球。

.intersectsSphere ( sphere : Sphere ) : Boolean

sphere - Sphere 用于檢查是否相交。

返回true 如果球sphere與視錐體相交。

.intersectsSprite ( sprite : Sprite ) : Boolean

檢查精靈sprite是否與截錐體相交。

.set ( p0 : Plane, p1 : Plane, p2 : Plane, p3 : Plane, p4 : Plane, p5 : Plane ) : this

從傳入的平面設(shè)置當(dāng)前視錐體。沒有隱式的順序。

請(qǐng)注意,此方法僅復(fù)制給定對(duì)象的值。

.setFromProjectionMatrix ( matrix : Matrix4 ) : this

matrix - 投影矩陣 Matrix4 會(huì)被用來設(shè)置該視椎體的 planes

根據(jù)投影矩陣 matrix 來設(shè)置當(dāng)前視椎體的六個(gè)面。

源碼

src/math/Frustum.js


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)