-
-
Notifications
You must be signed in to change notification settings - Fork 0
Planning
This section is about planning, decisions and trade-offs.
Efficient rendering for math visualizations with large datasets and hot-reload support.
What: GPU-side storage for point data
Why: Large buffers, read/write from shaders, better performance than VBO
Use: Store all math function points on GPU
What: Adaptive point density based on zoom
Why: Render fewer points when zoomed out, more when zoomed in
Levels:
- Far view: Every 10th point
- Medium: Every 2nd point
- Close: All points
What: Split dataset into regions (~1000 points each)
Why: Update only changed chunks, not entire dataset
Benefit: Fast updates during hot-reload
What: Only re-upload modified chunks to GPU
Why: Minimal CPUโGPU transfer
How: Track dirty chunks, use glBufferSubData()
CPU: Generate points โ Organize into chunks โ Mark dirty chunks GPU: Read from SSBO โ Apply LOD โ Render visible points Update: Recompute dirty chunks โ Upload to GPU (partial)
SSBO vs VBO:
- SSBO: Larger, flexible, compute-ready (requires OpenGL 4.3+)
- VBO: Simpler, widely supported
Decision: SSBO for scalability
Chunk Size:
- Small: Fine updates, more overhead
- Large: Less overhead, coarse updates
Decision: ~1000 points per chunk
- Fix current bug (only last point renders)
- Basic SSBO rendering all points
- Add chunking + partial updates
- Implement LOD system
- Test & optimize
- 1M+ points at 60 FPS
- Smooth hot-reload updates
- Interactive zoom/pan
Current: Refactoring (bug fix needed)
Next: SSBO implementation
Priority: Resume after rest
Graphite Wiki ยฉ 2025 Daynlight & Contributors
Licensed under the Apache License 2.0
- ๐ Home
- ๐ ๏ธ Installation
- ๐งโ๐ป Usage
- ๐ Tutorials
- ๐งโ๐ฌ Examples
- ๐ WritingScripts
- ๐ฆ PackageManager
- ๐งฎ Math
- ๐๏ธ APIReference
- ๐ผ๏ธ RenderingEngine
- ๐๏ธ Architecture
- ๐ Roadmap
- ๐ Versions
- ๐ ChangeLog
- ๐ค Community
- ๐ Credits
- ๐ Troubleshooting
- โ FAQ