InternalOptionalbinFree-form bin identifier shared by every mesh in this batch — the
value of SceneMesh.bin that the
MeshManager hashed into this batch's bucket. undefined
means the implicit "default" bin.
The renderer honours the
SceneMesh.bin contract by
iterating batches twice per frame: once for bin === undefined
batches (the main scene), then gl.clear(gl.DEPTH_BUFFER_BIT),
then once for bin === "overlay" batches (gizmo handles, HUD,
etc.), so the overlay-bin meshes render as "floating" on top of
everything else.
The index of this batch's memory in the GPUMemoryManager system.
This indexes the GPUMemoryEditor.dataTextures.batches array. Before drawing this batch,
the renderer will bind the corresponding data textures from that array, which contain the
mesh data needed for rendering.
Whether the batch's geometries carry per-vertex normals.
Mirrors the hasNormals axis the MeshManager splits batches on.
The renderer uses this flag to dispatch between the smooth-shaded and
flat-shaded DrawTechnique variants — geometries within a batch
always agree on this, so the dispatch is per-batch, not per-mesh.
Whether the batch's geometries carry per-vertex UV coordinates.
Independent axis from hasNormals. The renderer uses this to
select draw-technique variants that bind a UV data texture and emit a
vUV varying — the foundation for material-texture support.
Whether the batch's per-batch atlases ship with a full mip pyramid and are sampled trilinearly.
Set when at least one mesh in the batch carries a material
referencing a SceneTexture
with SceneTextureParams.mipmap === true. Routes to the
mipmap-bearing atlas variant; non-opted-in textures stay on
the cheap single-level path.
The total number of indices in all meshes of this batch. This is used with WebGL draw calls to determine how many indices to draw when drawing this batch.
The total number of vertices in all meshes of this batch. This is used for various calculations and optimizations related to rendering.
Base primitive base index for this batch.
Primitive type of the meshes in this batch.
Whether this batch supports Screen Space Ambient Occlusion (SSAO) rendering.
Whether this batch supports directional shadow-map rendering.
Whether the batch's textures must be sampled via the triplanar world-space fallback rather than the standard UV-attribute path.
Set when the batch's meshes share (material has any texture) && (geometry has no UVs) — typical of BIM, sweeps and lofted
curve geometry. Mutually exclusive with hasUVs: the
renderer dispatches triplanar batches to a sibling shader
variant that derives sample coordinates from world position,
blended by world normal.
Gets the parameters needed for a drawArrays call for a specific mesh in this batch.
Gets the SceneMesh at the specified index in this batch, if it exists.
Determines if there are any meshes in this batch that should be rendered in the specified render pass for the given view.
A MeshBatch represents a collection of meshes that share the same rendering properties and can be rendered together in a single draw call using a DrawTechnique.