diff --git a/docs/api/en/objects/BatchedMesh.html b/docs/api/en/objects/BatchedMesh.html new file mode 100644 index 00000000000000..59bf60ecead592 --- /dev/null +++ b/docs/api/en/objects/BatchedMesh.html @@ -0,0 +1,201 @@ + + + + + + + + + + [page:Mesh] → + +

[name]

+ +

+ 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. + +
+
+ + Requires platform support for the [link:https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_multi_draw WEBGL_multi_draw extension]. +

+ +

Examples

+

+ [example:webgl_mesh_batch WebGL / mesh / batch]
+

+ +

Constructor

+

+ [name]( + [param:Integer maxGeometryCount], [param:Integer maxVertexCount], + [param:Integer maxIndexCount], [param:Material material], + ) +

+

+ [page:Integer maxGeometryCount] - the max number of individual geometries planned to be added.
+ [page:Integer maxVertexCount] - the max number of vertices to be used by all geometries.
+ [page:Integer maxIndexCount] - the max number of indices to be used by all geometries.
+ [page:Material material] - an instance of [page:Material]. Default is a + new [page:MeshBasicMaterial].
+ [page:Integer count] - the number of instances.
+

+ +

Properties

+

See the base [page:Mesh] class for common properties.

+ +

[property:Box3 boundingBox]

+

+ This bounding box encloses all instances of the [name]. Can be calculated + with [page:.computeBoundingBox](). Default is `null`. +

+ +

[property:Sphere boundingSphere]

+

+ This bounding sphere encloses all instances of the [name]. Can be + calculated with [page:.computeBoundingSphere](). Default is `null`. +

+ +

[property:Boolean perObjectFrustumCulled]

+

+ If true then the individual objects within the [name] are frustum culled. Default is `true`. +

+ +

[property:Boolean sortObjects]

+

+ 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`. +

+ +

[property:Boolean isBatchedMesh]

+

Read-only flag to check if a given object is of type [name].

+ +

Methods

+

See the base [page:Mesh] class for common methods.

+ +

[method:undefined computeBoundingBox]()

+

+ Computes the bounding box, updating [page:.boundingBox] attribute.
+ Bounding boxes aren't computed by default. They need to be explicitly + computed, otherwise they are `null`. +

+ +

[method:undefined computeBoundingSphere]()

+

+ Computes the bounding sphere, updating [page:.boundingSphere] + attribute.
+ Bounding spheres aren't computed by default. They need to be explicitly + computed, otherwise they are `null`. +

+ +

[method:undefined dispose]()

+

+ Frees the GPU-related resources allocated by this instance. Call this + method whenever this instance is no longer used in your app. +

+ +

+ [method:Matrix4 getMatrixAt]( [param:Integer index], [param:Matrix4 matrix] ) +

+

+ [page:Integer index]: The index of an instance. Values have to be in the + range [0, count]. +

+

+ [page:Matrix4 matrix]: This 4x4 matrix will be set to the local + transformation matrix of the defined instance. +

+

Get the local transformation matrix of the defined instance.

+ +

+ [method:Boolean getVisibleAt]( [param:Integer index] ) +

+

+ [page:Integer index]: The index of an instance. Values have to be in the + range [0, count]. +

+

Get whether the given instance is marked as "visible" or not.

+ +

+ [method:this setMatrixAt]( [param:Integer index], [param:Matrix4 matrix] ) +

+

+ [page:Integer index]: The index of an instance. Values have to be in the + range [0, count]. +

+

+ [page:Matrix4 matrix]: A 4x4 matrix representing the local transformation + of a single instance. +

+

+ 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. +

+ +

+ [method:this setVisibleAt]( [param:Integer index], [param:Boolean visible] ) +

+

+ [page:Integer index]: The index of an instance. Values have to be in the + range [0, count]. +

+

+ [page:Boolean visible]: A boolean value indicating the visibility state. +

+

+ Sets the visibility of the object at the given index. +

+ +

+ [method:Integer addGeometry]( [param:BufferGeometry geometry], [param:Integer reservedVertexRange], [param:Integer reservedIndexRange] ) +

+

+ [page:BufferGeometry index]: The geometry to add into the [name]. +

+

+ [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. +

+

+ [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. +

+

+ Adds the given geometry to the [name] and returns the associated index referring to it. +

+ +

+ [method:Integer setGeometryAt]( [param:Integer index], [param:BufferGeometry geometry] ) +

+

+ [page:Integer index]: Which geometry index to replace with this geometry. +

+

+ [page:BufferGeometry geometry]: The geometry to substitute at the given geometry index. +

+

+ Replaces the geometry at `index` with the provided geometry. Throws an error if there is not enough space reserved for geometry at the index. +

+ +

+ [method:this deleteGeometry]( [param:Integer index] ) +

+

+ Marks the geometry at the given index as deleted and to not be rendered anymore. +

+ +

Source

+ +

+ [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js] +

+ + diff --git a/docs/list.json b/docs/list.json index 31a8ea15aae117..ea01871a0d303a 100644 --- a/docs/list.json +++ b/docs/list.json @@ -262,6 +262,7 @@ }, "Objects": { + "BatchedMesh": "api/en/objects/BatchedMesh", "Bone": "api/en/objects/Bone", "Group": "api/en/objects/Group", "InstancedMesh": "api/en/objects/InstancedMesh",