QGIS API Documentation 3.43.0-Master (32433f7016e)
qgspostprocessingentity.h
Go to the documentation of this file.
1/***************************************************************************
2 qgspostprocessingentity.h
3 --------------------------------------
4 Date : August 2020
5 Copyright : (C) 2020 by Belgacem Nedjima
6 Email : gb underscore nedjima at esi dot dz
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSPOSTPROCESSINGENTITY_H
17#define QGSPOSTPROCESSINGENTITY_H
18
19#include "qgsrenderpassquad.h"
20
21class QgsFrameGraph;
24
25#define SIP_NO_FILE
26
36{
37 Q_OBJECT
38
39 public:
41 QgsPostprocessingEntity( QgsFrameGraph *frameGraph, Qt3DRender::QLayer *layer, QNode *parent = nullptr );
43 void setupShadowRenderingExtent( float minX, float maxX, float minY, float maxY );
45 void setupDirectionalLight( QVector3D position, QVector3D direction );
47 void setShadowRenderingEnabled( bool enabled );
49 void setShadowBias( float shadowBias );
51 void setEyeDomeLightingEnabled( bool enabled );
53 void setEyeDomeLightingStrength( double strength );
55 void setEyeDomeLightingDistance( int distance );
56
61 void updateShadowSettings( const QgsDirectionalLightSettings &light, float maximumShadowRenderingDistance );
62
67 void setAmbientOcclusionEnabled( bool enabled );
68
69 private:
70 Qt3DRender::QCamera *mMainCamera = nullptr;
71
72 Qt3DRender::QParameter *mColorTextureParameter = nullptr;
73 Qt3DRender::QParameter *mDepthTextureParameter = nullptr;
74 Qt3DRender::QParameter *mShadowMapParameter = nullptr;
75 Qt3DRender::QParameter *mAmbientOcclusionTextureParameter = nullptr;
76 Qt3DRender::QParameter *mFarPlaneParameter = nullptr;
77 Qt3DRender::QParameter *mNearPlaneParameter = nullptr;
78 Qt3DRender::QParameter *mMainCameraInvViewMatrixParameter = nullptr;
79 Qt3DRender::QParameter *mMainCameraInvProjMatrixParameter = nullptr;
80
81 Qt3DRender::QCamera *mLightCamera = nullptr;
82 Qt3DRender::QParameter *mLightFarPlaneParameter = nullptr;
83 Qt3DRender::QParameter *mLightNearPlaneParameter = nullptr;
84
85 Qt3DRender::QParameter *mLightPosition = nullptr;
86 Qt3DRender::QParameter *mLightDirection = nullptr;
87
88 Qt3DRender::QParameter *mShadowMinX = nullptr;
89 Qt3DRender::QParameter *mShadowMaxX = nullptr;
90 Qt3DRender::QParameter *mShadowMinY = nullptr;
91 Qt3DRender::QParameter *mShadowMaxY = nullptr;
92
93 Qt3DRender::QParameter *mRenderShadowsParameter = nullptr;
94 Qt3DRender::QParameter *mShadowBiasParameter = nullptr;
95 Qt3DRender::QParameter *mEyeDomeLightingEnabledParameter = nullptr;
96 Qt3DRender::QParameter *mEyeDomeLightingStrengthParameter = nullptr;
97 Qt3DRender::QParameter *mEyeDomeLightingDistanceParameter = nullptr;
98
99 Qt3DRender::QParameter *mAmbientOcclusionEnabledParameter = nullptr;
100};
101
102#endif // QGSPOSTPROCESSINGENTITY_H
Definition of a directional light in a 3D map scene.
Container class that holds different objects related to frame graphs of 3D scenes.
An entity that is responsible for applying post processing effects.
void setupShadowRenderingExtent(float minX, float maxX, float minY, float maxY)
Sets the parts of the scene where objects cast shadows.
void setAmbientOcclusionEnabled(bool enabled)
Sets whether screen space ambient occlusion is enabled.
void setShadowRenderingEnabled(bool enabled)
Sets whether shadow rendering is enabled.
void updateShadowSettings(const QgsDirectionalLightSettings &light, float maximumShadowRenderingDistance)
Sets shadow rendering to use a directional light.
void setEyeDomeLightingDistance(int distance)
Sets the eye dome lighting distance (contributes to the contrast of the image)
void setShadowBias(float shadowBias)
Sets the shadow bias value.
void setEyeDomeLightingStrength(double strength)
Sets the eye dome lighting strength.
void setupDirectionalLight(QVector3D position, QVector3D direction)
Sets up a directional light that is used to render shadows.
void setEyeDomeLightingEnabled(bool enabled)
Sets whether eye dome lighting is enabled.
An entity that is responsible for rendering a screen quad for a specific rendering pass.
Container class that holds different objects related to shadow rendering.