mirror of
https://github.com/blender/blender
synced 2026-09-29 04:37:17 +03:00
Based on the "Stochastic ray tracing of transparent 3D Gaussians" paper by Xin Sun et. al. The basic idea: perform stochastic intersection with the Gaussian splat based on its transparency. Gaussian splats are implemented as a dedicated primitive type, but it shares the same layout for position and radius as points, so a lot of existing functions (positions, attributes, etc) work for both points and splats. For the Embree and hardware intersection it is implemented as a custom primitive type. The choice of using bounding spheres mainly comes from a balance between performance and memory usage. More ideal would be to use OBB, but it is not supported for custom primitive types in Embree and GPU HW-RT on all backends. There is a known limitation that comes from the fact that the datasets are trained in sRGB space and Cycles work in Linear space: areas with low opacity and high radiance render noticeably differently from the ground-truth implementation. Ref #159470 Pull Request: https://projects.blender.org/blender/blender/pulls/163103 |
||
|---|---|---|
| .. | ||
| attribute.h | ||
| curve.h | ||
| curve_intersect.h | ||
| geom_intersect.h | ||
| gsplat.h | ||
| gsplat_intersect.h | ||
| motion_curve.h | ||
| motion_gsplat.h | ||
| motion_point.h | ||
| motion_triangle.h | ||
| motion_triangle_intersect.h | ||
| motion_triangle_shader.h | ||
| object.h | ||
| point.h | ||
| point_intersect.h | ||
| primitive.h | ||
| shader_data.h | ||
| triangle.h | ||
| triangle_intersect.h | ||
| volume.h | ||