Skip to content

MeshBatched .sortObjects flicker on iOS(safari) WebGPU #29041

@Makio64

Description

@Makio64

Description

Enable .sortObjects on MeshBatched introduce flickering ( WebGPU - Safari - iOS18 )
video recording : https://github.com/user-attachments/assets/5f43ab39-c780-4ca3-a260-e5c2a3bf402f

I also open a bug ticket on Webkit : https://bugs.webkit.org/show_bug.cgi?id=277465

Reproduction steps

  1. create a BatchedMesh
  2. batchedMesh.sortObjects = true
  3. turn camera, on some angle element which should be visible will disapear

Code

Simple batchedMesh example

			const batchedMesh = new BatchedMesh(10000, maxVertices, maxIndices, scene.children[0].material )
			batchedMesh.perObjectFrustumCulled = true
			batchedMesh.sortObjects = true
			for(let i = 0; i < geometries.length; i++){
				let geometry = geometries[i]
				batchedMesh.addGeometry(geometry)
			}
			let dummy = new Object3D()
			for(let i = 0; i < 5000; i++){
				batchedMesh.addInstance( i % 200 )
				let angle = Math.random() * Math.PI * 2
				let dist = 15 + Math.random() * 200
				dummy.position.set(Math.cos(angle) * dist, ( Math.random() - .5) * 0.1, Math.sin(angle) * dist )
				dummy.rotation.set( 0, Math.random() * Math.PI, 0 )
				dummy.scale.set( 1, 1, 1 )
				dummy.updateMatrix()
				batchedMesh.setMatrixAt( i, dummy.matrix )
			}
			scene.add(batchedMesh)

Live example

Screenshots

No response

Version

r167

Device

Mobile

Browser

Safari

OS

iOS

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions