Conversation
- Deleted renderer.cpp and renderer.h files, removing the OpenGL renderer for Gaussian splatting. - Removed shader.h file, which contained shader compilation and management code. - Updated viewer_ui.cpp and viewer_ui.h to eliminate dependencies on the removed renderer and camera classes. - Adjusted UI overlay rendering logic to directly manage splat count and rendering parameters without the renderer. - Enhanced UI controls for size scaling, maximum point size, and camera movement speed.
- Introduced `gpu_compute.h` for platform-agnostic GPU compute interfaces. - Implemented `computeCentroidNorms` and `assignPointsToCentroids` functions for both CUDA and Metal. - Added CPU fallback implementations in `kmeans_cpu.cpp`. - Updated `CMakeLists.txt` to conditionally include GPU sources based on selected backend. - Refactored `kmeans.cu` to utilize the new GPU compute functions. - Created Metal compute kernels in `kmeans.metal` and corresponding Metal backend implementation. - Added tests for GPU compute backend functionality in `gpu_compute_test.cpp`. - Ensured proper memory management and error handling in CUDA and Metal implementations.
- Implemented gsplat_data_adapter.h and gsplat_data_adapter.cpp for adapting data tables to GSplat format. - Created gsplat_renderer.h and gsplat_renderer.cpp for rendering GSplat instances using OpenGL. - Added shader sources for vertex and fragment shaders in gsplat_shader_sources.h. - Developed main application logic in main.cpp to handle input files, GLFW window management, and rendering loop. - Introduced tests for data adaptation and camera functionality in playcanvas_viewer_adapter_test.cpp and playcanvas_viewer_camera_test.cpp. - Updated CMakeLists.txt to include new tests and source files.
… functionality and shader tests
…zation - Introduced GSplatGLRenderer class for rendering GSplat data using OpenGL. - Added GSplatGLRenderOptions and GSplatGLFrameState structures to manage rendering options and frame state. - Created vertex and fragment shader sources for GSplat rendering. - Updated splat_visualizer to utilize GSplatGLRenderer for rendering. - Implemented functions to compute bounds from GSplat data. - Added tests for GSplat data adapter to ensure correct data adaptation and error handling.
…ctures and remove legacy code
… update PlaycanvasViewerShaderTests configuration
- Removed NativeSplatProp and replaced it with SplatGaussianProp for better encapsulation and functionality. - Updated SplatVisualizer to utilize SplatGaussianProp, ensuring compatibility with existing rendering options. - Added new methods for camera manipulation, including resetCameraToBounds, enhancing user experience. - Introduced unit tests for SplatGaussianProp to validate data handling and rendering options. - Updated smoke tests for SplatVisualizer to verify integration with the new SplatGaussianProp. - Adjusted README and comments to reflect changes in the visualization architecture.
…ructures for GSplat rendering - Deleted legacy files: gsplat_data.h, gsplat_gl_renderer.h, and splat_gaussian_prop.h. - Introduced new gsplat_data.h and gsplat_gl_renderer.h with updated structures and functionalities. - Updated references in various source files to use the new header files. - Enhanced SplatVisualizer with additional mouse wheel interaction options and improved sorting behavior. - Added tests for visualization public headers to ensure proper encapsulation of internal details.
…clustering implementation
…ctions for levels and percentages
…c_3x3 overload Preparation for area-weighted merge math (#241 follow-up). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Original return-value overload now delegates to the caller-buffer overload instead of duplicating the ~40-line Jacobi algorithm. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…-weighted mass Memory ~50% lower for cache arrays. Mass now uses ellipsoid surface area instead of volume for better anisotropic handling (#241). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…e R directly Replaces per-call array allocation with scratch buffer. Switches from Rt-based sampling to R-based sampling (matching upstream GPU kernel). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…stream (#241) Replaces NanoGS Porter-Duff opacity + volume-weighted formula with the spark area-weighted variant. Fixes color drift and over-saturation at aggressive reduction ratios. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…geScratch Upstream dropped opacity pruning in v2.2.0. MergeScratch allocated once per simplifyGaussians call and passed to compute_edge_cost/moment_match. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.