[vtk-developers] Gradient backgrounds in vtkRenderer.
    Jeff Baumes 
    jeff.baumes at kitware.com
       
    Mon Apr  7 16:24:18 EDT 2008
    
    
  
In certain applications, gradient backgrounds can add to the quality
of a visualization (in particular in information visualization). Does
anyone object to the addition of a top-to-bottom gradient in
vtkRenderer (by default it is disabled, of course)?
This involves adding the following functions to vtkViewport:
  vtkSetVector3Macro(Background2,double);
  vtkGetVector3Macro(Background2,double);
  vtkSetMacro(GradientBackground,bool);
  vtkGetMacro(GradientBackground,bool);
  vtkBooleanMacro(GradientBackground,bool);
And the following to vtkOpenGLRenderer:
  if (!this->Transparent() && this->GradientBackground)
    {
    GLboolean is_depth_en = glIsEnabled(GL_DEPTH_TEST);
    GLboolean is_light_en = glIsEnabled(GL_LIGHTING);
    if (is_depth_en)
      {
      glDisable(GL_DEPTH_TEST);
      }
    if (is_light_en)
      {
      glDisable(GL_LIGHTING);
      }
    glMatrixMode(GL_MODELVIEW);
    glPushMatrix();
    {
      glLoadIdentity ();
      glMatrixMode (GL_PROJECTION);
      glPushMatrix ();
      {
        glLoadIdentity ();
        glBegin(GL_QUADS);
        //first Vertex (-1, -1)
        glColor3dv(this->Background);
        glVertex2f(-1.0, -1.0);
        //second vertex
        glColor3dv(this->Background);
        glVertex2f(1.0, -1.0);
        //third vertex
        glColor3dv(this->Background2);
        glVertex2f(1.0, 1.0);
        //fourth vertex
        glColor3dv(this->Background2);
        glVertex2f(-1.0, 1.0);
        glEnd();
      }
      glPopMatrix();
      glMatrixMode(GL_MODELVIEW);
    }
    glPopMatrix();
    if (is_depth_en)
      {
      glEnable(GL_DEPTH_TEST);
      }
    if (is_light_en)
      {
      glEnable(GL_LIGHTING);
      }
    }
-- 
Jeff Baumes, Ph.D.
R&D Engineer, Kitware Inc.
(518) 371-3971 x132
jeff.baumes at kitware.com
    
    
More information about the vtk-developers
mailing list