volmetrics
diff src/main.cc @ 26:5ee081af59b8
volume rendering
author | Eleni Maria Stea <elene.mst@gmail.com> |
---|---|
date | Sun, 27 Apr 2014 18:25:40 +0300 |
parents | 4b6c952a83bd |
children | 77cbc31cd31f |
line diff
1.1 --- a/src/main.cc Sun Apr 27 18:13:44 2014 +0300 1.2 +++ b/src/main.cc Sun Apr 27 18:25:40 2014 +0300 1.3 @@ -53,6 +53,7 @@ 1.4 1.5 static int use_orig_vol_res = 1; 1.6 static int vol_res[3]; // volume sampling resolution x/y/z 1.7 +static float bound_scale = 1.42; 1.8 1.9 static GLUI *ui; 1.10 1.11 @@ -124,6 +125,8 @@ 1.12 vol_res[1] = vol->get_slice(0)->get_height(); 1.13 vol_res[2] = vol->get_slice_count(); 1.14 1.15 + num_poly = std::max(vol_res[0], std::max(vol_res[1], vol_res[2])) * bound_scale; 1.16 + 1.17 if(!(ui = create_ui())) { 1.18 return false; 1.19 } 1.20 @@ -296,13 +299,9 @@ 1.21 if(tmax_loc != -1) 1.22 glUniform1f(tmax_loc, std::max(thres, thres2)); 1.23 1.24 - const Image *img = vol->get_slice(0); 1.25 - int res_x = img->get_width(); 1.26 - int res_y = img->get_height(); 1.27 - int res_z = vol->get_slice_count(); 1.28 int res_loc = glGetUniformLocation(sprog_vol, "res"); 1.29 if(res_loc != -1) 1.30 - glUniform3f(res_loc, (float)res_x, (float)res_y, (float)res_z); 1.31 + glUniform3f(res_loc, (float)vol_res[0], (float)vol_res[1], (float)vol_res[2]); 1.32 1.33 glDisable(GL_DEPTH_TEST); 1.34 glBindTexture(GL_TEXTURE_3D, vol->get_texture()); 1.35 @@ -314,10 +313,10 @@ 1.36 float tex_z = (float)i / (float)num_poly; 1.37 float z = 2 * tex_z - 1; 1.38 1.39 - glTexCoord3f(0, 0, tex_z); glVertex3f(-2, -2, z * 2); 1.40 - glTexCoord3f(0, 1, tex_z); glVertex3f(-2, 2, z * 2); 1.41 - glTexCoord3f(1, 1, tex_z); glVertex3f(2, 2, z * 2); 1.42 - glTexCoord3f(1, 0, tex_z); glVertex3f(2, -2, z * 2); 1.43 + glTexCoord3f(0, 0, tex_z); glVertex3f(-bound_scale, -bound_scale, z * bound_scale); 1.44 + glTexCoord3f(0, 1, tex_z); glVertex3f(-bound_scale, bound_scale, z * bound_scale); 1.45 + glTexCoord3f(1, 1, tex_z); glVertex3f(bound_scale, bound_scale, z * bound_scale); 1.46 + glTexCoord3f(1, 0, tex_z); glVertex3f(bound_scale, -bound_scale, z * bound_scale); 1.47 } 1.48 glEnd(); 1.49 glDisable(GL_BLEND);