-
-
Notifications
You must be signed in to change notification settings - Fork 35.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
BatchedMesh: Add documentation (#27175)
* Add docs * Add more docs * Add page to docs * Add more docs * Update * Add note for extension requirement * Update list.json Ensure alphabetical order in side menu. --------- Co-authored-by: Michael Herzog <[email protected]>
- Loading branch information
Showing
2 changed files
with
202 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,201 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8" /> | ||
<base href="../../../" /> | ||
<script src="page.js"></script> | ||
<link type="text/css" rel="stylesheet" href="page.css" /> | ||
</head> | ||
<body> | ||
[page:Mesh] → | ||
|
||
<h1>[name]</h1> | ||
|
||
<p class="desc"> | ||
A special version of [page:Mesh] with multi draw batch rendering support. Use | ||
[name] if you have to render a large number of objects with the same | ||
material but with different world transformations and geometry. The usage | ||
of [name] will help you to reduce the number of draw calls and thus | ||
improve the overall rendering performance in your application. | ||
|
||
<br/> | ||
<br/> | ||
|
||
Requires platform support for the [link:https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_multi_draw WEBGL_multi_draw extension]. | ||
</p> | ||
|
||
<h2>Examples</h2> | ||
<p> | ||
[example:webgl_mesh_batch WebGL / mesh / batch]<br /> | ||
</p> | ||
|
||
<h2>Constructor</h2> | ||
<h3> | ||
[name]( | ||
[param:Integer maxGeometryCount], [param:Integer maxVertexCount], | ||
[param:Integer maxIndexCount], [param:Material material], | ||
) | ||
</h3> | ||
<p> | ||
[page:Integer maxGeometryCount] - the max number of individual geometries planned to be added.<br /> | ||
[page:Integer maxVertexCount] - the max number of vertices to be used by all geometries.<br /> | ||
[page:Integer maxIndexCount] - the max number of indices to be used by all geometries.<br /> | ||
[page:Material material] - an instance of [page:Material]. Default is a | ||
new [page:MeshBasicMaterial].<br /> | ||
[page:Integer count] - the number of instances.<br /> | ||
</p> | ||
|
||
<h2>Properties</h2> | ||
<p>See the base [page:Mesh] class for common properties.</p> | ||
|
||
<h3>[property:Box3 boundingBox]</h3> | ||
<p> | ||
This bounding box encloses all instances of the [name]. Can be calculated | ||
with [page:.computeBoundingBox](). Default is `null`. | ||
</p> | ||
|
||
<h3>[property:Sphere boundingSphere]</h3> | ||
<p> | ||
This bounding sphere encloses all instances of the [name]. Can be | ||
calculated with [page:.computeBoundingSphere](). Default is `null`. | ||
</p> | ||
|
||
<h3>[property:Boolean perObjectFrustumCulled]</h3> | ||
<p> | ||
If true then the individual objects within the [name] are frustum culled. Default is `true`. | ||
</p> | ||
|
||
<h3>[property:Boolean sortObjects]</h3> | ||
<p> | ||
If true then the individual objects within the [name] are sorted to improve overdraw-related artifacts. | ||
If the material is marked as "transparent" objects are rendered back to front and if not then they are | ||
rendered front to back. Default is `true`. | ||
</p> | ||
|
||
<h3>[property:Boolean isBatchedMesh]</h3> | ||
<p>Read-only flag to check if a given object is of type [name].</p> | ||
|
||
<h2>Methods</h2> | ||
<p>See the base [page:Mesh] class for common methods.</p> | ||
|
||
<h3>[method:undefined computeBoundingBox]()</h3> | ||
<p> | ||
Computes the bounding box, updating [page:.boundingBox] attribute.<br /> | ||
Bounding boxes aren't computed by default. They need to be explicitly | ||
computed, otherwise they are `null`. | ||
</p> | ||
|
||
<h3>[method:undefined computeBoundingSphere]()</h3> | ||
<p> | ||
Computes the bounding sphere, updating [page:.boundingSphere] | ||
attribute.<br /> | ||
Bounding spheres aren't computed by default. They need to be explicitly | ||
computed, otherwise they are `null`. | ||
</p> | ||
|
||
<h3>[method:undefined dispose]()</h3> | ||
<p> | ||
Frees the GPU-related resources allocated by this instance. Call this | ||
method whenever this instance is no longer used in your app. | ||
</p> | ||
|
||
<h3> | ||
[method:Matrix4 getMatrixAt]( [param:Integer index], [param:Matrix4 matrix] ) | ||
</h3> | ||
<p> | ||
[page:Integer index]: The index of an instance. Values have to be in the | ||
range [0, count]. | ||
</p> | ||
<p> | ||
[page:Matrix4 matrix]: This 4x4 matrix will be set to the local | ||
transformation matrix of the defined instance. | ||
</p> | ||
<p>Get the local transformation matrix of the defined instance.</p> | ||
|
||
<h3> | ||
[method:Boolean getVisibleAt]( [param:Integer index] ) | ||
</h3> | ||
<p> | ||
[page:Integer index]: The index of an instance. Values have to be in the | ||
range [0, count]. | ||
</p> | ||
<p>Get whether the given instance is marked as "visible" or not.</p> | ||
|
||
<h3> | ||
[method:this setMatrixAt]( [param:Integer index], [param:Matrix4 matrix] ) | ||
</h3> | ||
<p> | ||
[page:Integer index]: The index of an instance. Values have to be in the | ||
range [0, count]. | ||
</p> | ||
<p> | ||
[page:Matrix4 matrix]: A 4x4 matrix representing the local transformation | ||
of a single instance. | ||
</p> | ||
<p> | ||
Sets the given local transformation matrix to the defined instance. Make | ||
sure you set [page:.instanceMatrix][page:BufferAttribute.needsUpdate .needsUpdate] | ||
to true after updating all the matrices. | ||
</p> | ||
|
||
<h3> | ||
[method:this setVisibleAt]( [param:Integer index], [param:Boolean visible] ) | ||
</h3> | ||
<p> | ||
[page:Integer index]: The index of an instance. Values have to be in the | ||
range [0, count]. | ||
</p> | ||
<p> | ||
[page:Boolean visible]: A boolean value indicating the visibility state. | ||
</p> | ||
<p> | ||
Sets the visibility of the object at the given index. | ||
</p> | ||
|
||
<h3> | ||
[method:Integer addGeometry]( [param:BufferGeometry geometry], [param:Integer reservedVertexRange], [param:Integer reservedIndexRange] ) | ||
</h3> | ||
<p> | ||
[page:BufferGeometry index]: The geometry to add into the [name]. | ||
</p> | ||
<p> | ||
[page:Integer reservedVertexRange]: Optional parameter specifying the amount of vertex buffer space to reserve for the added geometry. This | ||
is necessary if it is planned to set a new geometry at this index at a later time that is larger than the original geometry. Defaults to | ||
the length of the given geometry vertex buffer. | ||
</p> | ||
<p> | ||
[page:Integer reservedIndexRange]: Optional parameter specifying the amount of index buffer space to reserve for the added geometry. This | ||
is necessary if it is planned to set a new geometry at this index at a later time that is larger than the original geometry. Defaults to | ||
the length of the given geometry index buffer. | ||
</p> | ||
<p> | ||
Adds the given geometry to the [name] and returns the associated index referring to it. | ||
</p> | ||
|
||
<h3> | ||
[method:Integer setGeometryAt]( [param:Integer index], [param:BufferGeometry geometry] ) | ||
</h3> | ||
<p> | ||
[page:Integer index]: Which geometry index to replace with this geometry. | ||
</p> | ||
<p> | ||
[page:BufferGeometry geometry]: The geometry to substitute at the given geometry index. | ||
</p> | ||
<p> | ||
Replaces the geometry at `index` with the provided geometry. Throws an error if there is not enough space reserved for geometry at the index. | ||
</p> | ||
|
||
<h3> | ||
[method:this deleteGeometry]( [param:Integer index] ) | ||
</h3> | ||
<p> | ||
Marks the geometry at the given index as deleted and to not be rendered anymore. | ||
</p> | ||
|
||
<h2>Source</h2> | ||
|
||
<p> | ||
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js] | ||
</p> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters