The viewing frustum is defined by 6 planes.
Each plane is represented by a
Cartesian4
object, where the x, y, and z components
define the unit vector normal to the plane, and the w component is the distance of the
plane from the origin/camera position.
Name | Type | Description | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
An object with the following properties:
|
Example:
var frustum = new Cesium.PerspectiveFrustum({
fov : Cesium.Math.PI_OVER_THREE,
aspectRatio : canvas.clientWidth / canvas.clientHeight
near : 1.0,
far : 1000.0
});
See:
Members
-
The number of elements used to pack the object into an array.
-
The aspect ratio of the frustum's width to it's height.
-
Default Value:
undefined
-
The distance of the far plane.
-
Default Value:
500000000.0
-
The angle of the field of view (FOV), in radians. This angle will be used as the horizontal FOV if the width is greater than the height, otherwise it will be the vertical FOV.
-
Default Value:
undefined
-
Gets the angle of the vertical field of view, in radians.
-
Default Value:
undefined
-
readonlyinfiniteProjectionMatrix : Matrix4
-
The perspective projection matrix computed from the view frustum with an infinite far plane.
-
The distance of the near plane.
-
Default Value:
1.0
-
readonlyprojectionMatrix : Matrix4
-
Gets the perspective projection matrix computed from the view frustum.
-
Offsets the frustum in the x direction.
-
Default Value:
0.0
-
Offsets the frustum in the y direction.
-
Default Value:
0.0
Methods
-
Stores the provided instance into the provided array.
Name Type Default Description value
PerspectiveFrustum The value to pack. array
Array.<Number> The array to pack into. startingIndex
Number 0
optional The index into the array at which to start packing the elements. Returns:
The array that was packed into -
staticCesium.PerspectiveFrustum.unpack(array, startingIndex, result) → PerspectiveFrustum
-
Retrieves an instance from a packed array.
Name Type Default Description array
Array.<Number> The packed array. startingIndex
Number 0
optional The starting index of the element to be unpacked. result
PerspectiveFrustum optional The object into which to store the result. Returns:
The modified result parameter or a new PerspectiveFrustum instance if one was not provided. -
clone(result) → PerspectiveFrustum
-
Returns a duplicate of a PerspectiveFrustum instance.
Name Type Description result
PerspectiveFrustum optional The object onto which to store the result. Returns:
The modified result parameter or a new PerspectiveFrustum instance if one was not provided. -
computeCullingVolume(position, direction, up) → CullingVolume
-
Creates a culling volume for this frustum.
Name Type Description position
Cartesian3 The eye position. direction
Cartesian3 The view direction. up
Cartesian3 The up direction. Returns:
A culling volume at the given position and orientation.Example:
// Check if a bounding volume intersects the frustum. var cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp); var intersect = cullingVolume.computeVisibility(boundingVolume);
-
Compares the provided PerspectiveFrustum componentwise and returns
true
if they are equal,false
otherwise.Name Type Description other
PerspectiveFrustum optional The right hand side PerspectiveFrustum. Returns:
true
if they are equal,false
otherwise. -
getPixelDimensions(drawingBufferWidth, drawingBufferHeight, distance, result) → Cartesian2
-
Returns the pixel's width and height in meters.
Name Type Description drawingBufferWidth
Number The width of the drawing buffer. drawingBufferHeight
Number The height of the drawing buffer. distance
Number The distance to the near plane in meters. result
Cartesian2 The object onto which to store the result. Returns:
The modified result parameter or a new instance ofCartesian2
with the pixel's width and height in the x and y properties, respectively.Throws:
-
DeveloperError : drawingBufferWidth must be greater than zero.
-
DeveloperError : drawingBufferHeight must be greater than zero.
Examples:
// Example 1 // Get the width and height of a pixel. var pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 1.0, new Cesium.Cartesian2());
// Example 2 // Get the width and height of a pixel if the near plane was set to 'distance'. // For example, get the size of a pixel of an image on a billboard. var position = camera.position; var direction = camera.direction; var toCenter = Cesium.Cartesian3.subtract(primitive.boundingVolume.center, position, new Cesium.Cartesian3()); // vector from camera to a primitive var toCenterProj = Cesium.Cartesian3.multiplyByScalar(direction, Cesium.Cartesian3.dot(direction, toCenter), new Cesium.Cartesian3()); // project vector onto camera direction vector var distance = Cesium.Cartesian3.magnitude(toCenterProj); var pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, distance, new Cesium.Cartesian2());
-