frustum()#

Sets a perspective matrix as defined by the parameters.

Examples#

example picture for frustum()

def setup():
    py5.size(100, 100, py5.P3D)
    py5.no_fill()
    py5.background(204)
    py5.frustum(-10, 0, 0, 10, 10, 200)
    py5.rotate_y(py5.PI/6)
    py5.box(45)

Description#

Sets a perspective matrix as defined by the parameters.

A frustum is a geometric form: a pyramid with its top cut off. With the viewer’s eye at the imaginary top of the pyramid, the six planes of the frustum act as clipping planes when rendering a 3D view. Thus, any form inside the clipping planes is rendered and visible; anything outside those planes is not visible.

Setting the frustum has the effect of changing the perspective with which the scene is rendered. This can be achieved more simply in many cases by using perspective().

Note that the near value must be greater than zero (as the point of the frustum “pyramid” cannot converge “behind” the viewer). Similarly, the far value must be greater than the near value (as the “far” plane of the frustum must be “farther away” from the viewer than the near plane).

Works like glFrustum, except it wipes out the current perspective matrix rather than multiplying itself with it.

Underlying Processing method: frustum

Signatures#

frustum(
    left: float,  # left coordinate of the clipping plane
    right: float,  # right coordinate of the clipping plane
    bottom: float,  # bottom coordinate of the clipping plane
    top: float,  # top coordinate of the clipping plane
    near: float,  # near component of the clipping plane; must be greater than zero
    far: float,  # far component of the clipping plane; must be greater than the near value
    /,
) -> None

Updated on March 06, 2023 02:49:26am UTC