Eigene Dateien/Vis/src/VVolumeRenderer_helper.cpp

Go to the documentation of this file.
00001 #include "VVolumeRenderer.h"
00002 #include "glew.h"
00003 
00004 void VVolumeRenderer::setShaderWrapperMIP()
00005 {
00006         glActiveTextureARB(GL_TEXTURE0_ARB);
00007         glEnable(GL_TEXTURE_3D);
00008         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00009 
00010         /*glActiveTextureARB(GL_TEXTURE1_ARB);
00011         glEnable(GL_TEXTURE_1D);
00012         glBindTexture(GL_TEXTURE_1D, m_TransferFunctionHandle);*/
00013 
00014         glActiveTextureARB(GL_TEXTURE2_ARB);
00015         glEnable(GL_TEXTURE_2D);
00016         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00017 
00018         glActiveTextureARB(GL_TEXTURE3_ARB);
00019         glEnable(GL_TEXTURE_2D);
00020         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00021 
00022         m_RayCasterMIP.bind();
00023 
00024         glUniform1i(m_RayCasterMIP.getUniformLocation("mVolume"),0);
00025         glUniform1i(m_RayCasterMIP.getUniformLocation("mTransfer"),1);
00026         glUniform1i(m_RayCasterMIP.getUniformLocation("mFrontFaces"),2);
00027         glUniform1i(m_RayCasterMIP.getUniformLocation("mBackFaces"),3);
00028 
00029         glUniform3fv(m_RayCasterMIP.getUniformLocation("mClearColor"), 1, m_ClearColor);
00030 }
00031 
00032 void VVolumeRenderer::setShaderWrapperMIPtf()
00033 {
00034         glActiveTextureARB(GL_TEXTURE0_ARB);
00035         glEnable(GL_TEXTURE_3D);
00036         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00037 
00038         glActiveTextureARB(GL_TEXTURE1_ARB);
00039         glEnable(GL_TEXTURE_2D);
00040         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
00041 
00042         glActiveTextureARB(GL_TEXTURE2_ARB);
00043         glEnable(GL_TEXTURE_2D);
00044         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00045 
00046         glActiveTextureARB(GL_TEXTURE3_ARB);
00047         glEnable(GL_TEXTURE_2D);
00048         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00049 
00050         m_RayCasterMIPtf.bind();
00051 
00052         glUniform1i(m_RayCasterMIPtf.getUniformLocation("mVolume"),0);
00053         glUniform1i(m_RayCasterMIPtf.getUniformLocation("mTransfer"),1);
00054         glUniform1i(m_RayCasterMIPtf.getUniformLocation("mFrontFaces"),2);
00055         glUniform1i(m_RayCasterMIPtf.getUniformLocation("mBackFaces"),3);
00056 
00057         glUniform3fv(m_RayCasterMIPtf.getUniformLocation("mClearColor"), 1, m_ClearColor);
00058 }
00059 
00060 void VVolumeRenderer::setShaderWrapperMIPtf2d()
00061 {
00062         glActiveTextureARB(GL_TEXTURE0_ARB);
00063         glEnable(GL_TEXTURE_3D);
00064         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00065 
00066         glActiveTextureARB(GL_TEXTURE1_ARB);
00067         glEnable(GL_TEXTURE_2D);
00068         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
00069 
00070         glActiveTextureARB(GL_TEXTURE2_ARB);
00071         glEnable(GL_TEXTURE_2D);
00072         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00073 
00074         glActiveTextureARB(GL_TEXTURE3_ARB);
00075         glEnable(GL_TEXTURE_2D);
00076         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00077 
00078         m_RayCasterMIPtf2d.bind();
00079 
00080         glUniform1i(m_RayCasterMIPtf2d.getUniformLocation("mVolume"),0);
00081         glUniform1i(m_RayCasterMIPtf2d.getUniformLocation("mTransfer"),1);
00082         glUniform1i(m_RayCasterMIPtf2d.getUniformLocation("mFrontFaces"),2);
00083         glUniform1i(m_RayCasterMIPtf2d.getUniformLocation("mBackFaces"),3);
00084 
00085         glUniform3fv(m_RayCasterMIPtf2d.getUniformLocation("mClearColor"), 1, m_ClearColor);
00086 }
00087 
00088 void VVolumeRenderer::setShaderWrapperDVR()
00089 {
00090         glActiveTextureARB(GL_TEXTURE0_ARB);
00091         glEnable(GL_TEXTURE_3D);
00092         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00093 
00094         /*glActiveTextureARB(GL_TEXTURE1_ARB);
00095         glEnable(GL_TEXTURE_1D);
00096         glBindTexture(GL_TEXTURE_1D, m_TransferFunctionHandle);*/
00097 
00098         glActiveTextureARB(GL_TEXTURE2_ARB);
00099         glEnable(GL_TEXTURE_2D);
00100         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00101 
00102         glActiveTextureARB(GL_TEXTURE3_ARB);
00103         glEnable(GL_TEXTURE_2D);
00104         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00105 
00106         m_RayCasterDVR.bind();
00107 
00108         glUniform1i(m_RayCasterDVR.getUniformLocation("mVolume"),0);
00109         glUniform1i(m_RayCasterDVR.getUniformLocation("mTransfer"),1);
00110         glUniform1i(m_RayCasterDVR.getUniformLocation("mFrontFaces"),2);
00111         glUniform1i(m_RayCasterDVR.getUniformLocation("mBackFaces"),3);
00112 
00113         glUniform3fv(m_RayCasterDVR.getUniformLocation("mClearColor"), 1, m_ClearColor);
00114 }
00115 
00116 void VVolumeRenderer::setShaderWrapperDVRtf()
00117 {
00118         glActiveTextureARB(GL_TEXTURE0_ARB);
00119         glEnable(GL_TEXTURE_3D);
00120         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00121 
00122         glActiveTextureARB(GL_TEXTURE1_ARB);
00123         glEnable(GL_TEXTURE_2D);
00124         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
00125 
00126         glActiveTextureARB(GL_TEXTURE2_ARB);
00127         glEnable(GL_TEXTURE_2D);
00128         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00129 
00130         glActiveTextureARB(GL_TEXTURE3_ARB);
00131         glEnable(GL_TEXTURE_2D);
00132         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00133 
00134         m_RayCasterDVRtf.bind();
00135 
00136         glUniform1i(m_RayCasterDVRtf.getUniformLocation("mVolume"),0);
00137         glUniform1i(m_RayCasterDVRtf.getUniformLocation("mTransfer"),1);
00138         glUniform1i(m_RayCasterDVRtf.getUniformLocation("mFrontFaces"),2);
00139         glUniform1i(m_RayCasterDVRtf.getUniformLocation("mBackFaces"),3);
00140 
00141         glUniform3fv(m_RayCasterDVRtf.getUniformLocation("mClearColor"), 1, m_ClearColor);
00142 }
00143 
00144 void VVolumeRenderer::setShaderWrapperDVRtf2d()
00145 {
00146         //TODO:
00147         //implement 2d tf!!
00148         glActiveTextureARB(GL_TEXTURE0_ARB);
00149         glEnable(GL_TEXTURE_3D);
00150         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00151 
00152         glActiveTextureARB(GL_TEXTURE1_ARB);
00153         glEnable(GL_TEXTURE_2D);
00154         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
00155 
00156         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); // scale linearly when image bigger than texture
00157         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
00158 
00159         glActiveTextureARB(GL_TEXTURE2_ARB);
00160         glEnable(GL_TEXTURE_2D);
00161         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00162 
00163         glActiveTextureARB(GL_TEXTURE3_ARB);
00164         glEnable(GL_TEXTURE_2D);
00165         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00166 
00167         glActiveTextureARB(GL_TEXTURE4_ARB);
00168         glEnable(GL_TEXTURE_2D);
00169         glBindTexture(GL_TEXTURE_2D, m_NoiseTex->getImageHandle());
00170 
00171 
00172         m_RayCasterDVRtf2d.bind();
00173 
00174         glUniform1i(m_RayCasterDVRtf2d.getUniformLocation("mVolume"),0);
00175         glUniform1i(m_RayCasterDVRtf2d.getUniformLocation("mTransfer"),1);
00176         glUniform1i(m_RayCasterDVRtf2d.getUniformLocation("mFrontFaces"),2);
00177         glUniform1i(m_RayCasterDVRtf2d.getUniformLocation("mBackFaces"),3);
00178         glUniform1i(m_RayCasterDVRtf2d.getUniformLocation("mNoiseTexture"),4);
00179 
00180         glUniform3fv(m_RayCasterDVRtf2d.getUniformLocation("mClearColor"), 1, m_ClearColor);
00181 
00182         float dimension[3];
00183         dimension[0] = m_Volume->getDimX();
00184         dimension[1] = m_Volume->getDimY();
00185         dimension[2] = m_Volume->getDimZ();
00186         glUniform3fv(m_RayCasterDVRtf2d.getUniformLocation("dimension"), 1, dimension);
00187 }
00188 
00189 void VVolumeRenderer::setShaderWrapperDVRbtf()
00190 {
00191         glActiveTextureARB(GL_TEXTURE0_ARB);
00192         glEnable(GL_TEXTURE_3D);
00193         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00194 
00195         /*glActiveTextureARB(GL_TEXTURE1_ARB);
00196         glEnable(GL_TEXTURE_1D);
00197         glBindTexture(GL_TEXTURE_1D, m_TransferFunctionHandle);*/
00198 
00199         glActiveTextureARB(GL_TEXTURE2_ARB);
00200         glEnable(GL_TEXTURE_2D);
00201         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00202 
00203         glActiveTextureARB(GL_TEXTURE3_ARB);
00204         glEnable(GL_TEXTURE_2D);
00205         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00206 
00207         m_RayCasterDVR_BTF.bind();
00208 
00209         glUniform1i(m_RayCasterDVR_BTF.getUniformLocation("mVolume"),0);
00210         glUniform1i(m_RayCasterDVR_BTF.getUniformLocation("mFrontFaces"),2);
00211         glUniform1i(m_RayCasterDVR_BTF.getUniformLocation("mBackFaces"),3);
00212 
00213         glUniform3fv(m_RayCasterDVR_BTF.getUniformLocation("mClearColor"), 1, m_ClearColor);
00214 }
00215 
00216 void VVolumeRenderer::setShaderWrapperDVRbtftf()
00217 {
00218         glActiveTextureARB(GL_TEXTURE0_ARB);
00219         glEnable(GL_TEXTURE_3D);
00220         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00221 
00222         glActiveTextureARB(GL_TEXTURE1_ARB);
00223         glEnable(GL_TEXTURE_2D);
00224         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
00225 
00226         glActiveTextureARB(GL_TEXTURE2_ARB);
00227         glEnable(GL_TEXTURE_2D);
00228         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00229 
00230         glActiveTextureARB(GL_TEXTURE3_ARB);
00231         glEnable(GL_TEXTURE_2D);
00232         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00233 
00234         m_RayCasterDVR_BTFtf.bind();
00235 
00236         glUniform1i(m_RayCasterDVR_BTFtf.getUniformLocation("mVolume"),0);
00237         glUniform1i(m_RayCasterDVR_BTFtf.getUniformLocation("mTransfer"),1);
00238         glUniform1i(m_RayCasterDVR_BTFtf.getUniformLocation("mFrontFaces"),2);
00239         glUniform1i(m_RayCasterDVR_BTFtf.getUniformLocation("mBackFaces"),3);
00240 
00241         glUniform3fv(m_RayCasterDVR_BTFtf.getUniformLocation("mClearColor"), 1, m_ClearColor);
00242 }
00243 
00244 void VVolumeRenderer::setShaderWrapperDVRbtftf2d()
00245 {
00246         //TODO:
00247         //implement 2d tf!!
00248         glActiveTextureARB(GL_TEXTURE0_ARB);
00249         glEnable(GL_TEXTURE_3D);
00250         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00251 
00252         glActiveTextureARB(GL_TEXTURE1_ARB);
00253         glEnable(GL_TEXTURE_2D);
00254         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
00255 
00256         glActiveTextureARB(GL_TEXTURE2_ARB);
00257         glEnable(GL_TEXTURE_2D);
00258         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00259 
00260         glActiveTextureARB(GL_TEXTURE3_ARB);
00261         glEnable(GL_TEXTURE_2D);
00262         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00263 
00264         m_RayCasterDVR_BTFtf2d.bind();
00265 
00266         glUniform1i(m_RayCasterDVR_BTFtf2d.getUniformLocation("mVolume"),0);
00267         glUniform1i(m_RayCasterDVR_BTFtf2d.getUniformLocation("mTransfer"),1);
00268         glUniform1i(m_RayCasterDVR_BTFtf2d.getUniformLocation("mFrontFaces"),2);
00269         glUniform1i(m_RayCasterDVR_BTFtf2d.getUniformLocation("mBackFaces"),3);
00270 
00271         glUniform3fv(m_RayCasterDVR_BTFtf2d.getUniformLocation("mClearColor"), 1, m_ClearColor);
00272 }
00273 
00274 void VVolumeRenderer::setShaderWrapperDVRCombPhong()
00275 {
00276         glActiveTextureARB(GL_TEXTURE0_ARB);
00277         glEnable(GL_TEXTURE_3D);
00278         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00279 
00280         glActiveTextureARB(GL_TEXTURE1_ARB);
00281         glEnable(GL_TEXTURE_2D);
00282         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
00283 
00284         glActiveTextureARB(GL_TEXTURE2_ARB);
00285         glEnable(GL_TEXTURE_2D);
00286         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00287 
00288         glActiveTextureARB(GL_TEXTURE3_ARB);
00289         glEnable(GL_TEXTURE_2D);
00290         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00291 
00292         glActiveTextureARB(GL_TEXTURE4_ARB);
00293         glEnable(GL_TEXTURE_2D);
00294         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00295 
00296 
00297         glActiveTextureARB(GL_TEXTURE5_ARB);
00298         glEnable(GL_TEXTURE_2D);
00299         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00300 
00301         m_RayCasterCOMB_Phong.bind();
00302 
00303         glUniform1i(m_RayCasterCOMB_Phong.getUniformLocation("mVolume"),0);
00304         glUniform1i(m_RayCasterCOMB_Phong.getUniformLocation("mTransfer"),1);
00305         glUniform1i(m_RayCasterCOMB_Phong.getUniformLocation("mFrontFaces"),2);
00306         glUniform1i(m_RayCasterCOMB_Phong.getUniformLocation("mBackFaces"),3);
00307         glUniform1i(m_RayCasterCOMB_Phong.getUniformLocation("mWorldFrontFaces"),4);
00308         glUniform1i(m_RayCasterCOMB_Phong.getUniformLocation("mWorldBackFaces"),5);
00309 
00310         glUniform3fv(m_RayCasterCOMB_Phong.getUniformLocation("mClearColor"), 1, m_ClearColor);
00311 
00312         glUniform1f(m_RayCasterCOMB_Phong.getUniformLocation("mTresholdH"), m_thresholdH);
00313         glUniform1f(m_RayCasterCOMB_Phong.getUniformLocation("mTresholdL"), m_thresholdL);
00314 
00315         glUniformMatrix4fv(m_RayCasterCOMB_Phong.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00316 
00317         glUniform3fv(m_RayCasterCOMB_Phong.getUniformLocation("mLightDir"), 1, m_LightDir);
00318 
00319         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00320         glUniform3fv(m_RayCasterCOMB_Phong.getUniformLocation("mCamPos"), 1, campos);
00321 
00322         glUniform1f(m_RayCasterCOMB_Phong.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
00323         glUniform1f(m_RayCasterCOMB_Phong.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
00324         glUniform1f(m_RayCasterCOMB_Phong.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
00325         glUniform1f(m_RayCasterCOMB_Phong.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
00326         glUniform1f(m_RayCasterCOMB_Phong.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
00327         glUniform1f(m_RayCasterCOMB_Phong.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
00328 }
00329 
00330 void VVolumeRenderer::setShaderWrapperDVRCombPhongCont()
00331 {
00332         glActiveTextureARB(GL_TEXTURE0_ARB);
00333         glEnable(GL_TEXTURE_3D);
00334         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00335 
00336         glActiveTextureARB(GL_TEXTURE1_ARB);
00337         glEnable(GL_TEXTURE_2D);
00338         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
00339 
00340         glActiveTextureARB(GL_TEXTURE2_ARB);
00341         glEnable(GL_TEXTURE_2D);
00342         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00343 
00344         glActiveTextureARB(GL_TEXTURE3_ARB);
00345         glEnable(GL_TEXTURE_2D);
00346         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00347 
00348         glActiveTextureARB(GL_TEXTURE4_ARB);
00349         glEnable(GL_TEXTURE_2D);
00350         glBindTexture(GL_TEXTURE_2D, m_ContourHandle);
00351 
00352         glActiveTextureARB(GL_TEXTURE5_ARB);
00353         glEnable(GL_TEXTURE_2D);
00354         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00355 
00356 
00357         glActiveTextureARB(GL_TEXTURE6_ARB);
00358         glEnable(GL_TEXTURE_2D);
00359         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00360 
00361         m_RayCasterCOMB_PhongCont.bind();
00362 
00363         glUniform1i(m_RayCasterCOMB_PhongCont.getUniformLocation("mVolume"),0);
00364         glUniform1i(m_RayCasterCOMB_PhongCont.getUniformLocation("mTransfer"),1);
00365         glUniform1i(m_RayCasterCOMB_PhongCont.getUniformLocation("mFrontFaces"),2);
00366         glUniform1i(m_RayCasterCOMB_PhongCont.getUniformLocation("mBackFaces"),3);
00367         glUniform1i(m_RayCasterCOMB_PhongCont.getUniformLocation("mContourMap"),4);
00368         glUniform1i(m_RayCasterCOMB_PhongCont.getUniformLocation("mWorldFrontFaces"),5);
00369         glUniform1i(m_RayCasterCOMB_PhongCont.getUniformLocation("mWorldBackFaces"),6);
00370 
00371         glUniform3fv(m_RayCasterCOMB_PhongCont.getUniformLocation("mClearColor"), 1, m_ClearColor);
00372 
00373         glUniform1f(m_RayCasterCOMB_PhongCont.getUniformLocation("mTresholdH"), m_thresholdH);
00374         glUniform1f(m_RayCasterCOMB_PhongCont.getUniformLocation("mTresholdL"), m_thresholdL);
00375 
00376         glUniformMatrix4fv(m_RayCasterCOMB_PhongCont.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00377 
00378         glUniform3fv(m_RayCasterCOMB_PhongCont.getUniformLocation("mLightDir"), 1, m_LightDir);
00379 
00380         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00381         glUniform3fv(m_RayCasterCOMB_PhongCont.getUniformLocation("mCamPos"), 1, campos);
00382 
00383         glUniform4fv(m_RayCasterCOMB_PhongCont.getUniformLocation("mClipLR"), 1, m_ClipPlaneObj[LEFT_RIGHT].values);
00384         glUniform4fv(m_RayCasterCOMB_PhongCont.getUniformLocation("mClipRL"), 1, m_ClipPlaneObj[RIGHT_LEFT].values);
00385         glUniform4fv(m_RayCasterCOMB_PhongCont.getUniformLocation("mClipBT"), 1, m_ClipPlaneObj[BOTTOM_TOP].values);
00386         glUniform4fv(m_RayCasterCOMB_PhongCont.getUniformLocation("mClipTB"), 1, m_ClipPlaneObj[TOP_BOTTOM].values);
00387         glUniform4fv(m_RayCasterCOMB_PhongCont.getUniformLocation("mClipFB"), 1, m_ClipPlaneObj[FRONT_BACK].values);
00388         glUniform4fv(m_RayCasterCOMB_PhongCont.getUniformLocation("mClipBF"), 1, m_ClipPlaneObj[BACK_FRONT].values);
00389 
00390         glUniform4fv(m_RayCasterCOMB_PhongCont.getUniformLocation("mVolumeSize"), 1, m_VolumeSize);
00391 }
00392 
00393 void VVolumeRenderer::setShaderWrapperDVRCombPhongShadow()
00394 {
00395         glActiveTextureARB(GL_TEXTURE0_ARB);
00396         glEnable(GL_TEXTURE_3D);
00397         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00398 
00399         glActiveTextureARB(GL_TEXTURE1_ARB);
00400         glEnable(GL_TEXTURE_2D);
00401         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
00402 
00403         glActiveTextureARB(GL_TEXTURE2_ARB);
00404         glEnable(GL_TEXTURE_2D);
00405         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00406 
00407         glActiveTextureARB(GL_TEXTURE3_ARB);
00408         glEnable(GL_TEXTURE_2D);
00409         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00410 
00411         glActiveTextureARB(GL_TEXTURE4_ARB);
00412         glEnable(GL_TEXTURE_2D);
00413         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00414 
00415         glActiveTextureARB(GL_TEXTURE5_ARB);
00416         glEnable(GL_TEXTURE_2D);
00417         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00418 
00419         m_RayCasterCOMB_PhongShadow.bind();
00420 
00421         glUniform1i(m_RayCasterCOMB_PhongShadow.getUniformLocation("mVolume"),0);
00422         glUniform1i(m_RayCasterCOMB_PhongShadow.getUniformLocation("mTransfer"),1);
00423         glUniform1i(m_RayCasterCOMB_PhongShadow.getUniformLocation("mFrontFaces"),2);
00424         glUniform1i(m_RayCasterCOMB_PhongShadow.getUniformLocation("mBackFaces"),3);
00425         glUniform1i(m_RayCasterCOMB_PhongShadow.getUniformLocation("mWorldFrontFaces"),4);
00426         glUniform1i(m_RayCasterCOMB_PhongShadow.getUniformLocation("mWorldBackFaces"),5);
00427 
00428         glUniform3fv(m_RayCasterCOMB_PhongShadow.getUniformLocation("mClearColor"), 1, m_ClearColor);
00429 
00430         glUniform1f(m_RayCasterCOMB_PhongShadow.getUniformLocation("mTresholdH"), m_thresholdH);
00431         glUniform1f(m_RayCasterCOMB_PhongShadow.getUniformLocation("mTresholdL"), m_thresholdL);
00432 
00433         glUniformMatrix4fv(m_RayCasterCOMB_PhongShadow.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00434 
00435         glUniform3fv(m_RayCasterCOMB_PhongShadow.getUniformLocation("mLightDir"), 1, m_LightDir);
00436 
00437         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00438         glUniform3fv(m_RayCasterCOMB_PhongShadow.getUniformLocation("mCamPos"), 1, campos);
00439 
00440         glUniform1f(m_RayCasterCOMB_PhongShadow.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
00441         glUniform1f(m_RayCasterCOMB_PhongShadow.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
00442         glUniform1f(m_RayCasterCOMB_PhongShadow.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
00443         glUniform1f(m_RayCasterCOMB_PhongShadow.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
00444         glUniform1f(m_RayCasterCOMB_PhongShadow.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
00445         glUniform1f(m_RayCasterCOMB_PhongShadow.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
00446 }
00447 
00448 
00449 void VVolumeRenderer::setShaderWrapperDVRCombPhongContShadow()
00450 {
00451         glActiveTextureARB(GL_TEXTURE0_ARB);
00452         glEnable(GL_TEXTURE_3D);
00453         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00454 
00455         glActiveTextureARB(GL_TEXTURE1_ARB);
00456         glEnable(GL_TEXTURE_2D);
00457         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
00458 
00459         glActiveTextureARB(GL_TEXTURE2_ARB);
00460         glEnable(GL_TEXTURE_2D);
00461         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00462 
00463         glActiveTextureARB(GL_TEXTURE3_ARB);
00464         glEnable(GL_TEXTURE_2D);
00465         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00466 
00467         glActiveTextureARB(GL_TEXTURE4_ARB);
00468         glEnable(GL_TEXTURE_2D);
00469         glBindTexture(GL_TEXTURE_2D, m_ContourHandle);
00470 
00471         glActiveTextureARB(GL_TEXTURE5_ARB);
00472         glEnable(GL_TEXTURE_2D);
00473         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00474 
00475 
00476         glActiveTextureARB(GL_TEXTURE6_ARB);
00477         glEnable(GL_TEXTURE_2D);
00478         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00479 
00480         m_RayCasterCOMB_PhongContourShadow.bind();
00481 
00482         glUniform1i(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mVolume"),0);
00483         glUniform1i(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mTransfer"),1);
00484         glUniform1i(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mFrontFaces"),2);
00485         glUniform1i(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mBackFaces"),3);
00486         glUniform1i(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mContourMap"),4);
00487         glUniform1i(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mWorldFrontFaces"),5);
00488         glUniform1i(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mWorldBackFaces"),6);
00489 
00490         glUniform3fv(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mClearColor"), 1, m_ClearColor);
00491 
00492         glUniform1f(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mTresholdH"), m_thresholdH);
00493         glUniform1f(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mTresholdL"), m_thresholdL);
00494 
00495         glUniformMatrix4fv(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00496 
00497         glUniform3fv(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mLightDir"), 1, m_LightDir);
00498 
00499         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00500         glUniform3fv(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mCamPos"), 1, campos);
00501 
00502         glUniform1f(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
00503         glUniform1f(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
00504         glUniform1f(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
00505         glUniform1f(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
00506         glUniform1f(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
00507         glUniform1f(m_RayCasterCOMB_PhongContourShadow.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
00508 }
00509 
00510 
00511 
00512 
00513 void VVolumeRenderer::setShaderWrapperDVRCombPhongt2f()
00514 {
00515         glActiveTextureARB(GL_TEXTURE0_ARB);
00516         glEnable(GL_TEXTURE_3D);
00517         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00518 
00519         glActiveTextureARB(GL_TEXTURE1_ARB);
00520         glEnable(GL_TEXTURE_2D);
00521         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
00522 
00523         glActiveTextureARB(GL_TEXTURE2_ARB);
00524         glEnable(GL_TEXTURE_2D);
00525         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00526 
00527         glActiveTextureARB(GL_TEXTURE3_ARB);
00528         glEnable(GL_TEXTURE_2D);
00529         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00530 
00531         glActiveTextureARB(GL_TEXTURE4_ARB);
00532         glEnable(GL_TEXTURE_2D);
00533         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00534 
00535 
00536         glActiveTextureARB(GL_TEXTURE5_ARB);
00537         glEnable(GL_TEXTURE_2D);
00538         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00539 
00540         m_RayCasterCOMB_Phongt2f.bind();
00541 
00542         glUniform1i(m_RayCasterCOMB_Phongt2f.getUniformLocation("mVolume"),0);
00543         glUniform1i(m_RayCasterCOMB_Phongt2f.getUniformLocation("mTransfer"),1);
00544         glUniform1i(m_RayCasterCOMB_Phongt2f.getUniformLocation("mFrontFaces"),2);
00545         glUniform1i(m_RayCasterCOMB_Phongt2f.getUniformLocation("mBackFaces"),3);
00546         glUniform1i(m_RayCasterCOMB_Phongt2f.getUniformLocation("mWorldFrontFaces"),4);
00547         glUniform1i(m_RayCasterCOMB_Phongt2f.getUniformLocation("mWorldBackFaces"),5);
00548 
00549         glUniform3fv(m_RayCasterCOMB_Phongt2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
00550 
00551         glUniform1f(m_RayCasterCOMB_Phongt2f.getUniformLocation("mTresholdH"), m_thresholdH);
00552         glUniform1f(m_RayCasterCOMB_Phongt2f.getUniformLocation("mTresholdL"), m_thresholdL);
00553 
00554         glUniformMatrix4fv(m_RayCasterCOMB_Phongt2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00555 
00556         glUniform3fv(m_RayCasterCOMB_Phongt2f.getUniformLocation("mLightDir"), 1, m_LightDir);
00557 
00558         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00559         glUniform3fv(m_RayCasterCOMB_Phongt2f.getUniformLocation("mCamPos"), 1, campos);
00560 
00561         glUniform1f(m_RayCasterCOMB_Phongt2f.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
00562         glUniform1f(m_RayCasterCOMB_Phongt2f.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
00563         glUniform1f(m_RayCasterCOMB_Phongt2f.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
00564         glUniform1f(m_RayCasterCOMB_Phongt2f.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
00565         glUniform1f(m_RayCasterCOMB_Phongt2f.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
00566         glUniform1f(m_RayCasterCOMB_Phongt2f.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
00567 }
00568 
00569 void VVolumeRenderer::setShaderWrapperDVRCombPhongContt2f()
00570 {
00571         glActiveTextureARB(GL_TEXTURE0_ARB);
00572         glEnable(GL_TEXTURE_3D);
00573         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00574 
00575         glActiveTextureARB(GL_TEXTURE1_ARB);
00576         glEnable(GL_TEXTURE_2D);
00577         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
00578 
00579         glActiveTextureARB(GL_TEXTURE2_ARB);
00580         glEnable(GL_TEXTURE_2D);
00581         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00582 
00583         glActiveTextureARB(GL_TEXTURE3_ARB);
00584         glEnable(GL_TEXTURE_2D);
00585         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00586 
00587         glActiveTextureARB(GL_TEXTURE4_ARB);
00588         glEnable(GL_TEXTURE_2D);
00589         glBindTexture(GL_TEXTURE_2D, m_ContourHandle);
00590 
00591         glActiveTextureARB(GL_TEXTURE5_ARB);
00592         glEnable(GL_TEXTURE_2D);
00593         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00594 
00595 
00596         glActiveTextureARB(GL_TEXTURE6_ARB);
00597         glEnable(GL_TEXTURE_2D);
00598         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00599 
00600         m_RayCasterCOMB_PhongContt2f.bind();
00601 
00602         glUniform1i(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mVolume"),0);
00603         glUniform1i(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mTransfer"),1);
00604         glUniform1i(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mFrontFaces"),2);
00605         glUniform1i(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mBackFaces"),3);
00606         glUniform1i(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mContourMap"),4);
00607         glUniform1i(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mWorldFrontFaces"),5);
00608         glUniform1i(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mWorldBackFaces"),6);
00609 
00610         glUniform3fv(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
00611 
00612         glUniform1f(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mTresholdH"), m_thresholdH);
00613         glUniform1f(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mTresholdL"), m_thresholdL);
00614 
00615         glUniformMatrix4fv(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00616 
00617         glUniform3fv(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mLightDir"), 1, m_LightDir);
00618 
00619         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00620         glUniform3fv(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mCamPos"), 1, campos);
00621 
00622         glUniform4fv(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mClipLR"), 1, m_ClipPlaneObj[LEFT_RIGHT].values);
00623         glUniform4fv(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mClipRL"), 1, m_ClipPlaneObj[RIGHT_LEFT].values);
00624         glUniform4fv(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mClipBT"), 1, m_ClipPlaneObj[BOTTOM_TOP].values);
00625         glUniform4fv(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mClipTB"), 1, m_ClipPlaneObj[TOP_BOTTOM].values);
00626         glUniform4fv(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mClipFB"), 1, m_ClipPlaneObj[FRONT_BACK].values);
00627         glUniform4fv(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mClipBF"), 1, m_ClipPlaneObj[BACK_FRONT].values);
00628 
00629         glUniform4fv(m_RayCasterCOMB_PhongContt2f.getUniformLocation("mVolumeSize"), 1, m_VolumeSize);
00630 }
00631 
00632 void VVolumeRenderer::setShaderWrapperDVRCombPhongShadowt2f()
00633 {
00634         glActiveTextureARB(GL_TEXTURE0_ARB);
00635         glEnable(GL_TEXTURE_3D);
00636         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00637 
00638         glActiveTextureARB(GL_TEXTURE1_ARB);
00639         glEnable(GL_TEXTURE_2D);
00640         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
00641 
00642         glActiveTextureARB(GL_TEXTURE2_ARB);
00643         glEnable(GL_TEXTURE_2D);
00644         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00645 
00646         glActiveTextureARB(GL_TEXTURE3_ARB);
00647         glEnable(GL_TEXTURE_2D);
00648         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00649 
00650         glActiveTextureARB(GL_TEXTURE4_ARB);
00651         glEnable(GL_TEXTURE_2D);
00652         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00653 
00654         glActiveTextureARB(GL_TEXTURE5_ARB);
00655         glEnable(GL_TEXTURE_2D);
00656         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00657 
00658         m_RayCasterCOMB_PhongShadowt2f.bind();
00659 
00660         glUniform1i(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mVolume"),0);
00661         glUniform1i(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mTransfer"),1);
00662         glUniform1i(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mFrontFaces"),2);
00663         glUniform1i(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mBackFaces"),3);
00664         glUniform1i(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mWorldFrontFaces"),4);
00665         glUniform1i(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mWorldBackFaces"),5);
00666 
00667         glUniform3fv(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
00668 
00669         glUniform1f(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mTresholdH"), m_thresholdH);
00670         glUniform1f(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mTresholdL"), m_thresholdL);
00671 
00672         glUniformMatrix4fv(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00673 
00674         glUniform3fv(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mLightDir"), 1, m_LightDir);
00675 
00676         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00677         glUniform3fv(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mCamPos"), 1, campos);
00678 
00679         glUniform1f(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
00680         glUniform1f(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
00681         glUniform1f(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
00682         glUniform1f(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
00683         glUniform1f(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
00684         glUniform1f(m_RayCasterCOMB_PhongShadowt2f.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
00685 }
00686 
00687 void VVolumeRenderer::setShaderWrapperDVRCombPhongContShadowt2f()
00688 {
00689         glActiveTextureARB(GL_TEXTURE0_ARB);
00690         glEnable(GL_TEXTURE_3D);
00691         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00692 
00693         glActiveTextureARB(GL_TEXTURE1_ARB);
00694         glEnable(GL_TEXTURE_2D);
00695         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
00696 
00697         glActiveTextureARB(GL_TEXTURE2_ARB);
00698         glEnable(GL_TEXTURE_2D);
00699         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00700 
00701         glActiveTextureARB(GL_TEXTURE3_ARB);
00702         glEnable(GL_TEXTURE_2D);
00703         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00704 
00705         glActiveTextureARB(GL_TEXTURE4_ARB);
00706         glEnable(GL_TEXTURE_2D);
00707         glBindTexture(GL_TEXTURE_2D, m_ContourHandle);
00708 
00709         glActiveTextureARB(GL_TEXTURE5_ARB);
00710         glEnable(GL_TEXTURE_2D);
00711         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00712 
00713 
00714         glActiveTextureARB(GL_TEXTURE6_ARB);
00715         glEnable(GL_TEXTURE_2D);
00716         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00717 
00718 
00719         m_RayCasterCOMB_PhongContourShadowt2f.bind();
00720 
00721         glUniform1i(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mVolume"),0);
00722         glUniform1i(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mTransfer"),1);
00723         glUniform1i(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mFrontFaces"),2);
00724         glUniform1i(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mBackFaces"),3);
00725         glUniform1i(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mContourMap"),4);
00726         glUniform1i(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mWorldFrontFaces"),5);
00727         glUniform1i(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mWorldBackFaces"),6);
00728 
00729         glUniform3fv(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
00730 
00731         glUniform1f(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mTresholdH"), m_thresholdH);
00732         glUniform1f(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mTresholdL"), m_thresholdL);
00733 
00734         glUniformMatrix4fv(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00735 
00736         glUniform3fv(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mLightDir"), 1, m_LightDir);
00737 
00738         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00739         glUniform3fv(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mCamPos"), 1, campos);
00740 
00741         glUniform1f(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
00742         glUniform1f(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
00743         glUniform1f(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
00744         glUniform1f(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
00745         glUniform1f(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
00746         glUniform1f(m_RayCasterCOMB_PhongContourShadowt2f.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
00747 }
00748 
00749 void VVolumeRenderer::setShaderWrapperDVRCombToon()
00750 {
00751         glActiveTextureARB(GL_TEXTURE0_ARB);
00752         glEnable(GL_TEXTURE_3D);
00753         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00754 
00755         glActiveTextureARB(GL_TEXTURE1_ARB);
00756         glEnable(GL_TEXTURE_2D);
00757         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
00758 
00759         glActiveTextureARB(GL_TEXTURE2_ARB);
00760         glEnable(GL_TEXTURE_2D);
00761         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00762 
00763         glActiveTextureARB(GL_TEXTURE3_ARB);
00764         glEnable(GL_TEXTURE_2D);
00765         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00766 
00767         glActiveTextureARB(GL_TEXTURE4_ARB);
00768         glEnable(GL_TEXTURE_2D);
00769         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00770 
00771         glActiveTextureARB(GL_TEXTURE5_ARB);
00772         glEnable(GL_TEXTURE_2D);
00773         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00774 
00775         glActiveTextureARB(GL_TEXTURE6_ARB);
00776         glEnable(GL_TEXTURE_2D);
00777         glBindTexture(GL_TEXTURE_2D, m_ToonTex->getImageHandle());
00778 
00779         m_RayCasterCOMB_Toon.bind();
00780 
00781         glUniform1i(m_RayCasterCOMB_Toon.getUniformLocation("mVolume"),0);
00782         glUniform1i(m_RayCasterCOMB_Toon.getUniformLocation("mTransfer"),1);
00783         glUniform1i(m_RayCasterCOMB_Toon.getUniformLocation("mFrontFaces"),2);
00784         glUniform1i(m_RayCasterCOMB_Toon.getUniformLocation("mBackFaces"),3);
00785         glUniform1i(m_RayCasterCOMB_Toon.getUniformLocation("mWorldFrontFaces"),4);
00786         glUniform1i(m_RayCasterCOMB_Toon.getUniformLocation("mWorldBackFaces"),5);
00787         glUniform1i(m_RayCasterCOMB_Toon.getUniformLocation("mToonLookup"),6);
00788 
00789         glUniform3fv(m_RayCasterCOMB_Toon.getUniformLocation("mClearColor"), 1, m_ClearColor);
00790 
00791         glUniform1f(m_RayCasterCOMB_Toon.getUniformLocation("mTresholdH"), m_thresholdH);
00792         glUniform1f(m_RayCasterCOMB_Toon.getUniformLocation("mTresholdL"), m_thresholdL);
00793 
00794         glUniformMatrix4fv(m_RayCasterCOMB_Toon.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00795 
00796         glUniform3fv(m_RayCasterCOMB_Toon.getUniformLocation("mLightDir"), 1, m_LightDir);
00797 
00798         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00799         glUniform3fv(m_RayCasterCOMB_Toon.getUniformLocation("mCamPos"), 1, campos);
00800 
00801         glUniform1f(m_RayCasterCOMB_Toon.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
00802         glUniform1f(m_RayCasterCOMB_Toon.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
00803         glUniform1f(m_RayCasterCOMB_Toon.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
00804         glUniform1f(m_RayCasterCOMB_Toon.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
00805         glUniform1f(m_RayCasterCOMB_Toon.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
00806         glUniform1f(m_RayCasterCOMB_Toon.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
00807 }
00808 
00809 void VVolumeRenderer::setShaderWrapperDVRCombToonCont()
00810 {
00811         glActiveTextureARB(GL_TEXTURE0_ARB);
00812         glEnable(GL_TEXTURE_3D);
00813         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00814 
00815         glActiveTextureARB(GL_TEXTURE1_ARB);
00816         glEnable(GL_TEXTURE_2D);
00817         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
00818 
00819         glActiveTextureARB(GL_TEXTURE2_ARB);
00820         glEnable(GL_TEXTURE_2D);
00821         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00822 
00823         glActiveTextureARB(GL_TEXTURE3_ARB);
00824         glEnable(GL_TEXTURE_2D);
00825         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00826 
00827         glActiveTextureARB(GL_TEXTURE4_ARB);
00828         glEnable(GL_TEXTURE_2D);
00829         glBindTexture(GL_TEXTURE_2D, m_ContourHandle);
00830 
00831         glActiveTextureARB(GL_TEXTURE5_ARB);
00832         glEnable(GL_TEXTURE_2D);
00833         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00834 
00835 
00836         glActiveTextureARB(GL_TEXTURE6_ARB);
00837         glEnable(GL_TEXTURE_2D);
00838         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00839 
00840         glActiveTextureARB(GL_TEXTURE7_ARB);
00841         glEnable(GL_TEXTURE_2D);
00842         glBindTexture(GL_TEXTURE_2D, m_ToonTex->getImageHandle());
00843 
00844         m_RayCasterCOMB_ToonCont.bind();
00845 
00846         glUniform1i(m_RayCasterCOMB_ToonCont.getUniformLocation("mVolume"),0);
00847         glUniform1i(m_RayCasterCOMB_ToonCont.getUniformLocation("mTransfer"),1);
00848         glUniform1i(m_RayCasterCOMB_ToonCont.getUniformLocation("mFrontFaces"),2);
00849         glUniform1i(m_RayCasterCOMB_ToonCont.getUniformLocation("mBackFaces"),3);
00850         glUniform1i(m_RayCasterCOMB_ToonCont.getUniformLocation("mContourMap"),4);
00851         glUniform1i(m_RayCasterCOMB_ToonCont.getUniformLocation("mWorldFrontFaces"),5);
00852         glUniform1i(m_RayCasterCOMB_ToonCont.getUniformLocation("mWorldBackFaces"),6);
00853         glUniform1i(m_RayCasterCOMB_ToonCont.getUniformLocation("mToonLookup"), 7);
00854 
00855         glUniform3fv(m_RayCasterCOMB_ToonCont.getUniformLocation("mClearColor"), 1, m_ClearColor);
00856 
00857         glUniform1f(m_RayCasterCOMB_ToonCont.getUniformLocation("mTresholdH"), m_thresholdH);
00858         glUniform1f(m_RayCasterCOMB_ToonCont.getUniformLocation("mTresholdL"), m_thresholdL);
00859 
00860         glUniformMatrix4fv(m_RayCasterCOMB_ToonCont.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00861 
00862         glUniform3fv(m_RayCasterCOMB_ToonCont.getUniformLocation("mLightDir"), 1, m_LightDir);
00863 
00864         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00865         glUniform3fv(m_RayCasterCOMB_ToonCont.getUniformLocation("mCamPos"), 1, campos);
00866 
00867         glUniform4fv(m_RayCasterCOMB_ToonCont.getUniformLocation("mClipLR"), 1, m_ClipPlaneObj[LEFT_RIGHT].values);
00868         glUniform4fv(m_RayCasterCOMB_ToonCont.getUniformLocation("mClipRL"), 1, m_ClipPlaneObj[RIGHT_LEFT].values);
00869         glUniform4fv(m_RayCasterCOMB_ToonCont.getUniformLocation("mClipBT"), 1, m_ClipPlaneObj[BOTTOM_TOP].values);
00870         glUniform4fv(m_RayCasterCOMB_ToonCont.getUniformLocation("mClipTB"), 1, m_ClipPlaneObj[TOP_BOTTOM].values);
00871         glUniform4fv(m_RayCasterCOMB_ToonCont.getUniformLocation("mClipFB"), 1, m_ClipPlaneObj[FRONT_BACK].values);
00872         glUniform4fv(m_RayCasterCOMB_ToonCont.getUniformLocation("mClipBF"), 1, m_ClipPlaneObj[BACK_FRONT].values);
00873 
00874         glUniform4fv(m_RayCasterCOMB_ToonCont.getUniformLocation("mVolumeSize"), 1, m_VolumeSize);
00875 }
00876 
00877 void VVolumeRenderer::setShaderWrapperDVRCombToonShadow()
00878 {
00879         glActiveTextureARB(GL_TEXTURE0_ARB);
00880         glEnable(GL_TEXTURE_3D);
00881         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00882 
00883         glActiveTextureARB(GL_TEXTURE1_ARB);
00884         glEnable(GL_TEXTURE_2D);
00885         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
00886 
00887         glActiveTextureARB(GL_TEXTURE2_ARB);
00888         glEnable(GL_TEXTURE_2D);
00889         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00890 
00891         glActiveTextureARB(GL_TEXTURE3_ARB);
00892         glEnable(GL_TEXTURE_2D);
00893         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00894 
00895         glActiveTextureARB(GL_TEXTURE4_ARB);
00896         glEnable(GL_TEXTURE_2D);
00897         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00898 
00899         glActiveTextureARB(GL_TEXTURE5_ARB);
00900         glEnable(GL_TEXTURE_2D);
00901         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00902 
00903         glActiveTextureARB(GL_TEXTURE6_ARB);
00904         glEnable(GL_TEXTURE_2D);
00905         glBindTexture(GL_TEXTURE_2D, m_ToonTex->getImageHandle());
00906 
00907         m_RayCasterCOMB_ToonShadow.bind();
00908 
00909         glUniform1i(m_RayCasterCOMB_ToonShadow.getUniformLocation("mVolume"),0);
00910         glUniform1i(m_RayCasterCOMB_ToonShadow.getUniformLocation("mTransfer"),1);
00911         glUniform1i(m_RayCasterCOMB_ToonShadow.getUniformLocation("mFrontFaces"),2);
00912         glUniform1i(m_RayCasterCOMB_ToonShadow.getUniformLocation("mBackFaces"),3);
00913         glUniform1i(m_RayCasterCOMB_ToonShadow.getUniformLocation("mWorldFrontFaces"),4);
00914         glUniform1i(m_RayCasterCOMB_ToonShadow.getUniformLocation("mWorldBackFaces"),5);
00915         glUniform1i(m_RayCasterCOMB_ToonCont.getUniformLocation("mToonLookup"), 6);
00916 
00917         glUniform3fv(m_RayCasterCOMB_ToonShadow.getUniformLocation("mClearColor"), 1, m_ClearColor);
00918 
00919         glUniform1f(m_RayCasterCOMB_ToonShadow.getUniformLocation("mTresholdH"), m_thresholdH);
00920         glUniform1f(m_RayCasterCOMB_ToonShadow.getUniformLocation("mTresholdL"), m_thresholdL);
00921 
00922         glUniformMatrix4fv(m_RayCasterCOMB_ToonShadow.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00923 
00924         glUniform3fv(m_RayCasterCOMB_ToonShadow.getUniformLocation("mLightDir"), 1, m_LightDir);
00925 
00926         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00927         glUniform3fv(m_RayCasterCOMB_ToonShadow.getUniformLocation("mCamPos"), 1, campos);
00928 
00929         glUniform1f(m_RayCasterCOMB_ToonShadow.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
00930         glUniform1f(m_RayCasterCOMB_ToonShadow.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
00931         glUniform1f(m_RayCasterCOMB_ToonShadow.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
00932         glUniform1f(m_RayCasterCOMB_ToonShadow.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
00933         glUniform1f(m_RayCasterCOMB_ToonShadow.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
00934         glUniform1f(m_RayCasterCOMB_ToonShadow.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
00935 }
00936 
00937 void VVolumeRenderer::setShaderWrapperDVRCombToonContShadow()
00938 {
00939         glActiveTextureARB(GL_TEXTURE0_ARB);
00940         glEnable(GL_TEXTURE_3D);
00941         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
00942 
00943         glActiveTextureARB(GL_TEXTURE1_ARB);
00944         glEnable(GL_TEXTURE_2D);
00945         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
00946 
00947         glActiveTextureARB(GL_TEXTURE2_ARB);
00948         glEnable(GL_TEXTURE_2D);
00949         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
00950 
00951         glActiveTextureARB(GL_TEXTURE3_ARB);
00952         glEnable(GL_TEXTURE_2D);
00953         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
00954 
00955         glActiveTextureARB(GL_TEXTURE4_ARB);
00956         glEnable(GL_TEXTURE_2D);
00957         glBindTexture(GL_TEXTURE_2D, m_ContourHandle);
00958 
00959         glActiveTextureARB(GL_TEXTURE5_ARB);
00960         glEnable(GL_TEXTURE_2D);
00961         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
00962 
00963 
00964         glActiveTextureARB(GL_TEXTURE6_ARB);
00965         glEnable(GL_TEXTURE_2D);
00966         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
00967 
00968         glActiveTextureARB(GL_TEXTURE7_ARB);
00969         glEnable(GL_TEXTURE_2D);
00970         glBindTexture(GL_TEXTURE_2D, m_ToonTex->getImageHandle());
00971 
00972         m_RayCasterCOMB_ToonContourShadow.bind();
00973 
00974         glUniform1i(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mVolume"),0);
00975         glUniform1i(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mTransfer"),1);
00976         glUniform1i(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mFrontFaces"),2);
00977         glUniform1i(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mBackFaces"),3);
00978         glUniform1i(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mContourMap"),4);
00979         glUniform1i(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mWorldFrontFaces"),5);
00980         glUniform1i(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mWorldBackFaces"),6);
00981         glUniform1i(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mToonLookup"),7);
00982 
00983         glUniform3fv(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mClearColor"), 1, m_ClearColor);
00984 
00985         glUniform1f(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mTresholdH"), m_thresholdH);
00986         glUniform1f(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mTresholdL"), m_thresholdL);
00987 
00988         glUniformMatrix4fv(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
00989 
00990         glUniform3fv(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mLightDir"), 1, m_LightDir);
00991 
00992         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
00993         glUniform3fv(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mCamPos"), 1, campos);
00994 
00995         glUniform1f(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
00996         glUniform1f(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
00997         glUniform1f(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
00998         glUniform1f(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
00999         glUniform1f(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01000         glUniform1f(m_RayCasterCOMB_ToonContourShadow.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01001 }
01002 
01003 
01004 
01005 void VVolumeRenderer::setShaderWrapperDVRCombToon2f()
01006 {
01007         glActiveTextureARB(GL_TEXTURE0_ARB);
01008         glEnable(GL_TEXTURE_3D);
01009         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01010 
01011         glActiveTextureARB(GL_TEXTURE1_ARB);
01012         glEnable(GL_TEXTURE_2D);
01013         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
01014 
01015         glActiveTextureARB(GL_TEXTURE2_ARB);
01016         glEnable(GL_TEXTURE_2D);
01017         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01018 
01019         glActiveTextureARB(GL_TEXTURE3_ARB);
01020         glEnable(GL_TEXTURE_2D);
01021         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01022 
01023         glActiveTextureARB(GL_TEXTURE4_ARB);
01024         glEnable(GL_TEXTURE_2D);
01025         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01026 
01027         glActiveTextureARB(GL_TEXTURE5_ARB);
01028         glEnable(GL_TEXTURE_2D);
01029         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01030 
01031         glActiveTextureARB(GL_TEXTURE6_ARB);
01032         glEnable(GL_TEXTURE_2D);
01033         glBindTexture(GL_TEXTURE_2D, m_ToonTex->getImageHandle());
01034 
01035         m_RayCasterCOMB_Toon2f.bind();
01036 
01037         glUniform1i(m_RayCasterCOMB_Toon2f.getUniformLocation("mVolume"),0);
01038         glUniform1i(m_RayCasterCOMB_Toon2f.getUniformLocation("mTransfer"),1);
01039         glUniform1i(m_RayCasterCOMB_Toon2f.getUniformLocation("mFrontFaces"),2);
01040         glUniform1i(m_RayCasterCOMB_Toon2f.getUniformLocation("mBackFaces"),3);
01041         glUniform1i(m_RayCasterCOMB_Toon2f.getUniformLocation("mWorldFrontFaces"),4);
01042         glUniform1i(m_RayCasterCOMB_Toon2f.getUniformLocation("mWorldBackFaces"),5);
01043         glUniform1i(m_RayCasterCOMB_Toon2f.getUniformLocation("mToonLookup"),6);
01044 
01045         glUniform3fv(m_RayCasterCOMB_Toon2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
01046 
01047         glUniform1f(m_RayCasterCOMB_Toon2f.getUniformLocation("mTresholdH"), m_thresholdH);
01048         glUniform1f(m_RayCasterCOMB_Toon2f.getUniformLocation("mTresholdL"), m_thresholdL);
01049 
01050         glUniformMatrix4fv(m_RayCasterCOMB_Toon2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01051 
01052         glUniform3fv(m_RayCasterCOMB_Toon2f.getUniformLocation("mLightDir"), 1, m_LightDir);
01053 
01054         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01055         glUniform3fv(m_RayCasterCOMB_Toon2f.getUniformLocation("mCamPos"), 1, campos);
01056 
01057         glUniform1f(m_RayCasterCOMB_Toon2f.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01058         glUniform1f(m_RayCasterCOMB_Toon2f.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01059         glUniform1f(m_RayCasterCOMB_Toon2f.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01060         glUniform1f(m_RayCasterCOMB_Toon2f.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01061         glUniform1f(m_RayCasterCOMB_Toon2f.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01062         glUniform1f(m_RayCasterCOMB_Toon2f.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01063 }
01064 void VVolumeRenderer::setShaderWrapperDVRCombToonCont2f()
01065 {
01066         glActiveTextureARB(GL_TEXTURE0_ARB);
01067         glEnable(GL_TEXTURE_3D);
01068         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01069 
01070         glActiveTextureARB(GL_TEXTURE1_ARB);
01071         glEnable(GL_TEXTURE_2D);
01072         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
01073 
01074         glActiveTextureARB(GL_TEXTURE2_ARB);
01075         glEnable(GL_TEXTURE_2D);
01076         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01077 
01078         glActiveTextureARB(GL_TEXTURE3_ARB);
01079         glEnable(GL_TEXTURE_2D);
01080         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01081 
01082         glActiveTextureARB(GL_TEXTURE4_ARB);
01083         glEnable(GL_TEXTURE_2D);
01084         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01085 
01086         glActiveTextureARB(GL_TEXTURE5_ARB);
01087         glEnable(GL_TEXTURE_2D);
01088         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01089 
01090         glActiveTextureARB(GL_TEXTURE6_ARB);
01091         glEnable(GL_TEXTURE_2D);
01092         glBindTexture(GL_TEXTURE_2D, m_ToonTex->getImageHandle());
01093 
01094         glActiveTextureARB(GL_TEXTURE7_ARB);
01095         glEnable(GL_TEXTURE_2D);
01096         glBindTexture(GL_TEXTURE_2D, m_ContourHandle);
01097 
01098         m_RayCasterCOMB_ToonCont2f.bind();
01099 
01100         glUniform1i(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mVolume"),0);
01101         glUniform1i(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mTransfer"),1);
01102         glUniform1i(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mFrontFaces"),2);
01103         glUniform1i(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mBackFaces"),3);
01104         glUniform1i(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mWorldFrontFaces"),4);
01105         glUniform1i(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mWorldBackFaces"),5);
01106         glUniform1i(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mToonLookup"),6);
01107         glUniform1i(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mContourMap"), 7);
01108 
01109         glUniform3fv(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
01110 
01111         glUniform1f(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mTresholdH"), m_thresholdH);
01112         glUniform1f(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mTresholdL"), m_thresholdL);
01113 
01114         glUniformMatrix4fv(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01115 
01116         glUniform3fv(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mLightDir"), 1, m_LightDir);
01117 
01118         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01119         glUniform3fv(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mCamPos"), 1, campos);
01120 
01121         glUniform1f(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01122         glUniform1f(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01123         glUniform1f(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01124         glUniform1f(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01125         glUniform1f(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01126         glUniform1f(m_RayCasterCOMB_ToonCont2f.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01127 }
01128 
01129 void VVolumeRenderer::setShaderWrapperDVRCombToonShadow2f()
01130 {
01131         glActiveTextureARB(GL_TEXTURE0_ARB);
01132         glEnable(GL_TEXTURE_3D);
01133         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01134 
01135         glActiveTextureARB(GL_TEXTURE1_ARB);
01136         glEnable(GL_TEXTURE_2D);
01137         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
01138 
01139         glActiveTextureARB(GL_TEXTURE2_ARB);
01140         glEnable(GL_TEXTURE_2D);
01141         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01142 
01143         glActiveTextureARB(GL_TEXTURE3_ARB);
01144         glEnable(GL_TEXTURE_2D);
01145         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01146 
01147         glActiveTextureARB(GL_TEXTURE4_ARB);
01148         glEnable(GL_TEXTURE_2D);
01149         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01150 
01151         glActiveTextureARB(GL_TEXTURE5_ARB);
01152         glEnable(GL_TEXTURE_2D);
01153         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01154 
01155         glActiveTextureARB(GL_TEXTURE6_ARB);
01156         glEnable(GL_TEXTURE_2D);
01157         glBindTexture(GL_TEXTURE_2D, m_ToonTex->getImageHandle());
01158 
01159         m_RayCasterCOMB_ToonShadow2f.bind();
01160 
01161         glUniform1i(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mVolume"),0);
01162         glUniform1i(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mTransfer"),1);
01163         glUniform1i(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mFrontFaces"),2);
01164         glUniform1i(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mBackFaces"),3);
01165         glUniform1i(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mWorldFrontFaces"),4);
01166         glUniform1i(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mWorldBackFaces"),5);
01167         glUniform1i(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mToonLookup"),6);
01168 
01169         glUniform3fv(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
01170 
01171         glUniform1f(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mTresholdH"), m_thresholdH);
01172         glUniform1f(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mTresholdL"), m_thresholdL);
01173 
01174         glUniformMatrix4fv(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01175 
01176         glUniform3fv(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mLightDir"), 1, m_LightDir);
01177 
01178         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01179         glUniform3fv(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mCamPos"), 1, campos);
01180 
01181         glUniform1f(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01182         glUniform1f(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01183         glUniform1f(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01184         glUniform1f(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01185         glUniform1f(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01186         glUniform1f(m_RayCasterCOMB_ToonShadow2f.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01187 }
01188 
01189 void VVolumeRenderer::setShaderWrapperDVRCombToonContShadow2f()
01190 {
01191         glActiveTextureARB(GL_TEXTURE0_ARB);
01192         glEnable(GL_TEXTURE_3D);
01193         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01194 
01195         glActiveTextureARB(GL_TEXTURE1_ARB);
01196         glEnable(GL_TEXTURE_2D);
01197         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
01198 
01199         glActiveTextureARB(GL_TEXTURE2_ARB);
01200         glEnable(GL_TEXTURE_2D);
01201         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01202 
01203         glActiveTextureARB(GL_TEXTURE3_ARB);
01204         glEnable(GL_TEXTURE_2D);
01205         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01206 
01207         glActiveTextureARB(GL_TEXTURE4_ARB);
01208         glEnable(GL_TEXTURE_2D);
01209         glBindTexture(GL_TEXTURE_2D, m_ContourHandle);
01210 
01211         glActiveTextureARB(GL_TEXTURE5_ARB);
01212         glEnable(GL_TEXTURE_2D);
01213         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01214 
01215 
01216         glActiveTextureARB(GL_TEXTURE6_ARB);
01217         glEnable(GL_TEXTURE_2D);
01218         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01219 
01220         glActiveTextureARB(GL_TEXTURE7_ARB);
01221         glEnable(GL_TEXTURE_2D);
01222         glBindTexture(GL_TEXTURE_2D, m_ToonTex->getImageHandle());
01223 
01224         m_RayCasterCOMB_ToonContourShadow2f.bind();
01225 
01226         glUniform1i(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mVolume"),0);
01227         glUniform1i(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mTransfer"),1);
01228         glUniform1i(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mFrontFaces"),2);
01229         glUniform1i(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mBackFaces"),3);
01230         glUniform1i(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mContourMap"),4);
01231         glUniform1i(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mWorldFrontFaces"),5);
01232         glUniform1i(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mWorldBackFaces"),6);
01233         glUniform1i(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mToonLookup"),7);
01234 
01235         glUniform3fv(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
01236 
01237         glUniform1f(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mTresholdH"), m_thresholdH);
01238         glUniform1f(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mTresholdL"), m_thresholdL);
01239 
01240         glUniformMatrix4fv(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01241 
01242         glUniform3fv(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mLightDir"), 1, m_LightDir);
01243 
01244         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01245         glUniform3fv(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mCamPos"), 1, campos);
01246 
01247         glUniform1f(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01248         glUniform1f(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01249         glUniform1f(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01250         glUniform1f(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01251         glUniform1f(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01252         glUniform1f(m_RayCasterCOMB_ToonContourShadow2f.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01253 }
01254 
01255 
01256 
01257 void VVolumeRenderer::setShaderWrapperDVRCombMetal()
01258 {
01259         glActiveTextureARB(GL_TEXTURE0_ARB);
01260         glEnable(GL_TEXTURE_3D);
01261         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01262 
01263         glActiveTextureARB(GL_TEXTURE1_ARB);
01264         glEnable(GL_TEXTURE_2D);
01265         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
01266 
01267         glActiveTextureARB(GL_TEXTURE2_ARB);
01268         glEnable(GL_TEXTURE_2D);
01269         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01270 
01271         glActiveTextureARB(GL_TEXTURE3_ARB);
01272         glEnable(GL_TEXTURE_2D);
01273         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01274 
01275         glActiveTextureARB(GL_TEXTURE4_ARB);
01276         glEnable(GL_TEXTURE_2D);
01277         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01278 
01279         glActiveTextureARB(GL_TEXTURE5_ARB);
01280         glEnable(GL_TEXTURE_2D);
01281         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01282 
01283         glActiveTextureARB(GL_TEXTURE6_ARB);
01284         glEnable(GL_TEXTURE_2D);
01285         glBindTexture(GL_TEXTURE_2D, m_MetalTex->getImageHandle());
01286 
01287         m_RayCasterCOMB_Metal.bind();
01288 
01289         glUniform1i(m_RayCasterCOMB_Metal.getUniformLocation("mVolume"),0);
01290         glUniform1i(m_RayCasterCOMB_Metal.getUniformLocation("mTransfer"),1);
01291         glUniform1i(m_RayCasterCOMB_Metal.getUniformLocation("mFrontFaces"),2);
01292         glUniform1i(m_RayCasterCOMB_Metal.getUniformLocation("mBackFaces"),3);
01293         glUniform1i(m_RayCasterCOMB_Metal.getUniformLocation("mWorldFrontFaces"),4);
01294         glUniform1i(m_RayCasterCOMB_Metal.getUniformLocation("mWorldBackFaces"),5);
01295         glUniform1i(m_RayCasterCOMB_Metal.getUniformLocation("mToonLookup"),6);
01296 
01297         glUniform3fv(m_RayCasterCOMB_Metal.getUniformLocation("mClearColor"), 1, m_ClearColor);
01298 
01299         glUniform1f(m_RayCasterCOMB_Metal.getUniformLocation("mTresholdH"), m_thresholdH);
01300         glUniform1f(m_RayCasterCOMB_Metal.getUniformLocation("mTresholdL"), m_thresholdL);
01301 
01302         glUniformMatrix4fv(m_RayCasterCOMB_Metal.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01303 
01304         glUniform3fv(m_RayCasterCOMB_Metal.getUniformLocation("mLightDir"), 1, m_LightDir);
01305 
01306         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01307         glUniform3fv(m_RayCasterCOMB_Metal.getUniformLocation("mCamPos"), 1, campos);
01308 
01309         glUniform1f(m_RayCasterCOMB_Metal.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01310         glUniform1f(m_RayCasterCOMB_Metal.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01311         glUniform1f(m_RayCasterCOMB_Metal.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01312         glUniform1f(m_RayCasterCOMB_Metal.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01313         glUniform1f(m_RayCasterCOMB_Metal.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01314         glUniform1f(m_RayCasterCOMB_Metal.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01315 }
01316 
01317 void VVolumeRenderer::setShaderWrapperDVRCombMetalCont()
01318 {
01319         glActiveTextureARB(GL_TEXTURE0_ARB);
01320         glEnable(GL_TEXTURE_3D);
01321         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01322 
01323         glActiveTextureARB(GL_TEXTURE1_ARB);
01324         glEnable(GL_TEXTURE_2D);
01325         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
01326 
01327         glActiveTextureARB(GL_TEXTURE2_ARB);
01328         glEnable(GL_TEXTURE_2D);
01329         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01330 
01331         glActiveTextureARB(GL_TEXTURE3_ARB);
01332         glEnable(GL_TEXTURE_2D);
01333         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01334 
01335         glActiveTextureARB(GL_TEXTURE4_ARB);
01336         glEnable(GL_TEXTURE_2D);
01337         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01338 
01339         glActiveTextureARB(GL_TEXTURE5_ARB);
01340         glEnable(GL_TEXTURE_2D);
01341         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01342 
01343         glActiveTextureARB(GL_TEXTURE6_ARB);
01344         glEnable(GL_TEXTURE_2D);
01345         glBindTexture(GL_TEXTURE_2D, m_MetalTex->getImageHandle());
01346 
01347         m_RayCasterCOMB_MetalCont.bind();
01348 
01349         glUniform1i(m_RayCasterCOMB_MetalCont.getUniformLocation("mVolume"),0);
01350         glUniform1i(m_RayCasterCOMB_MetalCont.getUniformLocation("mTransfer"),1);
01351         glUniform1i(m_RayCasterCOMB_MetalCont.getUniformLocation("mFrontFaces"),2);
01352         glUniform1i(m_RayCasterCOMB_MetalCont.getUniformLocation("mBackFaces"),3);
01353         glUniform1i(m_RayCasterCOMB_MetalCont.getUniformLocation("mWorldFrontFaces"),4);
01354         glUniform1i(m_RayCasterCOMB_MetalCont.getUniformLocation("mWorldBackFaces"),5);
01355         glUniform1i(m_RayCasterCOMB_MetalCont.getUniformLocation("mToonLookup"),6);
01356 
01357         glUniform3fv(m_RayCasterCOMB_MetalCont.getUniformLocation("mClearColor"), 1, m_ClearColor);
01358 
01359         glUniform1f(m_RayCasterCOMB_MetalCont.getUniformLocation("mTresholdH"), m_thresholdH);
01360         glUniform1f(m_RayCasterCOMB_MetalCont.getUniformLocation("mTresholdL"), m_thresholdL);
01361 
01362         glUniformMatrix4fv(m_RayCasterCOMB_MetalCont.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01363 
01364         glUniform3fv(m_RayCasterCOMB_MetalCont.getUniformLocation("mLightDir"), 1, m_LightDir);
01365 
01366         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01367         glUniform3fv(m_RayCasterCOMB_MetalCont.getUniformLocation("mCamPos"), 1, campos);
01368 
01369         glUniform1f(m_RayCasterCOMB_MetalCont.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01370         glUniform1f(m_RayCasterCOMB_MetalCont.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01371         glUniform1f(m_RayCasterCOMB_MetalCont.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01372         glUniform1f(m_RayCasterCOMB_MetalCont.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01373         glUniform1f(m_RayCasterCOMB_MetalCont.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01374         glUniform1f(m_RayCasterCOMB_MetalCont.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01375 }
01376 
01377 void VVolumeRenderer::setShaderWrapperDVRCombMetalShadow()
01378 {
01379         glActiveTextureARB(GL_TEXTURE0_ARB);
01380         glEnable(GL_TEXTURE_3D);
01381         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01382 
01383         glActiveTextureARB(GL_TEXTURE1_ARB);
01384         glEnable(GL_TEXTURE_2D);
01385         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
01386 
01387         glActiveTextureARB(GL_TEXTURE2_ARB);
01388         glEnable(GL_TEXTURE_2D);
01389         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01390 
01391         glActiveTextureARB(GL_TEXTURE3_ARB);
01392         glEnable(GL_TEXTURE_2D);
01393         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01394 
01395         glActiveTextureARB(GL_TEXTURE4_ARB);
01396         glEnable(GL_TEXTURE_2D);
01397         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01398 
01399         glActiveTextureARB(GL_TEXTURE5_ARB);
01400         glEnable(GL_TEXTURE_2D);
01401         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01402 
01403         glActiveTextureARB(GL_TEXTURE6_ARB);
01404         glEnable(GL_TEXTURE_2D);
01405         glBindTexture(GL_TEXTURE_2D, m_MetalTex->getImageHandle());
01406 
01407         m_RayCasterCOMB_MetalShadow.bind();
01408 
01409         glUniform1i(m_RayCasterCOMB_MetalShadow.getUniformLocation("mVolume"),0);
01410         glUniform1i(m_RayCasterCOMB_MetalShadow.getUniformLocation("mTransfer"),1);
01411         glUniform1i(m_RayCasterCOMB_MetalShadow.getUniformLocation("mFrontFaces"),2);
01412         glUniform1i(m_RayCasterCOMB_MetalShadow.getUniformLocation("mBackFaces"),3);
01413         glUniform1i(m_RayCasterCOMB_MetalShadow.getUniformLocation("mWorldFrontFaces"),4);
01414         glUniform1i(m_RayCasterCOMB_MetalShadow.getUniformLocation("mWorldBackFaces"),5);
01415         glUniform1i(m_RayCasterCOMB_MetalShadow.getUniformLocation("mToonLookup"),6);
01416 
01417         glUniform3fv(m_RayCasterCOMB_MetalShadow.getUniformLocation("mClearColor"), 1, m_ClearColor);
01418 
01419         glUniform1f(m_RayCasterCOMB_MetalShadow.getUniformLocation("mTresholdH"), m_thresholdH);
01420         glUniform1f(m_RayCasterCOMB_MetalShadow.getUniformLocation("mTresholdL"), m_thresholdL);
01421 
01422         glUniformMatrix4fv(m_RayCasterCOMB_MetalShadow.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01423 
01424         glUniform3fv(m_RayCasterCOMB_MetalShadow.getUniformLocation("mLightDir"), 1, m_LightDir);
01425 
01426         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01427         glUniform3fv(m_RayCasterCOMB_MetalShadow.getUniformLocation("mCamPos"), 1, campos);
01428 
01429         glUniform1f(m_RayCasterCOMB_MetalShadow.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01430         glUniform1f(m_RayCasterCOMB_MetalShadow.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01431         glUniform1f(m_RayCasterCOMB_MetalShadow.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01432         glUniform1f(m_RayCasterCOMB_MetalShadow.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01433         glUniform1f(m_RayCasterCOMB_MetalShadow.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01434         glUniform1f(m_RayCasterCOMB_MetalShadow.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01435 }
01436 
01437 void VVolumeRenderer::setShaderWrapperDVRCombMetalContShadow()
01438 {
01439         glActiveTextureARB(GL_TEXTURE0_ARB);
01440         glEnable(GL_TEXTURE_3D);
01441         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01442 
01443         glActiveTextureARB(GL_TEXTURE1_ARB);
01444         glEnable(GL_TEXTURE_2D);
01445         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
01446 
01447         glActiveTextureARB(GL_TEXTURE2_ARB);
01448         glEnable(GL_TEXTURE_2D);
01449         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01450 
01451         glActiveTextureARB(GL_TEXTURE3_ARB);
01452         glEnable(GL_TEXTURE_2D);
01453         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01454 
01455         glActiveTextureARB(GL_TEXTURE4_ARB);
01456         glEnable(GL_TEXTURE_2D);
01457         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01458 
01459         glActiveTextureARB(GL_TEXTURE5_ARB);
01460         glEnable(GL_TEXTURE_2D);
01461         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01462 
01463         glActiveTextureARB(GL_TEXTURE6_ARB);
01464         glEnable(GL_TEXTURE_2D);
01465         glBindTexture(GL_TEXTURE_2D, m_MetalTex->getImageHandle());
01466 
01467         m_RayCasterCOMB_MetalContourShadow.bind();
01468 
01469         glUniform1i(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mVolume"),0);
01470         glUniform1i(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mTransfer"),1);
01471         glUniform1i(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mFrontFaces"),2);
01472         glUniform1i(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mBackFaces"),3);
01473         glUniform1i(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mWorldFrontFaces"),4);
01474         glUniform1i(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mWorldBackFaces"),5);
01475         glUniform1i(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mToonLookup"),6);
01476 
01477         glUniform3fv(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mClearColor"), 1, m_ClearColor);
01478 
01479         glUniform1f(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mTresholdH"), m_thresholdH);
01480         glUniform1f(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mTresholdL"), m_thresholdL);
01481 
01482         glUniformMatrix4fv(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01483 
01484         glUniform3fv(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mLightDir"), 1, m_LightDir);
01485 
01486         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01487         glUniform3fv(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mCamPos"), 1, campos);
01488 
01489         glUniform1f(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01490         glUniform1f(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01491         glUniform1f(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01492         glUniform1f(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01493         glUniform1f(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01494         glUniform1f(m_RayCasterCOMB_MetalContourShadow.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01495 }
01496 
01497 void VVolumeRenderer::setShaderWrapperDVRCombMetal2f()
01498 {
01499         glActiveTextureARB(GL_TEXTURE0_ARB);
01500         glEnable(GL_TEXTURE_3D);
01501         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01502 
01503         glActiveTextureARB(GL_TEXTURE1_ARB);
01504         glEnable(GL_TEXTURE_2D);
01505         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
01506 
01507         glActiveTextureARB(GL_TEXTURE2_ARB);
01508         glEnable(GL_TEXTURE_2D);
01509         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01510 
01511         glActiveTextureARB(GL_TEXTURE3_ARB);
01512         glEnable(GL_TEXTURE_2D);
01513         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01514 
01515         glActiveTextureARB(GL_TEXTURE4_ARB);
01516         glEnable(GL_TEXTURE_2D);
01517         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01518 
01519         glActiveTextureARB(GL_TEXTURE5_ARB);
01520         glEnable(GL_TEXTURE_2D);
01521         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01522 
01523         glActiveTextureARB(GL_TEXTURE6_ARB);
01524         glEnable(GL_TEXTURE_2D);
01525         glBindTexture(GL_TEXTURE_2D, m_MetalTex->getImageHandle());
01526 
01527         m_RayCasterCOMB_Metal2f.bind();
01528 
01529         glUniform1i(m_RayCasterCOMB_Metal2f.getUniformLocation("mVolume"),0);
01530         glUniform1i(m_RayCasterCOMB_Metal2f.getUniformLocation("mTransfer"),1);
01531         glUniform1i(m_RayCasterCOMB_Metal2f.getUniformLocation("mFrontFaces"),2);
01532         glUniform1i(m_RayCasterCOMB_Metal2f.getUniformLocation("mBackFaces"),3);
01533         glUniform1i(m_RayCasterCOMB_Metal2f.getUniformLocation("mWorldFrontFaces"),4);
01534         glUniform1i(m_RayCasterCOMB_Metal2f.getUniformLocation("mWorldBackFaces"),5);
01535         glUniform1i(m_RayCasterCOMB_Metal2f.getUniformLocation("mToonLookup"),6);
01536 
01537         glUniform3fv(m_RayCasterCOMB_Metal2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
01538 
01539         glUniform1f(m_RayCasterCOMB_Metal2f.getUniformLocation("mTresholdH"), m_thresholdH);
01540         glUniform1f(m_RayCasterCOMB_Metal2f.getUniformLocation("mTresholdL"), m_thresholdL);
01541 
01542         glUniformMatrix4fv(m_RayCasterCOMB_Metal2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01543 
01544         glUniform3fv(m_RayCasterCOMB_Metal2f.getUniformLocation("mLightDir"), 1, m_LightDir);
01545 
01546         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01547         glUniform3fv(m_RayCasterCOMB_Metal2f.getUniformLocation("mCamPos"), 1, campos);
01548 
01549         glUniform1f(m_RayCasterCOMB_Metal2f.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01550         glUniform1f(m_RayCasterCOMB_Metal2f.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01551         glUniform1f(m_RayCasterCOMB_Metal2f.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01552         glUniform1f(m_RayCasterCOMB_Metal2f.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01553         glUniform1f(m_RayCasterCOMB_Metal2f.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01554         glUniform1f(m_RayCasterCOMB_Metal2f.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01555 }
01556 
01557 void VVolumeRenderer::setShaderWrapperDVRCombMetalCont2f()
01558 {
01559         glActiveTextureARB(GL_TEXTURE0_ARB);
01560         glEnable(GL_TEXTURE_3D);
01561         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01562 
01563         glActiveTextureARB(GL_TEXTURE1_ARB);
01564         glEnable(GL_TEXTURE_2D);
01565         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
01566 
01567         glActiveTextureARB(GL_TEXTURE2_ARB);
01568         glEnable(GL_TEXTURE_2D);
01569         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01570 
01571         glActiveTextureARB(GL_TEXTURE3_ARB);
01572         glEnable(GL_TEXTURE_2D);
01573         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01574 
01575         glActiveTextureARB(GL_TEXTURE4_ARB);
01576         glEnable(GL_TEXTURE_2D);
01577         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01578 
01579         glActiveTextureARB(GL_TEXTURE5_ARB);
01580         glEnable(GL_TEXTURE_2D);
01581         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01582 
01583         glActiveTextureARB(GL_TEXTURE6_ARB);
01584         glEnable(GL_TEXTURE_2D);
01585         glBindTexture(GL_TEXTURE_2D, m_MetalTex->getImageHandle());
01586 
01587         glActiveTextureARB(GL_TEXTURE7_ARB);
01588         glEnable(GL_TEXTURE_2D);
01589         glBindTexture(GL_TEXTURE_2D, m_ContourHandle);
01590 
01591         m_RayCasterCOMB_MetalCont2f.bind();
01592 
01593         glUniform1i(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mVolume"),0);
01594         glUniform1i(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mTransfer"),1);
01595         glUniform1i(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mFrontFaces"),2);
01596         glUniform1i(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mBackFaces"),3);
01597         glUniform1i(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mWorldFrontFaces"),4);
01598         glUniform1i(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mWorldBackFaces"),5);
01599         glUniform1i(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mToonLookup"),6);
01600         glUniform1i(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mContourMap"), 7);
01601 
01602         glUniform3fv(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
01603 
01604         glUniform1f(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mTresholdH"), m_thresholdH);
01605         glUniform1f(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mTresholdL"), m_thresholdL);
01606 
01607         glUniformMatrix4fv(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01608 
01609         glUniform3fv(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mLightDir"), 1, m_LightDir);
01610 
01611         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01612         glUniform3fv(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mCamPos"), 1, campos);
01613 
01614         glUniform1f(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01615         glUniform1f(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01616         glUniform1f(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01617         glUniform1f(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01618         glUniform1f(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01619         glUniform1f(m_RayCasterCOMB_MetalCont2f.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01620 }
01621 
01622 void VVolumeRenderer::setShaderWrapperDVRCombMetalShadow2f()
01623 {
01624         glActiveTextureARB(GL_TEXTURE0_ARB);
01625         glEnable(GL_TEXTURE_3D);
01626         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01627 
01628         glActiveTextureARB(GL_TEXTURE1_ARB);
01629         glEnable(GL_TEXTURE_2D);
01630         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
01631 
01632         glActiveTextureARB(GL_TEXTURE2_ARB);
01633         glEnable(GL_TEXTURE_2D);
01634         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01635 
01636         glActiveTextureARB(GL_TEXTURE3_ARB);
01637         glEnable(GL_TEXTURE_2D);
01638         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01639 
01640         glActiveTextureARB(GL_TEXTURE4_ARB);
01641         glEnable(GL_TEXTURE_2D);
01642         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01643 
01644         glActiveTextureARB(GL_TEXTURE5_ARB);
01645         glEnable(GL_TEXTURE_2D);
01646         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01647 
01648         glActiveTextureARB(GL_TEXTURE6_ARB);
01649         glEnable(GL_TEXTURE_2D);
01650         glBindTexture(GL_TEXTURE_2D, m_MetalTex->getImageHandle());
01651 
01652         m_RayCasterCOMB_MetalShadow2f.bind();
01653 
01654         glUniform1i(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mVolume"),0);
01655         glUniform1i(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mTransfer"),1);
01656         glUniform1i(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mFrontFaces"),2);
01657         glUniform1i(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mBackFaces"),3);
01658         glUniform1i(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mWorldFrontFaces"),4);
01659         glUniform1i(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mWorldBackFaces"),5);
01660         glUniform1i(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mToonLookup"),6);
01661 
01662         glUniform3fv(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
01663 
01664         glUniform1f(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mTresholdH"), m_thresholdH);
01665         glUniform1f(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mTresholdL"), m_thresholdL);
01666 
01667         glUniformMatrix4fv(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01668 
01669         glUniform3fv(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mLightDir"), 1, m_LightDir);
01670 
01671         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01672         glUniform3fv(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mCamPos"), 1, campos);
01673 
01674         glUniform1f(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01675         glUniform1f(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01676         glUniform1f(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01677         glUniform1f(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01678         glUniform1f(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01679         glUniform1f(m_RayCasterCOMB_MetalShadow2f.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01680 }
01681 
01682 void VVolumeRenderer::setShaderWrapperDVRCombMetalContShadow2f()
01683 {
01684         glActiveTextureARB(GL_TEXTURE0_ARB);
01685         glEnable(GL_TEXTURE_3D);
01686         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01687 
01688         glActiveTextureARB(GL_TEXTURE1_ARB);
01689         glEnable(GL_TEXTURE_2D);
01690         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
01691 
01692         glActiveTextureARB(GL_TEXTURE2_ARB);
01693         glEnable(GL_TEXTURE_2D);
01694         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01695 
01696         glActiveTextureARB(GL_TEXTURE3_ARB);
01697         glEnable(GL_TEXTURE_2D);
01698         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01699 
01700         glActiveTextureARB(GL_TEXTURE4_ARB);
01701         glEnable(GL_TEXTURE_2D);
01702         glBindTexture(GL_TEXTURE_2D, m_ContourHandle);
01703 
01704         glActiveTextureARB(GL_TEXTURE5_ARB);
01705         glEnable(GL_TEXTURE_2D);
01706         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01707 
01708 
01709         glActiveTextureARB(GL_TEXTURE6_ARB);
01710         glEnable(GL_TEXTURE_2D);
01711         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01712 
01713         glActiveTextureARB(GL_TEXTURE7_ARB);
01714         glEnable(GL_TEXTURE_2D);
01715         glBindTexture(GL_TEXTURE_2D, m_MetalTex->getImageHandle());
01716 
01717         m_RayCasterCOMB_MetalContourShadow2f.bind();
01718 
01719         glUniform1i(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mVolume"),0);
01720         glUniform1i(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mTransfer"),1);
01721         glUniform1i(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mFrontFaces"),2);
01722         glUniform1i(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mBackFaces"),3);
01723         glUniform1i(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mContourMap"),4);
01724         glUniform1i(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mWorldFrontFaces"),5);
01725         glUniform1i(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mWorldBackFaces"),6);
01726         glUniform1i(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mToonLookup"),7);
01727 
01728         glUniform3fv(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mClearColor"), 1, m_ClearColor);
01729 
01730         glUniform1f(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mTresholdH"), m_thresholdH);
01731         glUniform1f(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mTresholdL"), m_thresholdL);
01732 
01733         glUniformMatrix4fv(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01734 
01735         glUniform3fv(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mLightDir"), 1, m_LightDir);
01736 
01737         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01738         glUniform3fv(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mCamPos"), 1, campos);
01739 
01740         glUniform1f(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01741         glUniform1f(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01742         glUniform1f(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01743         glUniform1f(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01744         glUniform1f(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01745         glUniform1f(m_RayCasterCOMB_MetalContourShadow2f.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01746 }
01747 
01748 void VVolumeRenderer::setShaderWrapperCurvature()
01749 {
01750         glActiveTextureARB(GL_TEXTURE0_ARB);
01751         glEnable(GL_TEXTURE_3D);
01752         glBindTexture(GL_TEXTURE_3D, m_Volume->getGLVolumeHandle());
01753 
01754         glActiveTextureARB(GL_TEXTURE1_ARB);
01755         glEnable(GL_TEXTURE_2D);
01756         glBindTexture(GL_TEXTURE_2D, m_TransferFunction2DHandle);
01757 
01758         glActiveTextureARB(GL_TEXTURE2_ARB);
01759         glEnable(GL_TEXTURE_2D);
01760         glBindTexture(GL_TEXTURE_2D, m_FrontFaceTexture->getTextureHandle());
01761 
01762         glActiveTextureARB(GL_TEXTURE3_ARB);
01763         glEnable(GL_TEXTURE_2D);
01764         glBindTexture(GL_TEXTURE_2D, m_BackFaceTexture->getTextureHandle());
01765 
01766         glActiveTextureARB(GL_TEXTURE4_ARB);
01767         glEnable(GL_TEXTURE_2D);
01768         glBindTexture(GL_TEXTURE_2D, m_ContourHandle);
01769 
01770         glActiveTextureARB(GL_TEXTURE5_ARB);
01771         glEnable(GL_TEXTURE_2D);
01772         glBindTexture(GL_TEXTURE_2D, m_WorldFrontFaceTexture->getTextureHandle());
01773 
01774 
01775         glActiveTextureARB(GL_TEXTURE6_ARB);
01776         glEnable(GL_TEXTURE_2D);
01777         glBindTexture(GL_TEXTURE_2D, m_WorldBackFaceTexture->getTextureHandle());
01778 
01779         glActiveTextureARB(GL_TEXTURE7_ARB);
01780         glEnable(GL_TEXTURE_2D);
01781         glBindTexture(GL_TEXTURE_2D, m_TransferFunctionHandle);
01782 
01783         m_RayCasterCOMB_Curvature.bind();
01784 
01785         glUniform1i(m_RayCasterCOMB_Curvature.getUniformLocation("mVolume"),0);
01786         glUniform1i(m_RayCasterCOMB_Curvature.getUniformLocation("mTransfer"),1);
01787         glUniform1i(m_RayCasterCOMB_Curvature.getUniformLocation("mFrontFaces"),2);
01788         glUniform1i(m_RayCasterCOMB_Curvature.getUniformLocation("mBackFaces"),3);
01789         glUniform1i(m_RayCasterCOMB_Curvature.getUniformLocation("mContourMap"),4);
01790         glUniform1i(m_RayCasterCOMB_Curvature.getUniformLocation("mWorldFrontFaces"),5);
01791         glUniform1i(m_RayCasterCOMB_Curvature.getUniformLocation("mWorldBackFaces"),6);
01792         glUniform1i(m_RayCasterCOMB_Curvature.getUniformLocation("mTransfer1D"),7);
01793 
01794         glUniform3fv(m_RayCasterCOMB_Curvature.getUniformLocation("mClearColor"), 1, m_ClearColor);
01795 
01796         glUniform1f(m_RayCasterCOMB_Curvature.getUniformLocation("mTresholdH"), m_thresholdH);
01797         glUniform1f(m_RayCasterCOMB_Curvature.getUniformLocation("mTresholdL"), m_thresholdL);
01798 
01799         glUniformMatrix4fv(m_RayCasterCOMB_Curvature.getUniformLocation("mTex2World"),1,false,&m_Tex2WorldSpace[0]);
01800 
01801         glUniform3fv(m_RayCasterCOMB_Curvature.getUniformLocation("mLightDir"), 1, m_LightDir);
01802 
01803         float campos[3] = {m_Camera.getPosition().getX(), m_Camera.getPosition().getY(), m_Camera.getPosition().getZ()};
01804         glUniform3fv(m_RayCasterCOMB_Curvature.getUniformLocation("mCamPos"), 1, campos);
01805 
01806         glUniform1f(m_RayCasterCOMB_Curvature.getUniformLocation("mClipNX"), m_ClipPlanes[LEFT_RIGHT]);
01807         glUniform1f(m_RayCasterCOMB_Curvature.getUniformLocation("mClipPX"), m_ClipPlanes[RIGHT_LEFT]);
01808         glUniform1f(m_RayCasterCOMB_Curvature.getUniformLocation("mClipNY"), m_ClipPlanes[BOTTOM_TOP]);
01809         glUniform1f(m_RayCasterCOMB_Curvature.getUniformLocation("mClipPY"), m_ClipPlanes[TOP_BOTTOM]);
01810         glUniform1f(m_RayCasterCOMB_Curvature.getUniformLocation("mClipNZ"), m_ClipPlanes[FRONT_BACK]);
01811         glUniform1f(m_RayCasterCOMB_Curvature.getUniformLocation("mClipPZ"), m_ClipPlanes[BACK_FRONT]);
01812 }
01813 
01814 void VVolumeRenderer::clearShaderWrapperMIP()
01815 {
01816         m_RayCasterMIP.release();
01817 
01818         glActiveTextureARB(GL_TEXTURE0_ARB);
01819         glBindTexture(GL_TEXTURE_3D, 0);
01820         glDisable(GL_TEXTURE_3D);
01821 
01822         //this was transfer function
01823         /*glActiveTextureARB(GL_TEXTURE1_ARB);
01824         glBindTexture(GL_TEXTURE_1D, 0);
01825         glDisable(GL_TEXTURE_1D);*/
01826 
01827         glActiveTextureARB(GL_TEXTURE2_ARB);
01828         glBindTexture(GL_TEXTURE_2D, 0);
01829         glDisable(GL_TEXTURE_2D);
01830 
01831 
01832         glActiveTextureARB(GL_TEXTURE3_ARB);
01833         glBindTexture(GL_TEXTURE_2D, 0);
01834         glDisable(GL_TEXTURE_2D);
01835 }
01836 
01837 void VVolumeRenderer::clearShaderWrapperMIPtf()
01838 {
01839         m_RayCasterMIPtf.release();     
01840 
01841         glActiveTextureARB(GL_TEXTURE0_ARB);
01842         glBindTexture(GL_TEXTURE_3D, 0);
01843         glDisable(GL_TEXTURE_3D);
01844 
01845         glActiveTextureARB(GL_TEXTURE1_ARB);
01846         glBindTexture(GL_TEXTURE_2D, 0);
01847         glDisable(GL_TEXTURE_2D);
01848 
01849         glActiveTextureARB(GL_TEXTURE2_ARB);
01850         glBindTexture(GL_TEXTURE_2D, 0);
01851         glDisable(GL_TEXTURE_2D);
01852 
01853 
01854         glActiveTextureARB(GL_TEXTURE3_ARB);
01855         glBindTexture(GL_TEXTURE_2D, 0);
01856         glDisable(GL_TEXTURE_2D);
01857 }
01858 
01859 void VVolumeRenderer::clearShaderWrapperMIPtf2d()
01860 {
01861         m_RayCasterMIPtf.release();     
01862 
01863         glActiveTextureARB(GL_TEXTURE0_ARB);
01864         glBindTexture(GL_TEXTURE_3D, 0);
01865         glDisable(GL_TEXTURE_3D);
01866 
01867         glActiveTextureARB(GL_TEXTURE1_ARB);
01868         glBindTexture(GL_TEXTURE_2D, 0);
01869         glDisable(GL_TEXTURE_2D);
01870 
01871         glActiveTextureARB(GL_TEXTURE2_ARB);
01872         glBindTexture(GL_TEXTURE_2D, 0);
01873         glDisable(GL_TEXTURE_2D);
01874 
01875 
01876         glActiveTextureARB(GL_TEXTURE3_ARB);
01877         glBindTexture(GL_TEXTURE_2D, 0);
01878         glDisable(GL_TEXTURE_2D);
01879 }
01880 
01881 void VVolumeRenderer::clearShaderWrapperDVR()
01882 {
01883         m_RayCasterDVR.release();
01884 
01885         glActiveTextureARB(GL_TEXTURE0_ARB);
01886         glBindTexture(GL_TEXTURE_3D, 0);
01887         glDisable(GL_TEXTURE_3D);
01888 
01889         //this was transfer function
01890         /*glActiveTextureARB(GL_TEXTURE1_ARB);
01891         glBindTexture(GL_TEXTURE_1D, 0);
01892         glDisable(GL_TEXTURE_1D);*/
01893 
01894         glActiveTextureARB(GL_TEXTURE2_ARB);
01895         glBindTexture(GL_TEXTURE_2D, 0);
01896         glDisable(GL_TEXTURE_2D);
01897 
01898 
01899         glActiveTextureARB(GL_TEXTURE3_ARB);
01900         glBindTexture(GL_TEXTURE_2D, 0);
01901         glDisable(GL_TEXTURE_2D);
01902 }
01903 
01904 void VVolumeRenderer::clearShaderWrapperDVRtf()
01905 {
01906         m_RayCasterDVRtf.release();     
01907 
01908         glActiveTextureARB(GL_TEXTURE0_ARB);
01909         glBindTexture(GL_TEXTURE_3D, 0);
01910         glDisable(GL_TEXTURE_3D);
01911 
01912         glActiveTextureARB(GL_TEXTURE1_ARB);
01913         glBindTexture(GL_TEXTURE_2D, 0);
01914         glDisable(GL_TEXTURE_2D);
01915 
01916         glActiveTextureARB(GL_TEXTURE2_ARB);
01917         glBindTexture(GL_TEXTURE_2D, 0);
01918         glDisable(GL_TEXTURE_2D);
01919 
01920 
01921         glActiveTextureARB(GL_TEXTURE3_ARB);
01922         glBindTexture(GL_TEXTURE_2D, 0);
01923         glDisable(GL_TEXTURE_2D);
01924 }
01925 
01926 void VVolumeRenderer::clearShaderWrapperDVRtf2d()
01927 {
01928         m_RayCasterDVRtf.release();     
01929 
01930         glActiveTextureARB(GL_TEXTURE0_ARB);
01931         glBindTexture(GL_TEXTURE_3D, 0);
01932         glDisable(GL_TEXTURE_3D);
01933 
01934         glActiveTextureARB(GL_TEXTURE1_ARB);
01935         glBindTexture(GL_TEXTURE_2D, 0);
01936         glDisable(GL_TEXTURE_2D);
01937 
01938         glActiveTextureARB(GL_TEXTURE2_ARB);
01939         glBindTexture(GL_TEXTURE_2D, 0);
01940         glDisable(GL_TEXTURE_2D);
01941 
01942         glActiveTextureARB(GL_TEXTURE3_ARB);
01943         glBindTexture(GL_TEXTURE_2D, 0);
01944         glDisable(GL_TEXTURE_2D);
01945 
01946         glActiveTextureARB(GL_TEXTURE4_ARB);
01947         glBindTexture(GL_TEXTURE_2D, 0);
01948         glDisable(GL_TEXTURE_2D);
01949 }
01950 
01951 void VVolumeRenderer::clearShaderWrapperDVRbtf()
01952 {
01953         m_RayCasterDVR.release();
01954 
01955         glActiveTextureARB(GL_TEXTURE0_ARB);
01956         glBindTexture(GL_TEXTURE_3D, 0);
01957         glDisable(GL_TEXTURE_3D);
01958 
01959         //this was transfer function
01960         /*glActiveTextureARB(GL_TEXTURE1_ARB);
01961         glBindTexture(GL_TEXTURE_1D, 0);
01962         glDisable(GL_TEXTURE_1D);*/
01963 
01964         glActiveTextureARB(GL_TEXTURE2_ARB);
01965         glBindTexture(GL_TEXTURE_2D, 0);
01966         glDisable(GL_TEXTURE_2D);
01967 
01968 
01969         glActiveTextureARB(GL_TEXTURE3_ARB);
01970         glBindTexture(GL_TEXTURE_2D, 0);
01971         glDisable(GL_TEXTURE_2D);
01972 }
01973 
01974 void VVolumeRenderer::clearShaderWrapperDVRbtftf()
01975 {
01976         m_RayCasterDVRtf.release();     
01977 
01978         glActiveTextureARB(GL_TEXTURE0_ARB);
01979         glBindTexture(GL_TEXTURE_3D, 0);
01980         glDisable(GL_TEXTURE_3D);
01981 
01982         glActiveTextureARB(GL_TEXTURE1_ARB);
01983         glBindTexture(GL_TEXTURE_2D, 0);
01984         glDisable(GL_TEXTURE_2D);
01985 
01986         glActiveTextureARB(GL_TEXTURE2_ARB);
01987         glBindTexture(GL_TEXTURE_2D, 0);
01988         glDisable(GL_TEXTURE_2D);
01989 
01990 
01991         glActiveTextureARB(GL_TEXTURE3_ARB);
01992         glBindTexture(GL_TEXTURE_2D, 0);
01993         glDisable(GL_TEXTURE_2D);
01994 }
01995 
01996 void VVolumeRenderer::clearShaderWrapperDVRbtftf2d()
01997 {
01998         m_RayCasterDVRtf.release();     
01999 
02000         glActiveTextureARB(GL_TEXTURE0_ARB);
02001         glBindTexture(GL_TEXTURE_3D, 0);
02002         glDisable(GL_TEXTURE_3D);
02003 
02004         glActiveTextureARB(GL_TEXTURE1_ARB);
02005         glBindTexture(GL_TEXTURE_2D, 0);
02006         glDisable(GL_TEXTURE_2D);
02007 
02008         glActiveTextureARB(GL_TEXTURE2_ARB);
02009         glBindTexture(GL_TEXTURE_2D, 0);
02010         glDisable(GL_TEXTURE_2D);
02011 
02012 
02013         glActiveTextureARB(GL_TEXTURE3_ARB);
02014         glBindTexture(GL_TEXTURE_2D, 0);
02015         glDisable(GL_TEXTURE_2D);
02016 }
02017 
02018 void VVolumeRenderer::clearShaderWrapperDVRCombPhong()
02019 {
02020         m_RayCasterCOMB_Phong.release();        
02021 
02022         glActiveTextureARB(GL_TEXTURE0_ARB);
02023         glBindTexture(GL_TEXTURE_3D, 0);
02024         glDisable(GL_TEXTURE_3D);
02025 
02026         glActiveTextureARB(GL_TEXTURE1_ARB);
02027         glBindTexture(GL_TEXTURE_2D, 0);
02028         glDisable(GL_TEXTURE_2D);
02029 
02030         glActiveTextureARB(GL_TEXTURE2_ARB);
02031         glBindTexture(GL_TEXTURE_2D, 0);
02032         glDisable(GL_TEXTURE_2D);
02033 
02034 
02035         glActiveTextureARB(GL_TEXTURE3_ARB);
02036         glBindTexture(GL_TEXTURE_2D, 0);
02037         glDisable(GL_TEXTURE_2D);
02038 
02039         glActiveTextureARB(GL_TEXTURE4_ARB);
02040         glBindTexture(GL_TEXTURE_2D, 0);
02041         glDisable(GL_TEXTURE_2D);
02042 
02043         glActiveTextureARB(GL_TEXTURE5_ARB);
02044         glBindTexture(GL_TEXTURE_2D, 0);
02045         glDisable(GL_TEXTURE_2D);
02046 }
02047 
02048 void VVolumeRenderer::clearShaderWrapperDVRCombPhongCont()
02049 {
02050         m_RayCasterCOMB_PhongCont.release();    
02051 
02052         glActiveTextureARB(GL_TEXTURE0_ARB);
02053         glBindTexture(GL_TEXTURE_3D, 0);
02054         glDisable(GL_TEXTURE_3D);
02055 
02056         glActiveTextureARB(GL_TEXTURE1_ARB);
02057         glBindTexture(GL_TEXTURE_2D, 0);
02058         glDisable(GL_TEXTURE_2D);
02059 
02060         glActiveTextureARB(GL_TEXTURE2_ARB);
02061         glBindTexture(GL_TEXTURE_2D, 0);
02062         glDisable(GL_TEXTURE_2D);
02063 
02064 
02065         glActiveTextureARB(GL_TEXTURE3_ARB);
02066         glBindTexture(GL_TEXTURE_2D, 0);
02067         glDisable(GL_TEXTURE_2D);
02068 
02069         glActiveTextureARB(GL_TEXTURE4_ARB);
02070         glBindTexture(GL_TEXTURE_2D, 0);
02071         glDisable(GL_TEXTURE_2D);
02072 
02073         glActiveTextureARB(GL_TEXTURE5_ARB);
02074         glBindTexture(GL_TEXTURE_2D, 0);
02075         glDisable(GL_TEXTURE_2D);
02076 
02077         glActiveTextureARB(GL_TEXTURE6_ARB);
02078         glBindTexture(GL_TEXTURE_2D, 0);
02079         glDisable(GL_TEXTURE_2D);
02080 }
02081 
02082 void VVolumeRenderer::clearShaderWrapperDVRCombPhongShadow()
02083 {
02084         m_RayCasterCOMB_PhongShadow.release();  
02085 
02086         glActiveTextureARB(GL_TEXTURE0_ARB);
02087         glBindTexture(GL_TEXTURE_3D, 0);
02088         glDisable(GL_TEXTURE_3D);
02089 
02090         glActiveTextureARB(GL_TEXTURE1_ARB);
02091         glBindTexture(GL_TEXTURE_2D, 0);
02092         glDisable(GL_TEXTURE_2D);
02093 
02094         glActiveTextureARB(GL_TEXTURE2_ARB);
02095         glBindTexture(GL_TEXTURE_2D, 0);
02096         glDisable(GL_TEXTURE_2D);
02097 
02098         glActiveTextureARB(GL_TEXTURE3_ARB);
02099         glBindTexture(GL_TEXTURE_2D, 0);
02100         glDisable(GL_TEXTURE_2D);
02101 
02102         glActiveTextureARB(GL_TEXTURE4_ARB);
02103         glBindTexture(GL_TEXTURE_2D, 0);
02104         glDisable(GL_TEXTURE_2D);
02105 
02106         glActiveTextureARB(GL_TEXTURE5_ARB);
02107         glBindTexture(GL_TEXTURE_2D, 0);
02108         glDisable(GL_TEXTURE_2D);
02109 
02110 }
02111 
02112 
02113 void VVolumeRenderer::clearShaderWrapperDVRCombPhongContShadow()
02114 {
02115         m_RayCasterCOMB_PhongContourShadow.release();   
02116 
02117         glActiveTextureARB(GL_TEXTURE0_ARB);
02118         glBindTexture(GL_TEXTURE_3D, 0);
02119         glDisable(GL_TEXTURE_3D);
02120 
02121         glActiveTextureARB(GL_TEXTURE1_ARB);
02122         glBindTexture(GL_TEXTURE_2D, 0);
02123         glDisable(GL_TEXTURE_2D);
02124 
02125         glActiveTextureARB(GL_TEXTURE2_ARB);
02126         glBindTexture(GL_TEXTURE_2D, 0);
02127         glDisable(GL_TEXTURE_2D);
02128 
02129 
02130         glActiveTextureARB(GL_TEXTURE3_ARB);
02131         glBindTexture(GL_TEXTURE_2D, 0);
02132         glDisable(GL_TEXTURE_2D);
02133 
02134         glActiveTextureARB(GL_TEXTURE4_ARB);
02135         glBindTexture(GL_TEXTURE_2D, 0);
02136         glDisable(GL_TEXTURE_2D);
02137 
02138         glActiveTextureARB(GL_TEXTURE5_ARB);
02139         glBindTexture(GL_TEXTURE_2D, 0);
02140         glDisable(GL_TEXTURE_2D);
02141 
02142         glActiveTextureARB(GL_TEXTURE6_ARB);
02143         glBindTexture(GL_TEXTURE_2D, 0);
02144         glDisable(GL_TEXTURE_2D);
02145 
02146         glActiveTextureARB(GL_TEXTURE7_ARB);
02147         glBindTexture(GL_TEXTURE_2D, 0);
02148         glDisable(GL_TEXTURE_2D);
02149 }
02150 
02151 
02152 void VVolumeRenderer::clearShaderWrapperDVRCombPhongt2f()
02153 {
02154         m_RayCasterCOMB_Phongt2f.release();     
02155 
02156         glActiveTextureARB(GL_TEXTURE0_ARB);
02157         glBindTexture(GL_TEXTURE_3D, 0);
02158         glDisable(GL_TEXTURE_3D);
02159 
02160         glActiveTextureARB(GL_TEXTURE1_ARB);
02161         glBindTexture(GL_TEXTURE_2D, 0);
02162         glDisable(GL_TEXTURE_2D);
02163 
02164         glActiveTextureARB(GL_TEXTURE2_ARB);
02165         glBindTexture(GL_TEXTURE_2D, 0);
02166         glDisable(GL_TEXTURE_2D);
02167 
02168 
02169         glActiveTextureARB(GL_TEXTURE3_ARB);
02170         glBindTexture(GL_TEXTURE_2D, 0);
02171         glDisable(GL_TEXTURE_2D);
02172 
02173         glActiveTextureARB(GL_TEXTURE4_ARB);
02174         glBindTexture(GL_TEXTURE_2D, 0);
02175         glDisable(GL_TEXTURE_2D);
02176 
02177         glActiveTextureARB(GL_TEXTURE5_ARB);
02178         glBindTexture(GL_TEXTURE_2D, 0);
02179         glDisable(GL_TEXTURE_2D);
02180 }
02181 
02182 
02183 void VVolumeRenderer::clearShaderWrapperDVRCombPhongContt2f()
02184 {
02185          m_RayCasterCOMB_PhongContt2f.release(); 
02186 
02187          glActiveTextureARB(GL_TEXTURE0_ARB);
02188          glBindTexture(GL_TEXTURE_3D, 0);
02189          glDisable(GL_TEXTURE_3D);
02190 
02191          glActiveTextureARB(GL_TEXTURE1_ARB);
02192          glBindTexture(GL_TEXTURE_2D, 0);
02193          glDisable(GL_TEXTURE_2D);
02194 
02195          glActiveTextureARB(GL_TEXTURE2_ARB);
02196          glBindTexture(GL_TEXTURE_2D, 0);
02197          glDisable(GL_TEXTURE_2D);
02198 
02199 
02200          glActiveTextureARB(GL_TEXTURE3_ARB);
02201          glBindTexture(GL_TEXTURE_2D, 0);
02202          glDisable(GL_TEXTURE_2D);
02203 
02204          glActiveTextureARB(GL_TEXTURE4_ARB);
02205          glBindTexture(GL_TEXTURE_2D, 0);
02206          glDisable(GL_TEXTURE_2D);
02207 
02208          glActiveTextureARB(GL_TEXTURE5_ARB);
02209          glBindTexture(GL_TEXTURE_2D, 0);
02210          glDisable(GL_TEXTURE_2D);
02211 
02212          glActiveTextureARB(GL_TEXTURE6_ARB);
02213          glBindTexture(GL_TEXTURE_2D, 0);
02214          glDisable(GL_TEXTURE_2D);
02215 }
02216 
02217 void VVolumeRenderer::clearShaderWrapperDVRCombPhongShadowt2f()
02218 {
02219          m_RayCasterCOMB_PhongShadowt2f.release(); 
02220 
02221          glActiveTextureARB(GL_TEXTURE0_ARB);
02222          glBindTexture(GL_TEXTURE_3D, 0);
02223          glDisable(GL_TEXTURE_3D);
02224 
02225          glActiveTextureARB(GL_TEXTURE1_ARB);
02226          glBindTexture(GL_TEXTURE_2D, 0);
02227          glDisable(GL_TEXTURE_2D);
02228 
02229          glActiveTextureARB(GL_TEXTURE2_ARB);
02230          glBindTexture(GL_TEXTURE_2D, 0);
02231          glDisable(GL_TEXTURE_2D);
02232 
02233          glActiveTextureARB(GL_TEXTURE3_ARB);
02234          glBindTexture(GL_TEXTURE_2D, 0);
02235          glDisable(GL_TEXTURE_2D);
02236 
02237          glActiveTextureARB(GL_TEXTURE4_ARB);
02238          glBindTexture(GL_TEXTURE_2D, 0);
02239          glDisable(GL_TEXTURE_2D);
02240 
02241          glActiveTextureARB(GL_TEXTURE5_ARB);
02242          glBindTexture(GL_TEXTURE_2D, 0);
02243          glDisable(GL_TEXTURE_2D);
02244 }
02245 
02246 void VVolumeRenderer::clearShaderWrapperDVRCombPhongContShadowt2f()
02247 {
02248         m_RayCasterCOMB_PhongContourShadowt2f.release();        
02249 
02250         glActiveTextureARB(GL_TEXTURE0_ARB);
02251         glBindTexture(GL_TEXTURE_3D, 0);
02252         glDisable(GL_TEXTURE_3D);
02253 
02254         glActiveTextureARB(GL_TEXTURE1_ARB);
02255         glBindTexture(GL_TEXTURE_2D, 0);
02256         glDisable(GL_TEXTURE_2D);
02257 
02258         glActiveTextureARB(GL_TEXTURE2_ARB);
02259         glBindTexture(GL_TEXTURE_2D, 0);
02260         glDisable(GL_TEXTURE_2D);
02261 
02262 
02263         glActiveTextureARB(GL_TEXTURE3_ARB);
02264         glBindTexture(GL_TEXTURE_2D, 0);
02265         glDisable(GL_TEXTURE_2D);
02266 
02267         glActiveTextureARB(GL_TEXTURE4_ARB);
02268         glBindTexture(GL_TEXTURE_2D, 0);
02269         glDisable(GL_TEXTURE_2D);
02270 
02271         glActiveTextureARB(GL_TEXTURE5_ARB);
02272         glBindTexture(GL_TEXTURE_2D, 0);
02273         glDisable(GL_TEXTURE_2D);
02274 
02275         glActiveTextureARB(GL_TEXTURE6_ARB);
02276         glBindTexture(GL_TEXTURE_2D, 0);
02277         glDisable(GL_TEXTURE_2D);
02278 }
02279 
02280 
02281 
02282 void VVolumeRenderer::clearShaderWrapperDVRCombToon()
02283 {
02284         m_RayCasterCOMB_PhongContourShadow.release();   
02285 
02286         glActiveTextureARB(GL_TEXTURE0_ARB);
02287         glBindTexture(GL_TEXTURE_3D, 0);
02288         glDisable(GL_TEXTURE_3D);
02289 
02290         glActiveTextureARB(GL_TEXTURE1_ARB);
02291         glBindTexture(GL_TEXTURE_2D, 0);
02292         glDisable(GL_TEXTURE_2D);
02293 
02294         glActiveTextureARB(GL_TEXTURE2_ARB);
02295         glBindTexture(GL_TEXTURE_2D, 0);
02296         glDisable(GL_TEXTURE_2D);
02297 
02298 
02299         glActiveTextureARB(GL_TEXTURE3_ARB);
02300         glBindTexture(GL_TEXTURE_2D, 0);
02301         glDisable(GL_TEXTURE_2D);
02302 
02303         glActiveTextureARB(GL_TEXTURE4_ARB);
02304         glBindTexture(GL_TEXTURE_2D, 0);
02305         glDisable(GL_TEXTURE_2D);
02306 
02307         glActiveTextureARB(GL_TEXTURE5_ARB);
02308         glBindTexture(GL_TEXTURE_2D, 0);
02309         glDisable(GL_TEXTURE_2D);
02310 
02311         glActiveTextureARB(GL_TEXTURE6_ARB);
02312         glBindTexture(GL_TEXTURE_2D, 0);
02313         glDisable(GL_TEXTURE_2D);
02314 }
02315 
02316 void VVolumeRenderer::clearShaderWrapperDVRCombToonCont()
02317 
02318 {
02319 
02320         m_RayCasterCOMB_ToonCont.release();     
02321 
02322         glActiveTextureARB(GL_TEXTURE0_ARB);
02323         glBindTexture(GL_TEXTURE_3D, 0);
02324         glDisable(GL_TEXTURE_3D);
02325 
02326         glActiveTextureARB(GL_TEXTURE1_ARB);
02327         glBindTexture(GL_TEXTURE_2D, 0);
02328         glDisable(GL_TEXTURE_2D);
02329 
02330         glActiveTextureARB(GL_TEXTURE2_ARB);
02331         glBindTexture(GL_TEXTURE_2D, 0);
02332         glDisable(GL_TEXTURE_2D);
02333 
02334 
02335         glActiveTextureARB(GL_TEXTURE3_ARB);
02336         glBindTexture(GL_TEXTURE_2D, 0);
02337         glDisable(GL_TEXTURE_2D);
02338 
02339         glActiveTextureARB(GL_TEXTURE4_ARB);
02340         glBindTexture(GL_TEXTURE_2D, 0);
02341         glDisable(GL_TEXTURE_2D);
02342 
02343         glActiveTextureARB(GL_TEXTURE5_ARB);
02344         glBindTexture(GL_TEXTURE_2D, 0);
02345         glDisable(GL_TEXTURE_2D);
02346 
02347         glActiveTextureARB(GL_TEXTURE6_ARB);
02348         glBindTexture(GL_TEXTURE_2D, 0);
02349         glDisable(GL_TEXTURE_2D);
02350 
02351         glActiveTextureARB(GL_TEXTURE7_ARB);
02352         glBindTexture(GL_TEXTURE_2D, 0);
02353         glDisable(GL_TEXTURE_2D);
02354 }
02355 
02356 void VVolumeRenderer::clearShaderWrapperDVRCombToonShadow()
02357 {
02358         m_RayCasterCOMB_ToonShadow.release();   
02359 
02360         glActiveTextureARB(GL_TEXTURE0_ARB);
02361         glBindTexture(GL_TEXTURE_3D, 0);
02362         glDisable(GL_TEXTURE_3D);
02363 
02364         glActiveTextureARB(GL_TEXTURE1_ARB);
02365         glBindTexture(GL_TEXTURE_2D, 0);
02366         glDisable(GL_TEXTURE_2D);
02367 
02368         glActiveTextureARB(GL_TEXTURE2_ARB);
02369         glBindTexture(GL_TEXTURE_2D, 0);
02370         glDisable(GL_TEXTURE_2D);
02371 
02372         glActiveTextureARB(GL_TEXTURE3_ARB);
02373         glBindTexture(GL_TEXTURE_2D, 0);
02374         glDisable(GL_TEXTURE_2D);
02375 
02376         glActiveTextureARB(GL_TEXTURE4_ARB);
02377         glBindTexture(GL_TEXTURE_2D, 0);
02378         glDisable(GL_TEXTURE_2D);
02379 
02380         glActiveTextureARB(GL_TEXTURE5_ARB);
02381         glBindTexture(GL_TEXTURE_2D, 0);
02382         glDisable(GL_TEXTURE_2D);
02383 
02384         glActiveTextureARB(GL_TEXTURE6_ARB);
02385         glBindTexture(GL_TEXTURE_2D, 0);
02386         glDisable(GL_TEXTURE_2D);
02387 
02388 }
02389 void VVolumeRenderer::clearShaderWrapperDVRCombToonContShadow()
02390 {
02391         m_RayCasterCOMB_ToonContourShadow.release();    
02392 
02393         glActiveTextureARB(GL_TEXTURE0_ARB);
02394         glBindTexture(GL_TEXTURE_3D, 0);
02395         glDisable(GL_TEXTURE_3D);
02396 
02397         glActiveTextureARB(GL_TEXTURE1_ARB);
02398         glBindTexture(GL_TEXTURE_2D, 0);
02399         glDisable(GL_TEXTURE_2D);
02400 
02401         glActiveTextureARB(GL_TEXTURE2_ARB);
02402         glBindTexture(GL_TEXTURE_2D, 0);
02403         glDisable(GL_TEXTURE_2D);
02404 
02405 
02406         glActiveTextureARB(GL_TEXTURE3_ARB);
02407         glBindTexture(GL_TEXTURE_2D, 0);
02408         glDisable(GL_TEXTURE_2D);
02409 
02410         glActiveTextureARB(GL_TEXTURE4_ARB);
02411         glBindTexture(GL_TEXTURE_2D, 0);
02412         glDisable(GL_TEXTURE_2D);
02413 
02414         glActiveTextureARB(GL_TEXTURE5_ARB);
02415         glBindTexture(GL_TEXTURE_2D, 0);
02416         glDisable(GL_TEXTURE_2D);
02417 
02418         glActiveTextureARB(GL_TEXTURE6_ARB);
02419         glBindTexture(GL_TEXTURE_2D, 0);
02420         glDisable(GL_TEXTURE_2D);
02421 
02422         glActiveTextureARB(GL_TEXTURE7_ARB);
02423         glBindTexture(GL_TEXTURE_2D, 0);
02424         glDisable(GL_TEXTURE_2D);
02425 }
02426 
02427 
02428 
02429 
02430 
02431 void VVolumeRenderer::clearShaderWrapperDVRCombToon2f()
02432 {
02433         m_RayCasterCOMB_Toon2f.release();       
02434 
02435         glActiveTextureARB(GL_TEXTURE0_ARB);
02436         glBindTexture(GL_TEXTURE_3D, 0);
02437         glDisable(GL_TEXTURE_3D);
02438 
02439         glActiveTextureARB(GL_TEXTURE1_ARB);
02440         glBindTexture(GL_TEXTURE_2D, 0);
02441         glDisable(GL_TEXTURE_2D);
02442 
02443         glActiveTextureARB(GL_TEXTURE2_ARB);
02444         glBindTexture(GL_TEXTURE_2D, 0);
02445         glDisable(GL_TEXTURE_2D);
02446 
02447 
02448         glActiveTextureARB(GL_TEXTURE3_ARB);
02449         glBindTexture(GL_TEXTURE_2D, 0);
02450         glDisable(GL_TEXTURE_2D);
02451 
02452         glActiveTextureARB(GL_TEXTURE4_ARB);
02453         glBindTexture(GL_TEXTURE_2D, 0);
02454         glDisable(GL_TEXTURE_2D);
02455 
02456         glActiveTextureARB(GL_TEXTURE5_ARB);
02457         glBindTexture(GL_TEXTURE_2D, 0);
02458         glDisable(GL_TEXTURE_2D);
02459 
02460         glActiveTextureARB(GL_TEXTURE6_ARB);
02461         glBindTexture(GL_TEXTURE_2D, 0);
02462         glDisable(GL_TEXTURE_2D);
02463 
02464 }
02465 
02466 void VVolumeRenderer::clearShaderWrapperDVRCombToonCont2f()
02467 
02468 {
02469 
02470         m_RayCasterCOMB_ToonCont2f.release();   
02471 
02472         glActiveTextureARB(GL_TEXTURE0_ARB);
02473         glBindTexture(GL_TEXTURE_3D, 0);
02474         glDisable(GL_TEXTURE_3D);
02475 
02476         glActiveTextureARB(GL_TEXTURE1_ARB);
02477         glBindTexture(GL_TEXTURE_2D, 0);
02478         glDisable(GL_TEXTURE_2D);
02479 
02480         glActiveTextureARB(GL_TEXTURE2_ARB);
02481         glBindTexture(GL_TEXTURE_2D, 0);
02482         glDisable(GL_TEXTURE_2D);
02483 
02484 
02485         glActiveTextureARB(GL_TEXTURE3_ARB);
02486         glBindTexture(GL_TEXTURE_2D, 0);
02487         glDisable(GL_TEXTURE_2D);
02488 
02489         glActiveTextureARB(GL_TEXTURE4_ARB);
02490         glBindTexture(GL_TEXTURE_2D, 0);
02491         glDisable(GL_TEXTURE_2D);
02492 
02493         glActiveTextureARB(GL_TEXTURE5_ARB);
02494         glBindTexture(GL_TEXTURE_2D, 0);
02495         glDisable(GL_TEXTURE_2D);
02496 
02497         glActiveTextureARB(GL_TEXTURE6_ARB);
02498         glBindTexture(GL_TEXTURE_2D, 0);
02499         glDisable(GL_TEXTURE_2D);
02500 
02501         glActiveTextureARB(GL_TEXTURE7_ARB);
02502         glBindTexture(GL_TEXTURE_2D, 0);
02503         glDisable(GL_TEXTURE_2D);
02504 }
02505 
02506 void VVolumeRenderer::clearShaderWrapperDVRCombToonShadow2f()
02507 {
02508         m_RayCasterCOMB_ToonShadow2f.release(); 
02509 
02510         glActiveTextureARB(GL_TEXTURE0_ARB);
02511         glBindTexture(GL_TEXTURE_3D, 0);
02512         glDisable(GL_TEXTURE_3D);
02513 
02514         glActiveTextureARB(GL_TEXTURE1_ARB);
02515         glBindTexture(GL_TEXTURE_2D, 0);
02516         glDisable(GL_TEXTURE_2D);
02517 
02518         glActiveTextureARB(GL_TEXTURE2_ARB);
02519         glBindTexture(GL_TEXTURE_2D, 0);
02520         glDisable(GL_TEXTURE_2D);
02521 
02522         glActiveTextureARB(GL_TEXTURE3_ARB);
02523         glBindTexture(GL_TEXTURE_2D, 0);
02524         glDisable(GL_TEXTURE_2D);
02525 
02526         glActiveTextureARB(GL_TEXTURE4_ARB);
02527         glBindTexture(GL_TEXTURE_2D, 0);
02528         glDisable(GL_TEXTURE_2D);
02529 
02530         glActiveTextureARB(GL_TEXTURE5_ARB);
02531         glBindTexture(GL_TEXTURE_2D, 0);
02532         glDisable(GL_TEXTURE_2D);
02533 
02534         glActiveTextureARB(GL_TEXTURE6_ARB);
02535         glBindTexture(GL_TEXTURE_2D, 0);
02536         glDisable(GL_TEXTURE_2D);
02537 
02538 }
02539 void VVolumeRenderer::clearShaderWrapperDVRCombToonContShadow2f()
02540 {
02541         m_RayCasterCOMB_ToonContourShadow2f.release();  
02542 
02543         glActiveTextureARB(GL_TEXTURE0_ARB);
02544         glBindTexture(GL_TEXTURE_3D, 0);
02545         glDisable(GL_TEXTURE_3D);
02546 
02547         glActiveTextureARB(GL_TEXTURE1_ARB);
02548         glBindTexture(GL_TEXTURE_2D, 0);
02549         glDisable(GL_TEXTURE_2D);
02550 
02551         glActiveTextureARB(GL_TEXTURE2_ARB);
02552         glBindTexture(GL_TEXTURE_2D, 0);
02553         glDisable(GL_TEXTURE_2D);
02554 
02555 
02556         glActiveTextureARB(GL_TEXTURE3_ARB);
02557         glBindTexture(GL_TEXTURE_2D, 0);
02558         glDisable(GL_TEXTURE_2D);
02559 
02560         glActiveTextureARB(GL_TEXTURE4_ARB);
02561         glBindTexture(GL_TEXTURE_2D, 0);
02562         glDisable(GL_TEXTURE_2D);
02563 
02564         glActiveTextureARB(GL_TEXTURE5_ARB);
02565         glBindTexture(GL_TEXTURE_2D, 0);
02566         glDisable(GL_TEXTURE_2D);
02567 
02568         glActiveTextureARB(GL_TEXTURE6_ARB);
02569         glBindTexture(GL_TEXTURE_2D, 0);
02570         glDisable(GL_TEXTURE_2D);
02571 
02572         glActiveTextureARB(GL_TEXTURE7_ARB);
02573         glBindTexture(GL_TEXTURE_2D, 0);
02574         glDisable(GL_TEXTURE_2D);
02575 }
02576 
02577 
02578 void VVolumeRenderer::clearShaderWrapperDVRCombMetal()
02579 {
02580         m_RayCasterCOMB_Metal.release();        
02581 
02582         glActiveTextureARB(GL_TEXTURE0_ARB);
02583         glBindTexture(GL_TEXTURE_3D, 0);
02584         glDisable(GL_TEXTURE_3D);
02585 
02586         glActiveTextureARB(GL_TEXTURE1_ARB);
02587         glBindTexture(GL_TEXTURE_2D, 0);
02588         glDisable(GL_TEXTURE_2D);
02589 
02590         glActiveTextureARB(GL_TEXTURE2_ARB);
02591         glBindTexture(GL_TEXTURE_2D, 0);
02592         glDisable(GL_TEXTURE_2D);
02593 
02594 
02595         glActiveTextureARB(GL_TEXTURE3_ARB);
02596         glBindTexture(GL_TEXTURE_2D, 0);
02597         glDisable(GL_TEXTURE_2D);
02598 
02599         glActiveTextureARB(GL_TEXTURE4_ARB);
02600         glBindTexture(GL_TEXTURE_2D, 0);
02601         glDisable(GL_TEXTURE_2D);
02602 
02603         glActiveTextureARB(GL_TEXTURE5_ARB);
02604         glBindTexture(GL_TEXTURE_2D, 0);
02605         glDisable(GL_TEXTURE_2D);
02606 
02607         glActiveTextureARB(GL_TEXTURE6_ARB);
02608         glBindTexture(GL_TEXTURE_2D, 0);
02609         glDisable(GL_TEXTURE_2D);
02610 
02611 }
02612 
02613 void VVolumeRenderer::clearShaderWrapperDVRCombMetalCont()
02614 {
02615         m_RayCasterCOMB_MetalCont.release();    
02616 
02617         glActiveTextureARB(GL_TEXTURE0_ARB);
02618         glBindTexture(GL_TEXTURE_3D, 0);
02619         glDisable(GL_TEXTURE_3D);
02620 
02621         glActiveTextureARB(GL_TEXTURE1_ARB);
02622         glBindTexture(GL_TEXTURE_2D, 0);
02623         glDisable(GL_TEXTURE_2D);
02624 
02625         glActiveTextureARB(GL_TEXTURE2_ARB);
02626         glBindTexture(GL_TEXTURE_2D, 0);
02627         glDisable(GL_TEXTURE_2D);
02628 
02629 
02630         glActiveTextureARB(GL_TEXTURE3_ARB);
02631         glBindTexture(GL_TEXTURE_2D, 0);
02632         glDisable(GL_TEXTURE_2D);
02633 
02634         glActiveTextureARB(GL_TEXTURE4_ARB);
02635         glBindTexture(GL_TEXTURE_2D, 0);
02636         glDisable(GL_TEXTURE_2D);
02637 
02638         glActiveTextureARB(GL_TEXTURE5_ARB);
02639         glBindTexture(GL_TEXTURE_2D, 0);
02640         glDisable(GL_TEXTURE_2D);
02641 
02642         glActiveTextureARB(GL_TEXTURE6_ARB);
02643         glBindTexture(GL_TEXTURE_2D, 0);
02644         glDisable(GL_TEXTURE_2D);
02645 
02646 }
02647 
02648 void VVolumeRenderer::clearShaderWrapperDVRCombMetalShadow()
02649 {
02650         m_RayCasterCOMB_MetalShadow.release();  
02651 
02652         glActiveTextureARB(GL_TEXTURE0_ARB);
02653         glBindTexture(GL_TEXTURE_3D, 0);
02654         glDisable(GL_TEXTURE_3D);
02655 
02656         glActiveTextureARB(GL_TEXTURE1_ARB);
02657         glBindTexture(GL_TEXTURE_2D, 0);
02658         glDisable(GL_TEXTURE_2D);
02659 
02660         glActiveTextureARB(GL_TEXTURE2_ARB);
02661         glBindTexture(GL_TEXTURE_2D, 0);
02662         glDisable(GL_TEXTURE_2D);
02663 
02664 
02665         glActiveTextureARB(GL_TEXTURE3_ARB);
02666         glBindTexture(GL_TEXTURE_2D, 0);
02667         glDisable(GL_TEXTURE_2D);
02668 
02669         glActiveTextureARB(GL_TEXTURE4_ARB);
02670         glBindTexture(GL_TEXTURE_2D, 0);
02671         glDisable(GL_TEXTURE_2D);
02672 
02673         glActiveTextureARB(GL_TEXTURE5_ARB);
02674         glBindTexture(GL_TEXTURE_2D, 0);
02675         glDisable(GL_TEXTURE_2D);
02676 
02677         glActiveTextureARB(GL_TEXTURE6_ARB);
02678         glBindTexture(GL_TEXTURE_2D, 0);
02679         glDisable(GL_TEXTURE_2D);
02680 
02681 }
02682 
02683 void VVolumeRenderer::clearShaderWrapperDVRCombMetalContShadow()
02684 {
02685         m_RayCasterCOMB_MetalContourShadow.release();   
02686 
02687         glActiveTextureARB(GL_TEXTURE0_ARB);
02688         glBindTexture(GL_TEXTURE_3D, 0);
02689         glDisable(GL_TEXTURE_3D);
02690 
02691         glActiveTextureARB(GL_TEXTURE1_ARB);
02692         glBindTexture(GL_TEXTURE_2D, 0);
02693         glDisable(GL_TEXTURE_2D);
02694 
02695         glActiveTextureARB(GL_TEXTURE2_ARB);
02696         glBindTexture(GL_TEXTURE_2D, 0);
02697         glDisable(GL_TEXTURE_2D);
02698 
02699 
02700         glActiveTextureARB(GL_TEXTURE3_ARB);
02701         glBindTexture(GL_TEXTURE_2D, 0);
02702         glDisable(GL_TEXTURE_2D);
02703 
02704         glActiveTextureARB(GL_TEXTURE4_ARB);
02705         glBindTexture(GL_TEXTURE_2D, 0);
02706         glDisable(GL_TEXTURE_2D);
02707 
02708         glActiveTextureARB(GL_TEXTURE5_ARB);
02709         glBindTexture(GL_TEXTURE_2D, 0);
02710         glDisable(GL_TEXTURE_2D);
02711 
02712         glActiveTextureARB(GL_TEXTURE6_ARB);
02713         glBindTexture(GL_TEXTURE_2D, 0);
02714         glDisable(GL_TEXTURE_2D);
02715 
02716 }
02717 
02718 void VVolumeRenderer::clearShaderWrapperDVRCombMetal2f()
02719 {
02720         m_RayCasterCOMB_Metal2f.release();      
02721 
02722         glActiveTextureARB(GL_TEXTURE0_ARB);
02723         glBindTexture(GL_TEXTURE_3D, 0);
02724         glDisable(GL_TEXTURE_3D);
02725 
02726         glActiveTextureARB(GL_TEXTURE1_ARB);
02727         glBindTexture(GL_TEXTURE_2D, 0);
02728         glDisable(GL_TEXTURE_2D);
02729 
02730         glActiveTextureARB(GL_TEXTURE2_ARB);
02731         glBindTexture(GL_TEXTURE_2D, 0);
02732         glDisable(GL_TEXTURE_2D);
02733 
02734 
02735         glActiveTextureARB(GL_TEXTURE3_ARB);
02736         glBindTexture(GL_TEXTURE_2D, 0);
02737         glDisable(GL_TEXTURE_2D);
02738 
02739         glActiveTextureARB(GL_TEXTURE4_ARB);
02740         glBindTexture(GL_TEXTURE_2D, 0);
02741         glDisable(GL_TEXTURE_2D);
02742 
02743         glActiveTextureARB(GL_TEXTURE5_ARB);
02744         glBindTexture(GL_TEXTURE_2D, 0);
02745         glDisable(GL_TEXTURE_2D);
02746 
02747         glActiveTextureARB(GL_TEXTURE6_ARB);
02748         glBindTexture(GL_TEXTURE_2D, 0);
02749         glDisable(GL_TEXTURE_2D);
02750 
02751 }
02752 
02753 void VVolumeRenderer::clearShaderWrapperDVRCombMetalCont2f()
02754 
02755 {
02756 
02757         m_RayCasterCOMB_MetalCont2f.release();  
02758 
02759         glActiveTextureARB(GL_TEXTURE0_ARB);
02760         glBindTexture(GL_TEXTURE_3D, 0);
02761         glDisable(GL_TEXTURE_3D);
02762 
02763         glActiveTextureARB(GL_TEXTURE1_ARB);
02764         glBindTexture(GL_TEXTURE_2D, 0);
02765         glDisable(GL_TEXTURE_2D);
02766 
02767         glActiveTextureARB(GL_TEXTURE2_ARB);
02768         glBindTexture(GL_TEXTURE_2D, 0);
02769         glDisable(GL_TEXTURE_2D);
02770 
02771 
02772         glActiveTextureARB(GL_TEXTURE3_ARB);
02773         glBindTexture(GL_TEXTURE_2D, 0);
02774         glDisable(GL_TEXTURE_2D);
02775 
02776         glActiveTextureARB(GL_TEXTURE4_ARB);
02777         glBindTexture(GL_TEXTURE_2D, 0);
02778         glDisable(GL_TEXTURE_2D);
02779 
02780         glActiveTextureARB(GL_TEXTURE5_ARB);
02781         glBindTexture(GL_TEXTURE_2D, 0);
02782         glDisable(GL_TEXTURE_2D);
02783 
02784         glActiveTextureARB(GL_TEXTURE6_ARB);
02785         glBindTexture(GL_TEXTURE_2D, 0);
02786         glDisable(GL_TEXTURE_2D);
02787 
02788         glActiveTextureARB(GL_TEXTURE7_ARB);
02789         glBindTexture(GL_TEXTURE_2D, 0);
02790         glDisable(GL_TEXTURE_2D);
02791 }
02792 
02793 void VVolumeRenderer::clearShaderWrapperDVRCombMetalShadow2f()
02794 {
02795         m_RayCasterCOMB_MetalShadow2f.release();        
02796 
02797         glActiveTextureARB(GL_TEXTURE0_ARB);
02798         glBindTexture(GL_TEXTURE_3D, 0);
02799         glDisable(GL_TEXTURE_3D);
02800 
02801         glActiveTextureARB(GL_TEXTURE1_ARB);
02802         glBindTexture(GL_TEXTURE_2D, 0);
02803         glDisable(GL_TEXTURE_2D);
02804 
02805         glActiveTextureARB(GL_TEXTURE2_ARB);
02806         glBindTexture(GL_TEXTURE_2D, 0);
02807         glDisable(GL_TEXTURE_2D);
02808 
02809         glActiveTextureARB(GL_TEXTURE3_ARB);
02810         glBindTexture(GL_TEXTURE_2D, 0);
02811         glDisable(GL_TEXTURE_2D);
02812 
02813         glActiveTextureARB(GL_TEXTURE4_ARB);
02814         glBindTexture(GL_TEXTURE_2D, 0);
02815         glDisable(GL_TEXTURE_2D);
02816 
02817         glActiveTextureARB(GL_TEXTURE5_ARB);
02818         glBindTexture(GL_TEXTURE_2D, 0);
02819         glDisable(GL_TEXTURE_2D);
02820 
02821         glActiveTextureARB(GL_TEXTURE6_ARB);
02822         glBindTexture(GL_TEXTURE_2D, 0);
02823         glDisable(GL_TEXTURE_2D);
02824 
02825 }
02826 void VVolumeRenderer::clearShaderWrapperDVRCombMetalContShadow2f()
02827 {
02828         m_RayCasterCOMB_MetalContourShadow2f.release(); 
02829 
02830         glActiveTextureARB(GL_TEXTURE0_ARB);
02831         glBindTexture(GL_TEXTURE_3D, 0);
02832         glDisable(GL_TEXTURE_3D);
02833 
02834         glActiveTextureARB(GL_TEXTURE1_ARB);
02835         glBindTexture(GL_TEXTURE_2D, 0);
02836         glDisable(GL_TEXTURE_2D);
02837 
02838         glActiveTextureARB(GL_TEXTURE2_ARB);
02839         glBindTexture(GL_TEXTURE_2D, 0);
02840         glDisable(GL_TEXTURE_2D);
02841 
02842 
02843         glActiveTextureARB(GL_TEXTURE3_ARB);
02844         glBindTexture(GL_TEXTURE_2D, 0);
02845         glDisable(GL_TEXTURE_2D);
02846 
02847         glActiveTextureARB(GL_TEXTURE4_ARB);
02848         glBindTexture(GL_TEXTURE_2D, 0);
02849         glDisable(GL_TEXTURE_2D);
02850 
02851         glActiveTextureARB(GL_TEXTURE5_ARB);
02852         glBindTexture(GL_TEXTURE_2D, 0);
02853         glDisable(GL_TEXTURE_2D);
02854 
02855         glActiveTextureARB(GL_TEXTURE6_ARB);
02856         glBindTexture(GL_TEXTURE_2D, 0);
02857         glDisable(GL_TEXTURE_2D);
02858 
02859         glActiveTextureARB(GL_TEXTURE7_ARB);
02860         glBindTexture(GL_TEXTURE_2D, 0);
02861         glDisable(GL_TEXTURE_2D);
02862 }
02863 
02864 void VVolumeRenderer::clearShaderWrapperCurvature()
02865 {
02866         m_RayCasterCOMB_Curvature.release();    
02867 
02868         glActiveTextureARB(GL_TEXTURE0_ARB);
02869         glBindTexture(GL_TEXTURE_3D, 0);
02870         glDisable(GL_TEXTURE_3D);
02871 
02872         glActiveTextureARB(GL_TEXTURE1_ARB);
02873         glBindTexture(GL_TEXTURE_2D, 0);
02874         glDisable(GL_TEXTURE_2D);
02875 
02876         glActiveTextureARB(GL_TEXTURE2_ARB);
02877         glBindTexture(GL_TEXTURE_2D, 0);
02878         glDisable(GL_TEXTURE_2D);
02879 
02880 
02881         glActiveTextureARB(GL_TEXTURE3_ARB);
02882         glBindTexture(GL_TEXTURE_2D, 0);
02883         glDisable(GL_TEXTURE_2D);
02884 
02885         glActiveTextureARB(GL_TEXTURE4_ARB);
02886         glBindTexture(GL_TEXTURE_2D, 0);
02887         glDisable(GL_TEXTURE_2D);
02888 
02889         glActiveTextureARB(GL_TEXTURE5_ARB);
02890         glBindTexture(GL_TEXTURE_2D, 0);
02891         glDisable(GL_TEXTURE_2D);
02892 
02893         glActiveTextureARB(GL_TEXTURE6_ARB);
02894         glBindTexture(GL_TEXTURE_2D, 0);
02895         glDisable(GL_TEXTURE_2D);
02896 
02897         glActiveTextureARB(GL_TEXTURE7_ARB);
02898         glBindTexture(GL_TEXTURE_2D, 0);
02899         glDisable(GL_TEXTURE_2D);
02900 }

Generated on Wed Dec 5 05:15:09 2007 for VolRendering by  doxygen 1.5.4