Changeset 418 for trunk/gui/vizservers/nanovis/VolumeRenderer.cpp
- Timestamp:
- Apr 27, 2006, 7:56:21 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gui/vizservers/nanovis/VolumeRenderer.cpp
r417 r418 17 17 18 18 19 VolumeRenderer::VolumeRenderer(){} 20 21 VolumeRenderer::VolumeRenderer(Camera* _cam, Volume* _vol, TransferFunction* _tf, 22 CGcontext _context): 23 cam(_cam), 19 VolumeRenderer::VolumeRenderer(CGcontext _context): 24 20 n_volumes(0), 25 21 g_context(_context), 26 22 slice_mode(false), 27 volume_mode(true) 23 volume_mode(true), 24 live_diffuse(5.), 25 live_specular(5.) 28 26 { 29 //init the vectors for volumes and transfer functions30 27 volume.clear(); 31 28 tf.clear(); 32 slice.clear(); 33 add_volume(_vol, _tf, 64); 34 35 //initialize the volume shaders 36 // 29 30 init_shaders(); 31 } 32 33 34 VolumeRenderer::~VolumeRenderer(){} 35 36 //initialize the volume shaders 37 void VolumeRenderer::init_shaders(){ 38 37 39 //standard vertex program 38 40 m_vert_std_vprog = loadProgram(g_context, CG_PROFILE_VP30, CG_SOURCE, "./shaders/vertex_std.cg"); … … 43 45 m_one_volume_fprog = loadProgram(g_context, CG_PROFILE_FP30, CG_SOURCE, "./shaders/one_volume.cg"); 44 46 m_vol_one_volume_param = cgGetNamedParameter(m_one_volume_fprog, "volume"); 45 cgGLSetTextureParameter(m_vol_one_volume_param, volume[0]->id);47 //cgGLSetTextureParameter(m_vol_one_volume_param, _vol->id); 46 48 m_tf_one_volume_param = cgGetNamedParameter(m_one_volume_fprog, "tf"); 47 cgGLSetTextureParameter(m_tf_one_volume_param, tf[0]->id);49 //cgGLSetTextureParameter(m_tf_one_volume_param, _tf->id); 48 50 m_mvi_one_volume_param = cgGetNamedParameter(m_one_volume_fprog, "modelViewInv"); 49 51 m_mv_one_volume_param = cgGetNamedParameter(m_one_volume_fprog, "modelView"); 50 52 m_render_param_one_volume_param = cgGetNamedParameter(m_one_volume_fprog, "renderParameters"); 51 52 live_diffuse = 1.; 53 live_specular = 3.; 54 } 55 56 VolumeRenderer::~VolumeRenderer(){} 57 58 int VolumeRenderer::add_volume(Volume* _vol, TransferFunction* _tf, int _slice){ 53 } 54 55 56 int VolumeRenderer::add_volume(Volume* _vol, TransferFunction* _tf){ 57 59 58 int ret = n_volumes; 60 59 61 60 volume.push_back(_vol); 62 61 tf.push_back(_tf); 63 slice.push_back(_slice);64 62 65 63 n_volumes++; … … 107 105 108 106 int volume_index = i; 109 int n_slices = slice[volume_index];107 int n_slices = volume[volume_index]->get_n_slice(); 110 108 111 109 //volume start location … … 181 179 Vector4 vert4 = (Vector4(+10, -10, -0.5, 1)); 182 180 183 #if 1181 184 182 //Render cutplanes first with depth test enabled. 185 183 //They will mark the image with their depth values. Then we render other volume slices. … … 252 250 deactivate_one_volume_shader(); 253 251 } //done cutplanes 254 #endif 252 255 253 256 254 //Now do volume rendering … … 295 293 } 296 294 } //iterate all volumes 297 fprintf(stderr, "total slices: %d\n", total_rendered_slices);295 //fprintf(stderr, "total slices: %d\n", total_rendered_slices); 298 296 299 297 //We sort all the polygons according to their eye-space depth, from farthest to the closest. … … 344 342 deactivate_one_volume_shader(); 345 343 } 346 //fprintf(stderr, "\n\n");347 344 348 345 … … 364 361 365 362 void VolumeRenderer::render(int volume_index){ 366 int n_slices = slice[volume_index];363 int n_slices = volume[volume_index]->get_n_slice(); 367 364 368 365 //volume start location … … 634 631 cgGLSetStateMatrixParameter(m_mv_one_volume_param, CG_GL_MODELVIEW_MATRIX, CG_GL_MATRIX_IDENTITY); 635 632 cgGLSetTextureParameter(m_vol_one_volume_param, volume[volume_index]->id); 633 cgGLSetTextureParameter(m_tf_one_volume_param, tf[volume_index]->id); 636 634 cgGLEnableTextureParameter(m_vol_one_volume_param); 637 635 cgGLEnableTextureParameter(m_tf_one_volume_param);
Note: See TracChangeset
for help on using the changeset viewer.