- Timestamp:
- Mar 16, 2012 12:03:52 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/NvZincBlendeVolumeShader.cpp
r2822 r2859 2 2 3 3 #include <string.h> 4 4 5 #include "global.h" 5 6 #include "NvZincBlendeVolumeShader.h" 6 7 7 8 8 NvZincBlendeVolumeShader::NvZincBlendeVolumeShader() … … 18 18 { 19 19 _cgFP = LoadCgSourceProgram(g_context, "zincblende_volume.cg", 20 20 CG_PROFILE_FP30, "main"); 21 21 _tfParam = cgGetNamedParameter(_cgFP, "tf"); 22 22 _volumeAParam = cgGetNamedParameter(_cgFP, "volumeA"); … … 28 28 } 29 29 30 void NvZincBlendeVolumeShader::bind(unsigned int tfID, Volume *volume, int sliceMode) 31 { 32 ZincBlendeVolume *vol = (ZincBlendeVolume *)volume; 33 cgGLSetStateMatrixParameter(_mviParam, CG_GL_MODELVIEW_MATRIX, CG_GL_MATRIX_INVERSE); 34 cgGLSetTextureParameter(_tfParam, tfID); 35 cgGLSetParameter4f(_cellSizeParam, 36 vol->cell_size.x, 37 vol->cell_size.y, 38 vol->cell_size.z, 0.); 39 40 if (!sliceMode) { 41 cgGLSetParameter4f(_renderParam, 42 vol->n_slices(), 43 vol->opacity_scale(), 44 vol->diffuse(), 45 vol->specular()); 46 } else { 47 cgGLSetParameter4f(_renderParam, 48 0., 49 vol->opacity_scale(), 50 vol->diffuse(), 51 vol->specular()); 52 } 53 54 cgGLSetParameter4f(_option_one_volume_param, 55 0.0f, 56 volume->isosurface(), 57 0.0f, 58 0.0f); 59 60 cgGLSetTextureParameter(_volumeAParam, vol->zincblende_tex[0]->id()); 61 cgGLSetTextureParameter(_volumeBParam, vol->zincblende_tex[1]->id()); 62 cgGLEnableTextureParameter(_volumeAParam); 63 cgGLEnableTextureParameter(_volumeBParam); 64 65 cgGLBindProgram(_cgFP); 66 cgGLEnableProfile(CG_PROFILE_FP30); 67 } 68 69 void NvZincBlendeVolumeShader::unbind() 70 { 71 cgGLDisableTextureParameter(_volumeAParam); 72 cgGLDisableTextureParameter(_volumeBParam); 73 cgGLDisableTextureParameter(_tfParam); 74 75 cgGLDisableProfile(CG_PROFILE_FP30); 76 }
Note: See TracChangeset
for help on using the changeset viewer.