Condividi tramite


Visibility.FrustumCullSpheres Method

Definition

Given an OpenGL ES ModelView-Projection matrix (which implicitly describes a frustum) and a list of spheres, determine which spheres intersect the frustum.

[Android.Runtime.Register("frustumCullSpheres", "([FI[FII[III)I", "")]
public static int FrustumCullSpheres (float[]? mvp, int mvpOffset, float[]? spheres, int spheresOffset, int spheresCount, int[]? results, int resultsOffset, int resultsCapacity);
[<Android.Runtime.Register("frustumCullSpheres", "([FI[FII[III)I", "")>]
static member FrustumCullSpheres : single[] * int * single[] * int * int * int[] * int * int -> int

Parameters

mvp
Single[]

a float array containing the mode-view-projection matrix

mvpOffset
Int32

The offset of the mvp data within the mvp array.

spheres
Single[]

a float array containing the sphere data.

spheresOffset
Int32

an offset into the sphere array where the sphere data starts

spheresCount
Int32

the number of spheres to cull.

results
Int32[]

an integer array containing the indices of the spheres that are either contained entirely within or intersect the frustum.

resultsOffset
Int32

an offset into the results array where the results start.

resultsCapacity
Int32

the number of array elements available for storing results.

Returns

the number of spheres that intersected the frustum. Can be larger than resultsCapacity, in which case only the first resultsCapacity results are written into the results array.

Attributes

Exceptions

if mvp is null, mvpOffset mvp.length - 16, spheres is null, spheresOffset spheres.length - sphereCount, results is null, resultsOffset results.length - resultsCapacity.

Remarks

Given an OpenGL ES ModelView-Projection matrix (which implicitly describes a frustum) and a list of spheres, determine which spheres intersect the frustum.

A ModelView-Projection matrix can be computed by multiplying the a Projection matrix by the a ModelView matrix (in that order.). There are several possible ways to obtain the current ModelView and Projection matrices. The most generally applicable way is to keep track of the current matrices in application code. If that is not convenient, there are two optional OpenGL ES extensions which may be used to read the current matrices from OpenGL ES: <ul> <li>GL10Ext.glQueryMatrixxOES <li>GL11.GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES and GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES </ul> The problem with reading back the matrices is that your application will only work with devices that support the extension(s) that it uses.

A frustum is a six-sided truncated pyramid that defines the portion of world space that is visible in the view.

Spheres are described as four floating point values: x, y, z, and r, in world-space coordinates. R is the radius of the sphere.

Java documentation for android.opengl.Visibility.frustumCullSpheres(float[], int, float[], int, int, int[], int, int).

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Applies to