VTK
vtkSimpleMotionBlurPass.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSimpleMotionBlurPass.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
32 #ifndef vtkSimpleMotionBlurPass_h
33 #define vtkSimpleMotionBlurPass_h
34 
35 #include "vtkRenderingOpenGL2Module.h" // For export macro
37 
39 class vtkOpenGLHelper;
41 class vtkTextureObject;
42 
43 class VTKRENDERINGOPENGL2_EXPORT vtkSimpleMotionBlurPass : public vtkDepthImageProcessingPass
44 {
45 public:
46  static vtkSimpleMotionBlurPass *New();
48  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
49 
54  void Render(const vtkRenderState *s) VTK_OVERRIDE;
55 
61  void ReleaseGraphicsResources(vtkWindow *w) VTK_OVERRIDE;
62 
64 
72  vtkGetMacro(SubFrames, int);
73  virtual void SetSubFrames(int subFrames);
75 
80  vtkSetMacro(DepthFormat, int);
81 
88  vtkSetMacro(ColorFormat, int);
89 
90  // Get the depth texture object
91  vtkGetObjectMacro(DepthTexture, vtkTextureObject);
92 
93  // Get the Color texture object
94  vtkGetObjectMacro(ColorTexture, vtkTextureObject);
95 
96  protected:
101 
105  ~vtkSimpleMotionBlurPass() VTK_OVERRIDE;
106 
110  vtkOpenGLFramebufferObject *FrameBufferObject;
111  vtkTextureObject *ColorTexture; // render target for the scene
112  vtkTextureObject *AccumulationTexture[2]; // where we add the colors
113  vtkTextureObject *DepthTexture; // render target for the depth
114 
116 
119  int ViewportX;
120  int ViewportY;
121  int ViewportWidth;
122  int ViewportHeight;
124 
125  int DepthFormat;
126  int ColorFormat;
127 
128  int SubFrames; // number of sub frames
129  int CurrentSubFrame; // what one are we on
130  int ActiveAccumulationTexture;
131  vtkOpenGLHelper *BlendProgram;
132 
133  private:
135  void operator=(const vtkSimpleMotionBlurPass&) = delete;
136 };
137 
138 #endif
OpenGL rendering window.
Avergae frames to simulate motion blur.
void ReleaseGraphicsResources(vtkWindow *w) override
Release graphics resources and ask components to release their own resources.
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
Context in which a vtkRenderPass will render.
a simple class to control print indentation
Definition: vtkIndent.h:39
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Internal class which encapsulates OpenGL FramebufferObject.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
abstracts an OpenGL texture object.
virtual void Render(const vtkRenderState *s)=0
Perform rendering according to a render state s.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
Convenient class for post-processing passes.