ogl_beamforming

Ultrasound Beamforming Implemented with OpenGL
git clone anongit@rnpnr.xyz:ogl_beamforming.git
Log | Files | Refs | Feed | Submodules | LICENSE

Commit: d2523a2557b686e026026a989b0245ccc0b7ad1b
Parent: 74e86b631ed24733950189f2d52c7924e111eff2
Author: Randy Palamar
Date:   Wed,  9 Apr 2025 11:54:46 -0600

das: (u)FORCES readability

Diffstat:
Mshaders/das.glsl | 20+++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/shaders/das.glsl b/shaders/das.glsl @@ -49,7 +49,7 @@ vec2 sample_rf(int ridx, float t) vec3 calc_image_point(vec3 voxel) { - ivec3 out_data_dim = imageSize(u_out_data_tex); + vec3 out_data_dim = vec3(imageSize(u_out_data_tex)); vec4 output_size = abs(output_max_coordinate - output_min_coordinate); vec3 image_point = output_min_coordinate.xyz + voxel * output_size.xyz / out_data_dim; @@ -205,22 +205,20 @@ vec2 uFORCES(vec3 image_point, vec3 delta, float apodization_arg) image_point = (xdc_transform * vec4(image_point, 1)).xyz; - vec3 focal_point_offset = vec3(0, delta.y * floor(dec_data_dim.y / 2), 0); - delta.y = 0; - vec2 sum = vec2(0); for (int i = uforces; i < dec_data_dim.z; i++) { - int channel = imageLoad(sparse_elements, i - uforces).x; - vec2 rdist = vec2(image_point.x, image_point.z); - vec3 focal_point = channel * delta + focal_point_offset; - float transmit_dist = distance(image_point, focal_point); + int channel = imageLoad(sparse_elements, i - uforces).x; + vec2 recieve_point = image_point.xz; + vec3 element_center = delta * vec3(channel, floor(dec_data_dim.y / 2), 0); + float transmit_dist = distance(image_point, element_center); for (uint j = 0; j < dec_data_dim.y; j++) { - float sidx = sample_index(transmit_dist + length(rdist)); + float sidx = sample_index(transmit_dist + length(recieve_point)); vec2 valid = vec2(sidx >= 0) * vec2(sidx < dec_data_dim.x); - sum += apodize(sample_rf(ridx, sidx), apodization_arg, rdist.x) * valid; - rdist.x -= delta.x; + sum += valid * apodize(sample_rf(ridx, sidx), apodization_arg, + recieve_point.x); ridx += int(dec_data_dim.x); + recieve_point.x -= delta.x; } } return sum;