Blender 5.3 adds native 3D Gaussian splat import, editing and rendering
Blender 5.3 introduces first-class native support for 3D Gaussian splats across all built-in renderers, implementing them as a new point cloud type with spherical harmonics radiance data and distinct rasterization and path-tracing approaches.
Summary
Blender 5.3 ships with initial native integration of 3D Gaussian splats (gsplats), enabling users to import, edit, and render photogrammetric scene captures without external tools. The implementation treats gsplats as a specialized point cloud variant through a new Pointcloud Type geometry node, with custom attributes for position, 3D scaling, quaternion rotation, and radiance encoded via spherical harmonics. Users can import .PLY, .SPZ, and USD-embedded gsplats by dragging files into the viewport.
All three built-in renderers handle gsplats with renderer-specific techniques. EEVEE and Workbench use a rasterization approach projecting 3D Gaussians into 2D quads with dithered transparency, while Cycles employs stochastic ray-splat intersection for path-traced results compatible with global illumination, reflections, and indirect lighting. The developers note that relighting support remains early-stage and that EEVEE's current dithered transparency produces noise requiring higher sample counts.
Renderer implementations and data model
- Geometry nodes integration: Gsplats are exposed through a new
Pointcloud Typegeometry node with four core attributes: Position, Scaling (3D vector rather than scalar radius), Rotation (quaternion), and Radiance (spherical harmonics split intoradiance:basefor constant coefficients andradiance:shfor view-dependent terms). - EEVEE/Workbench rasterization: 3D Gaussians are camera-projected into 2D quads with calculated 2D Gaussian falloffs, rendered as transparent billboards back-to-front using EEVEE's existing
ditheredtransparency mode rather than explicit sorting/tiling, trading noise for architectural simplicity and future culling performance. - Cycles path tracing: Rays intersect gsplats at their point of maximum opacity along the ray, with opacity interpreted stochastically as an acceptance probability to avoid memory-intensive state tracking and maintain GPU efficiency; this yields volume-like behavior compatible with secondary rays and global illumination.
- Opacity artifact fix: Naive covariance matrix calculation for point opacity caused artifacts on large flat splats in training scenes like 'Bicycle'; the implementation reorders multiplication terms to match the intersection point calculation approach.
- Cross-renderer divergence: Cycles' ray-traced splats produce perspective-transformed results closer to actual volumes, differing slightly from EEVEE's rasterized output and from most external gsplat renderers, with implications for look consistency across production pipelines.
Why it matters
Native gsplat support in Blender removes a significant friction point for artists and studios working with photogrammetric captures from phones, professional scanners, and game asset pipelines, consolidating a workflow that previously required specialized viewers or conversion tools. The dual rasterization and path-tracing implementations provide flexibility for real-time preview versus final-quality rendering, though the divergence in appearance between EEVEE and Cycles will require pipeline planning until convergence improves in future releases.
What to do
- Update to Blender 5.3 to access native 3D Gaussian splat support.
- Drag .PLY, .SPZ, or USD-embedded files into the viewport to import splats.
- Increase EEVEE sample counts in Render > Sampling to reduce noise from dithered transparency.
- Set Workbench Viewport Shading to Lighting > Flat to view splats correctly in the viewport.
Original reference: code.blender.org →