54 #include <ACG/GL/IRenderer.hh> 55 #include <ACG/GL/FBO.hh> 64 #if QT_VERSION >= 0x050000 65 Q_PLUGIN_METADATA(IID
"org.OpenFlipper.Plugins.Plugin-Render-DepthPeeling")
70 void log(
Logtype _type, QString _message);
71 void log(QString _message);
78 QString
name() {
return (QString(
"DepthPeeling Plugin")); };
79 QString
description( ) {
return (QString(tr(
"DepthPeeling Rendering Pipeline (Alpha Version!)"))); };
87 QString version() {
return QString(
"1.0"); };
96 void initializePlugin();
101 QString rendererName() {
return QString(
"Alpha_Version_DepthPeeling");}
104 QString checkOpenGL();
106 void slotModeChanged( QAction * );
121 bool copyFrontDepth_;
148 void resize(
bool _dualPeeling,
unsigned int _width,
unsigned int _height);
159 GLuint singleDepthTex_[2];
160 GLuint singleFrontTex_[2];
161 GLuint singleBlendTex_;
170 GLuint dualDepthTex_[2];
171 GLuint dualFrontTex_[2];
172 GLuint dualBackTex_[2];
173 GLuint dualBlendTex_;
void addRenderObject(ACG::RenderObject *_renderObject)
overide addRenderObject function to include OIT check
Logtype
Log types for Message Window.
DrawMode DEFAULT
use the default (global) draw mode and not the node's own.
std::map< int, ViewerResources > viewerRes_
void renderDualPeeling(ACG::GLState *_glState, Viewer::ViewerProperties &_properties)
peel the scene with dual depth peeling, two layers per pass
GLSL::Program * peelBlendDual_
dual depth peeling shaders
GLuint peelQueryID_
occlusion query determining end of peeling (last layer)
void initDepthPeeling()
Allocate framebuffers and load shaders for depth-peeling.
GLSL::Program * peelFinal_
final copy into back-buffer
int maxPeelCount_
max peel count
GLSL::Program * peelBlend_
blends one depth-layer into the current scene target
Interface class from which all plugins have to be created.
void initDualDepthPeeling()
Allocate framebuffers and load shaders for dual-depth-peeling.
Interface for all Plugins which do logging to the logging window of the framework.
int peelMode_
mode: 0 -> front to back peeling, 1 -> dual peeling
QString renderObjectsInfo(bool _outputShaderInfo)
Return a qstring of the current render objects.
Interface to add additional rendering functions from within plugins.
Collection of framebuffers for each viewport.
void renderFrontPeeling(ACG::GLState *_glState, Viewer::ViewerProperties &_properties)
peel the scene from front to back, one layer per pass
QString description()
Return a description of what the plugin is doing.
QAction * optionsAction()
Return options menu.
Interface class between scenegraph and renderer.
QString name()
Return a name for the plugin.
unsigned int width_
viewer window width
unsigned int height_
viewer window height