1#define_import_path bevy_gaussian_splatting::gaussian_3d 5#import bevy_gaussian_splatting::bindings::{ 9#import bevy_gaussian_splatting::helpers::{ 17 #ifdef PRECOMPUTE_COVARIANCE_3D 18 #import bevy_gaussian_splatting::packed::{ 22 #import bevy_gaussian_splatting::packed::{ 27#else ifdef BUFFER_STORAGE 28 #ifdef PRECOMPUTE_COVARIANCE_3D 29 #import bevy_gaussian_splatting::planar::{ 33 #import bevy_gaussian_splatting::planar::{ 38#else ifdef BUFFER_TEXTURE 39 #ifdef PRECOMPUTE_COVARIANCE_3D 40 #import bevy_gaussian_splatting::texture::{ 44 #import bevy_gaussian_splatting::texture::{ 52fn compute_cov3d(scale: vec3<f32>, rotation: vec4<f32>) -> array<f32, 6> { 53 let S = get_scale_matrix(scale); 56 gaussian_uniforms.transform[0].xyz, 57 gaussian_uniforms.transform[1].xyz, 58 gaussian_uniforms.transform[2].xyz, 61 let R = get_rotation_matrix(rotation); 64 let Sigma = transpose(M) * M; 65 let TS = T * Sigma * transpose(T); 81#ifdef PRECOMPUTE_COVARIANCE_3D 82 let cov3d = get_cov3d(index); 84 let rotation = get_rotation(index); 85 let scale = get_scale(index); 87 let cov3d = compute_cov3d(scale, rotation); 90 return cov2d(position, cov3d);