[vtk-developers] Gradient backgrounds in vtkRenderer.
Jeff Baumes
jeff.baumes at kitware.com
Tue Apr 8 09:41:45 EDT 2008
Thanks for the suggestions, Francois. I've incorporated those changes
and commited them, plus added a test called TestGradientBackground.
Jeff
On Mon, Apr 7, 2008 at 5:05 PM, Francois Bertel
<francois.bertel at kitware.com> wrote:
> You'd better not use query functions like glIsEnable() because it
> requires the driver to send information back to the client (which may
> involve a flush of OpenGL commands). glPushAttrib/glPopAttrib should
> be faster:
>
> glPushAttrib(GL_ENABLE_BIT); // save depth test value and lighting value
> glDisable(GL_DEPTH_TEST);
> glDisable(GL_LIGHTING);
> [...]
> glPopAttrib();
>
> glColor() change the current color. You don't need to call it before
>
> each call to glVertex() if it does not change. Just write:
>
> //first Vertex (-1, -1)
> glColor3dv(this->Background);
> glVertex2f(-1.0, -1.0);
>
> //second vertex
>
> glVertex2f(1.0, -1.0);
>
> //third vertex
> glColor3dv(this->Background2);
> glVertex2f(1.0, 1.0);
>
> //fourth vertex
>
> glVertex2f(-1.0, 1.0);
>
>
>
>
> On Mon, Apr 7, 2008 at 4:24 PM, Jeff Baumes <jeff.baumes at kitware.com> wrote:
> > 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
>
>
> > _______________________________________________
> > vtk-developers mailing list
> > vtk-developers at vtk.org
> > http://www.vtk.org/mailman/listinfo/vtk-developers
> >
>
>
>
> --
> François Bertel, PhD | Kitware Inc. Suite 204
> 1 (518) 371 3971 x113 | 28 Corporate Drive
> | Clifton Park NY 12065, USA
>
--
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