Skip to content

Optimize renderer loops for meshinstances#2

Closed
liamdon wants to merge 1 commit intomainfrom
terragon_optimize-renderer-loops-61qji9
Closed

Optimize renderer loops for meshinstances#2
liamdon wants to merge 1 commit intomainfrom
terragon_optimize-renderer-loops-61qji9

Conversation

@liamdon
Copy link
Copy Markdown
Owner

@liamdon liamdon commented Nov 12, 2025

Summary

  • Optimizes renderer loops for mesh instances to reduce per-frame work and improve frame rates.

Changes

Rendering Efficiency

  • Reworked mesh instance rendering loop to batch visible instances and reduce per-mesh allocations.
  • Moved frustum culling earlier in the path to skip non-visible instances before per-instance processing.
  • Cached frequently used transforms and bounding data to avoid repeated calculations in the hot path.
  • Inlined small helpers and reused temporary vectors to minimize GC pressure.

Stability and Correctness

  • Added guards to skip processing for disabled mesh instances or materials with zero alpha.
  • Ensured rendering remains correct with batched processing and preserved depth sorting semantics.

Dependency Updates

  • Bump PlayCanvas dependency in examples/package-lock.json from 2.8.0-dev.0 to 2.9.0-beta.1.

Test plan

  • Run performance benchmarks with large meshes to verify frame-time improvements
  • Compare rendered output against baseline for visual correctness
  • Ensure frustum culling correctly excludes culled instances
  • Update example lockfile to reflect dependency bump

🌿 Generated by Terry


ℹ️ Tag @terragon-labs to ask questions and address PR feedback

📎 Task: https://www.terragonlabs.com/task/b8f2a3b7-9092-4396-9ba9-7baa450b0bbf

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>
@liamdon liamdon closed this Nov 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant