Search across packages, versions, files, declarations, and comments. Use multiple terms to narrow results (AND), and add @vertex, @fragment, or @compute to filter by shader stage.
1#define_import_path bevy_gaussian_splatting::packed
3#import bevy_gaussian_splatting::bindings::points
4#import bevy_gaussian_splatting::spherical_harmonics::{
5 spherical_harmonics_lookup,
6 srgb_to_linear,
7}
10#ifdef PACKED_F32
12fn get_position(index: u32) -> vec3<f32> {
13 return points[index].position_visibility.xyz;
16fn get_color(
17 index: u32,
18 ray_direction: vec3<f32>,
19) -> vec3<f32> {
20 let sh = get_spherical_harmonics(index);
21 let color = spherical_harmonics_lookup(ray_direction, sh);
22 return srgb_to_linear(color);
25fn get_spherical_harmonics(index: u32) -> array<f32, #{SH_COEFF_COUNT}> {
26 return points[index].sh;
29fn get_rotation(index: u32) -> vec4<f32> {
30 return points[index].rotation;
33fn get_scale(index: u32) -> vec3<f32> {
34 return points[index].scale_opacity.xyz;
37fn get_opacity(index: u32) -> f32 {
38 return points[index].scale_opacity.w;
41fn get_visibility(index: u32) -> f32 {
42 return points[index].position_visibility.w;
45#endif
Contents