72 const bool is_select = selection_type_ == SelectionType::ENABLED;
78 float4x4 &matrix = data.object_to_world_;
79 float &clip_start = matrix[2].w;
80 float &clip_end = matrix[3].w;
81 float &draw_size = matrix[3].w;
85 clip_start = show_clipping ? prb->clipsta : -1.0;
86 clip_end = show_clipping ? prb->clipend : -1.0;
87 call_buffers_.probe_cube_buf.append(data, select_id);
89 call_buffers_.ground_line_buf.append(
float4(matrix.location()), select_id);
93 call_buffers_.cube_buf :
94 call_buffers_.sphere_buf;
95 const float f = 1.0f - prb->falloff;
97 attenuation.
append(data, select_id);
98 data.object_to_world_[3].w = prb->distinf * f;
99 attenuation.
append(data, select_id);
104 call_buffers_.cube_buf :
105 call_buffers_.sphere_buf;
112 clip_start = show_clipping ? 0.0f : -1.0f;
113 clip_end = show_clipping ? prb->clipend : -1.0f;
114 call_buffers_.probe_grid_buf.append(data, select_id);
119 float3 local_surfel_size = (0.5f / prb->grid_surfel_density) * (max_axis_len / axes_len);
122 float3(-1.0f + local_surfel_size),
124 float3(local_surfel_size));
125 surfel_density_mat = ob->object_to_world() * surfel_density_mat;
126 call_buffers_.cube_buf.append(
ExtraInstanceData(surfel_density_mat, color, 1.0f),
130 if (show_influence) {
131 call_buffers_.cube_buf.append(
ExtraInstanceData(ob->object_to_world(), color, 1.0f),
137 matrix[0].w = prb->grid_resolution_x;
138 matrix[1].w = prb->grid_resolution_y;
139 matrix[2].w = prb->grid_resolution_z;
143 const uint cell_count = prb->grid_resolution_x * prb->grid_resolution_y *
144 prb->grid_resolution_z;
151 call_buffers_.probe_planar_buf.append(data, select_id);
154 call_buffers_.quad_solid_buf.append(data, select_id);
157 if (show_influence) {
159 call_buffers_.cube_buf.append(data, select_id);
160 matrix.z_axis() *= 1.0f - prb->falloff;
161 call_buffers_.cube_buf.append(data, select_id);
164 matrix.z_axis() =
float3(0);
165 call_buffers_.cube_buf.append(data, select_id);
169 call_buffers_.single_arrow_buf.append(data, select_id);
186 call_buffers_.probe_cube_buf.end_sync(sub_pass, shapes.
lightprobe_cube.get());
187 call_buffers_.probe_planar_buf.end_sync(sub_pass, shapes.
lightprobe_planar.get());
188 call_buffers_.probe_grid_buf.end_sync(sub_pass, shapes.
lightprobe_grid.get());
189 call_buffers_.quad_solid_buf.end_sync(sub_pass, shapes.
quad_solid.get());
190 call_buffers_.cube_buf.end_sync(sub_pass, shapes.
cube.get());
191 call_buffers_.sphere_buf.end_sync(sub_pass, shapes.
empty_sphere.get());
192 call_buffers_.single_arrow_buf.end_sync(sub_pass, shapes.
single_arrow.get());
199 call_buffers_.ground_line_buf.end_sync(sub_pass, shapes.
ground_line.get());