Changeset 20133
- Timestamp:
- 05/04/07 11:06:38 (2 years ago)
- Files:
-
- juggler/branches/2.2/modules/vrjuggler/ChangeLog (modified) (1 diff)
- juggler/branches/2.2/modules/vrjuggler/VERSION (modified) (1 diff)
- juggler/branches/2.2/modules/vrjuggler/samples/OpenSG/advanced/OpenSGNavGrab/OpenSGNavGrab.cpp (modified) (1 diff)
- juggler/branches/2.2/modules/vrjuggler/samples/OpenSG/simple/OpenSGNav/OpenSGNav.cpp (modified) (1 diff)
- juggler/branches/2.2/modules/vrjuggler/vrj/Draw/OGL/GlBasicSimulator.cpp (modified) (5 diffs)
- juggler/branches/2.2/modules/vrjuggler/vrj/Draw/OSG/OsgApp.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
juggler/branches/2.2/modules/vrjuggler/ChangeLog
r20085 r20133 1 1 DATE AUTHOR CHANGE 2 2 ----------- ----------- ------------------------------------------------------- 3 May-04-2007 patrick Added lighting code to vrj::GlBasicSimulator so that 4 OSG and OpenSG application objects do not have to 5 include that code themselves just so that the simulator 6 renders nicely. 7 NEW VERSION: 2.1.25 3 8 May-01-2007 patrick Renamed the x11_pipes property of the display_system 4 9 config element to pipes. juggler/branches/2.2/modules/vrjuggler/VERSION
r20085 r20133 1 2.1.25-0 @05/04/2007 16:10:00 UTC@ 1 2 2.1.24-0 @05/02/2007 02:00:00 UTC@ 2 3 2.1.23-0 @04/22/2007 21:20:00 UTC@ juggler/branches/2.2/modules/vrjuggler/samples/OpenSG/advanced/OpenSGNavGrab/OpenSGNavGrab.cpp
r19729 r20133 332 332 void OpenSGNavGrab::initGLState() 333 333 { 334 GLfloat light0_ambient[] = { 0.1f, 0.1f, 0.1f, 1.0f };335 GLfloat light0_diffuse[] = { 0.7f, 0.7f, 0.7f, 1.0f };336 GLfloat light0_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };337 GLfloat light0_position[] = { 0.5f, 0.75f, 0.75f, 0.0f };338 339 GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f };340 GLfloat mat_diffuse[] = { 1.0f, 0.5f, 0.8f, 1.0f };341 GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };342 GLfloat mat_shininess[] = { 50.0f };343 // GLfloat mat_emission[] = { 1.0f, 1.0f, 1.0f, 1.0f };344 GLfloat no_mat[] = { 0.0f, 0.0f, 0.0f, 1.0f };345 346 glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient);347 glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);348 glLightfv(GL_LIGHT0, GL_SPECULAR, light0_specular);349 glLightfv(GL_LIGHT0, GL_POSITION, light0_position);350 351 glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);352 glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);353 glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);354 glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);355 glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);356 357 glEnable(GL_DEPTH_TEST);358 glEnable(GL_LIGHTING);359 glEnable(GL_LIGHT0);360 glEnable(GL_COLOR_MATERIAL);361 glShadeModel(GL_SMOOTH);362 363 334 // OpenSG does not handle this yet. Being smart about it is non-trivial. 364 335 glEnable(GL_NORMALIZE); juggler/branches/2.2/modules/vrjuggler/samples/OpenSG/simple/OpenSGNav/OpenSGNav.cpp
r19729 r20133 119 119 void OpenSGNav::initGLState() 120 120 { 121 GLfloat light0_ambient[] = { 0.1f, 0.1f, 0.1f, 1.0f };122 GLfloat light0_diffuse[] = { 0.7f, 0.7f, 0.7f, 1.0f };123 GLfloat light0_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };124 GLfloat light0_position[] = { 0.5f, 0.75f, 0.75f, 0.0f };125 126 GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f };127 GLfloat mat_diffuse[] = { 1.0f, 0.5f, 0.8f, 1.0f };128 GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };129 GLfloat mat_shininess[] = { 50.0f };130 // GLfloat mat_emission[] = { 1.0f, 1.0f, 1.0f, 1.0f };131 GLfloat no_mat[] = { 0.0f, 0.0f, 0.0f, 1.0f };132 133 glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient);134 glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);135 glLightfv(GL_LIGHT0, GL_SPECULAR, light0_specular);136 glLightfv(GL_LIGHT0, GL_POSITION, light0_position);137 138 glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);139 glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);140 glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);141 glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);142 glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);143 144 glEnable(GL_DEPTH_TEST);145 glEnable(GL_LIGHTING);146 glEnable(GL_LIGHT0);147 glEnable(GL_COLOR_MATERIAL);148 glShadeModel(GL_SMOOTH);149 150 121 // OpenSG does not handle this yet, being smart about it is not 151 122 // that trivial... juggler/branches/2.2/modules/vrjuggler/vrj/Draw/OGL/GlBasicSimulator.cpp
r20098 r20133 335 335 void GlBasicSimulator::drawSimulator(const float scaleFactor) 336 336 { 337 glPushAttrib( GL_ENABLE_BIT | GL_COLOR_BUFFER_BIT | GL_LIGHTING_BIT);337 glPushAttrib(GL_ALL_ATTRIB_BITS); 338 338 { 339 // Test to see wethere there is lighting active 340 GLboolean lighting_on, light0_on; 339 // Test to see whether there is lighting active. If there is, we will 340 // use it. 341 GLboolean lighting_on; 341 342 glGetBooleanv(GL_LIGHTING, &lighting_on); 342 glGetBooleanv(GL_LIGHT0, &light0_on);343 344 bool use_lighting_in_sim = (lighting_on == GL_TRUE);345 346 //vprDEBUG(vprDBG_ALL, vprDBG_HVERB_LVL) << "lighting on: " << ((lighting_on == GL_TRUE)?"Y":"N")347 // << " light0_on:" << ((light0_on == GL_TRUE)?"Y":"N") << std::endl << vprDEBUG_FLUSH;348 343 349 344 //-----------------set up materials.... 350 float mat_ambient[] = {0.1f, 0.1f, 0.1f, 1.0f};351 float mat_shininess[] = {50.0f};352 float mat_diffuse[] = {.7f, .7f, .7f, 1.0f};353 float mat_specular[] = {1.0f, 1.0f, 1.0f, 1.0f};345 const GLfloat mat_ambient[] = { 0.1f, 0.1f, 0.1f, 1.0f }; 346 const GLfloat mat_shininess[] = { 50.0f }; 347 const GLfloat mat_diffuse[] = { 0.7f, 0.7f, 0.7f, 1.0f }; 348 const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; 354 349 //-----------------Call Materials..... 355 350 glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); … … 360 355 glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); 361 356 glEnable(GL_COLOR_MATERIAL); 357 glShadeModel(GL_SMOOTH); 362 358 363 359 glDisable(GL_TEXTURE_2D); … … 366 362 // Draw base coordinate axis 367 363 ///* 368 if (lighting_on)364 if ( lighting_on == GL_TRUE ) 369 365 { 370 366 glDisable(GL_LIGHTING); … … 383 379 //*/ 384 380 385 if(use_lighting_in_sim) 386 { 387 glEnable(GL_LIGHTING); 388 glEnable(GL_NORMALIZE); 389 } 381 const GLfloat light0_ambient[] = { 0.1f, 0.1f, 0.1f, 1.0f }; 382 const GLfloat light0_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f }; 383 const GLfloat light0_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; 384 const GLfloat light0_position[] = { 0.0f, 0.75f, 0.75f, 0.0f }; 385 386 glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient); 387 glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse); 388 glLightfv(GL_LIGHT0, GL_SPECULAR, light0_specular); 389 glLightfv(GL_LIGHT0, GL_POSITION, light0_position); 390 391 // At this point, lighting is disabled. We need it back on for the 392 // draw functors. 393 glEnable(GL_LIGHTING); 394 glEnable(GL_LIGHT0); 395 396 // Enable depth testing so that the rendered simulator objects look 397 // correct. For example, in the case of the default head draw functor, 398 // without this, we end up being able to see the eyes when looking at 399 // the back of the head. 400 glEnable(GL_DEPTH_TEST); 390 401 391 402 // Draw the user's head … … 407 418 glPopMatrix(); 408 419 409 // Draw a The display surfaces 410 if(use_lighting_in_sim) 411 { 412 glDisable(GL_LIGHTING); 413 } 414 420 glDisable(GL_LIGHT0); 421 glDisable(GL_LIGHTING); 422 423 // Draw the display surfaces. 415 424 glPushMatrix(); 416 425 glLoadIdentity(); 417 drawProjections(shouldDrawProjections(), getSurfaceColor(), scaleFactor); 426 drawProjections(shouldDrawProjections(), getSurfaceColor(), 427 scaleFactor); 418 428 glPopMatrix(); 419 429 } juggler/branches/2.2/modules/vrjuggler/vrj/Draw/OSG/OsgApp.h
r20128 r20133 301 301 302 302 (*sceneViewer) = new_sv; 303 304 //Setup OpenGL light305 //This should actualy be done in the simulator code306 GLfloat light0_ambient[] = { 0.1f, 0.1f, 0.1f, 1.0f};307 GLfloat light0_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f};308 GLfloat light0_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f};309 GLfloat light0_position[] = {0.0f, 0.75f, 0.75f, 0.0f};310 311 GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f};312 GLfloat mat_diffuse[] = { 1.0f, 0.5f, 0.8f, 1.0f};313 GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f};314 GLfloat mat_shininess[] = { 50.0f};315 //GLfloat mat_emission[] = { 1.0f, 1.0f, 1.0f, 1.0f};316 GLfloat no_mat[] = { 0.0f, 0.0f, 0.0f, 1.0f};317 318 glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient);319 glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);320 glLightfv(GL_LIGHT0, GL_SPECULAR, light0_specular);321 glLightfv(GL_LIGHT0, GL_POSITION, light0_position);322 323 glMaterialfv( GL_FRONT, GL_AMBIENT, mat_ambient );324 glMaterialfv( GL_FRONT, GL_DIFFUSE, mat_diffuse );325 glMaterialfv( GL_FRONT, GL_SPECULAR, mat_specular );326 glMaterialfv( GL_FRONT, GL_SHININESS, mat_shininess );327 glMaterialfv( GL_FRONT, GL_EMISSION, no_mat);328 329 glEnable(GL_DEPTH_TEST);330 glEnable(GL_NORMALIZE);331 glEnable(GL_LIGHTING);332 glEnable(GL_LIGHT0);333 glEnable(GL_COLOR_MATERIAL);334 glShadeModel(GL_SMOOTH);335 303 } 336 304
