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
00011
00012
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
00095
00096
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
00147
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);
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
00196
00197
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
00247
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
01823
01824
01825
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
01890
01891
01892
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
01960
01961
01962
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 }