Ignore:
Timestamp:
Apr 27, 2006, 7:56:21 PM (18 years ago)
Author:
qiaow
Message:

Minor fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gui/vizservers/nanovis/VolumeRenderer.cpp

    r417 r418  
    1717
    1818
    19 VolumeRenderer::VolumeRenderer(){}
    20 
    21 VolumeRenderer::VolumeRenderer(Camera* _cam, Volume* _vol, TransferFunction* _tf,
    22                                 CGcontext _context):
    23   cam(_cam),
     19VolumeRenderer::VolumeRenderer(CGcontext _context):
    2420  n_volumes(0),
    2521  g_context(_context),
    2622  slice_mode(false),
    27   volume_mode(true)
     23  volume_mode(true),
     24  live_diffuse(5.),
     25  live_specular(5.)
    2826{
    29   //init the vectors for volumes and transfer functions
    3027  volume.clear();
    3128  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
     34VolumeRenderer::~VolumeRenderer(){}
     35
     36//initialize the volume shaders
     37void VolumeRenderer::init_shaders(){
     38 
    3739  //standard vertex program
    3840  m_vert_std_vprog = loadProgram(g_context, CG_PROFILE_VP30, CG_SOURCE, "./shaders/vertex_std.cg");
     
    4345  m_one_volume_fprog = loadProgram(g_context, CG_PROFILE_FP30, CG_SOURCE, "./shaders/one_volume.cg");
    4446  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);
    4648  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);
    4850  m_mvi_one_volume_param = cgGetNamedParameter(m_one_volume_fprog, "modelViewInv");
    4951  m_mv_one_volume_param = cgGetNamedParameter(m_one_volume_fprog, "modelView");
    5052  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
     56int VolumeRenderer::add_volume(Volume* _vol, TransferFunction* _tf){
     57
    5958  int ret = n_volumes;
    6059
    6160  volume.push_back(_vol);
    6261  tf.push_back(_tf);
    63   slice.push_back(_slice);
    6462
    6563  n_volumes++;
     
    107105
    108106    int volume_index = i;
    109     int n_slices = slice[volume_index];
     107    int n_slices = volume[volume_index]->get_n_slice();
    110108
    111109    //volume start location
     
    181179    Vector4 vert4 = (Vector4(+10, -10, -0.5, 1));
    182180
    183 #if 1   
     181   
    184182    //Render cutplanes first with depth test enabled.
    185183    //They will mark the image with their depth values. Then we render other volume slices.
     
    252250      deactivate_one_volume_shader();
    253251    } //done cutplanes
    254 #endif
     252
    255253   
    256254    //Now do volume rendering
     
    295293    }
    296294  } //iterate all volumes
    297   fprintf(stderr, "total slices: %d\n", total_rendered_slices);
     295  //fprintf(stderr, "total slices: %d\n", total_rendered_slices);
    298296
    299297  //We sort all the polygons according to their eye-space depth, from farthest to the closest.
     
    344342    deactivate_one_volume_shader();
    345343  }
    346   //fprintf(stderr, "\n\n");
    347344
    348345
     
    364361
    365362void VolumeRenderer::render(int volume_index){
    366   int n_slices = slice[volume_index];
     363  int n_slices = volume[volume_index]->get_n_slice();
    367364
    368365  //volume start location
     
    634631  cgGLSetStateMatrixParameter(m_mv_one_volume_param, CG_GL_MODELVIEW_MATRIX, CG_GL_MATRIX_IDENTITY);
    635632  cgGLSetTextureParameter(m_vol_one_volume_param, volume[volume_index]->id);
     633  cgGLSetTextureParameter(m_tf_one_volume_param, tf[volume_index]->id);
    636634  cgGLEnableTextureParameter(m_vol_one_volume_param);
    637635  cgGLEnableTextureParameter(m_tf_one_volume_param);
Note: See TracChangeset for help on using the changeset viewer.