Ignore:
Timestamp:
Mar 29, 2006, 8:33:27 AM (19 years ago)
Author:
qiaow
Message:

Added phone shading in one_volume.cg

File:
1 edited

Legend:

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

    r385 r386  
    9292CGparameter m_tf_one_volume_param;
    9393CGparameter m_mvi_one_volume_param;
     94CGparameter m_mv_one_volume_param;
    9495CGparameter m_render_param_one_volume_param;
    9596
     
    508509
    509510            float *data = new float[4*nx*ny*nz];
    510             float *grad = new float[4*nx*ny*nz];
    511511
    512512            double vmin = field.valueMin();
     
    528528                        // scale all values [0-1], -1 => out of bounds
    529529                        v = (isnan(v)) ? -1.0 : (v - vmin)/dv;
     530                        data[ngen] = v;
    530531
    531532                        // gradient in x-direction
     
    533534                        double oldval = ((ngen/4) % nx == 0) ? 0.0 : data[ngen-4];
    534535                        oldval = (oldval < 0) ? 0.0 : oldval;
    535                         grad[ngen] = (curval-oldval)/dmin;
    536                         data[ngen++] = v;
     536                        data[ngen+1] = (curval-oldval)/dmin;
    537537
    538538                        // gradient in y-direction
    539                         oldval = (ngen-1-4*nx >= 0) ? data[ngen-1-4*nx] : 0.0;
     539                        oldval = (ngen-4*nx >= 0) ? data[ngen-4*nx] : 0.0;
    540540                        oldval = (oldval < 0) ? 0.0 : oldval;
    541                         grad[ngen] = (curval-oldval)/dmin;
    542                         data[ngen++] = 0.0;
     541                        data[ngen+2] = (curval-oldval)/dmin;
    543542
    544543                        // gradient in z-direction
    545                         oldval = (ngen-2-4*nx*ny >= 0) ? data[ngen-2-4*nx*ny] : 0.0;
     544                        oldval = (ngen-4*nx*ny >= 0) ? data[ngen-4*nx*ny] : 0.0;
    546545                        oldval = (oldval < 0) ? 0.0 : oldval;
    547                         grad[ngen] = (curval-oldval)/dmin;
    548                         data[ngen++] = 0.0;
    549 
    550                         // unused
    551                         grad[ngen] = 0.0;
    552                         data[ngen++] = 0.0;
     546                        data[ngen+3] = (curval-oldval)/dmin;
     547                        ngen += 4;
    553548                    }
    554549                }
     
    556551            load_volume(index, nx, ny, nz, 4, data);
    557552            delete [] data;
    558             delete [] grad;
    559553
    560554        } else {
     
    850844      cgGLSetTextureParameter(m_tf_one_volume_param, tf[0]->id);
    851845      m_mvi_one_volume_param = cgGetNamedParameter(m_one_volume_fprog, "modelViewInv");
     846      m_mv_one_volume_param = cgGetNamedParameter(m_one_volume_fprog, "modelView");
    852847      m_render_param_one_volume_param = cgGetNamedParameter(m_one_volume_fprog, "renderParameters");
    853848      break;
     
    15331528
    15341529  cgGLSetStateMatrixParameter(m_mvi_one_volume_param, CG_GL_MODELVIEW_MATRIX, CG_GL_MATRIX_INVERSE);
     1530  cgGLSetStateMatrixParameter(m_mv_one_volume_param, CG_GL_MODELVIEW_MATRIX, CG_GL_MATRIX_IDENTITY);
    15351531  cgGLSetTextureParameter(m_vol_one_volume_param, volume[volume_index]->id);
    15361532  cgGLEnableTextureParameter(m_vol_one_volume_param);
     
    15411537  //if parameter.y == 1 : volume :1
    15421538  if(volume_index==0)
    1543     cgGLSetParameter4f(m_render_param_one_volume_param, n_actual_slices, 0., 0., 0.);
     1539    cgGLSetParameter4f(m_render_param_one_volume_param, n_actual_slices, 0., live_diffuse, live_specular);
    15441540  else if(volume_index==1)
    1545     cgGLSetParameter4f(m_render_param_one_volume_param, n_actual_slices, 1., 0., 0.);
     1541    cgGLSetParameter4f(m_render_param_one_volume_param, n_actual_slices, 1., live_diffuse, live_specular);
    15461542  cgGLBindProgram(m_one_volume_fprog);
    15471543  cgGLEnableProfile(CG_PROFILE_FP30);
     
    20692065                init_particles();
    20702066                break;
     2067        case 'o':
     2068                live_specular+=1;
     2069                fprintf(stderr, "specular: %f\n", live_specular);
     2070                break;
     2071        case 'p':
     2072                live_specular-=1;
     2073                fprintf(stderr, "specular: %f\n", live_specular);
     2074                break;
     2075        case '[':
     2076                live_diffuse+=0.5;
     2077                break;
     2078        case ']':
     2079                live_diffuse-=0.5;
     2080                break;
     2081
    20712082        default:
    20722083                break;
Note: See TracChangeset for help on using the changeset viewer.