Post

Replies

Boosts

Views

Activity

Reply to Is there a way to scale a RealityKit ShapeResource?
Use CPU to calculate update the shader. func transform(_ transform: Transform) async throws -> ShapeResource { if (transform.scale == .one) { return self.offsetBy(rotation: transform.rotation, translation: transform.translation) } else { let mesh = await MeshResource(shape: self) var contents = mesh.contents mesh.contents.models.forEach { model in var mutableModel = model model.parts.forEach { part in var mutablePositions: [SIMD3<Float>] = [] part.positions.forEach { position in let updatedPosition = transform.matrix * SIMD4<Float>(position, 1) mutablePositions.append(updatedPosition.xyz) } var mutablePart = part mutablePart.positions = MeshBuffer<SIMD3<Float>>(mutablePositions) mutableModel.parts.update(mutablePart) } contents.models.update(mutableModel) } try await mesh.replace(with: contents) return try await ShapeResource.generateConvex(from: mesh) } }
2w