QGIS API Documentation 3.43.0-Master (0cdc48caa8d)
qgsambientocclusionrenderview.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsambientocclusionrenderview.h
3 --------------------------------------
4 Date : June 2024
5 Copyright : (C) 2024 by Benoit De Mezzo and (C) 2020 by Belgacem Nedjima
6 Email : benoit dot de dot mezzo at oslandia dot com
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 QGSAMBIENTOCCLUSIONRENDERVIEW_H
17#define QGSAMBIENTOCCLUSIONRENDERVIEW_H
18
20
21#define SIP_NO_FILE
22
23namespace Qt3DRender
24{
25 class QRenderSettings;
26 class QLayer;
27 class QSubtreeEnabler;
28 class QTexture2D;
29 class QCamera;
30 class QCameraSelector;
31 class QLayerFilter;
32 class QRenderTargetSelector;
33 class QRenderTarget;
34} //namespace Qt3DRender
35
36namespace Qt3DCore
37{
38 class QEntity;
39} //namespace Qt3DCore
40
43
57{
58 public:
60 QgsAmbientOcclusionRenderView( const QString &viewName, Qt3DRender::QCamera *mainCamera, QSize mSize, Qt3DRender::QTexture2D *forwardDepthTexture, Qt3DCore::QEntity *rootSceneEntity );
61
63 void setIntensity( float intensity );
64
66 void setRadius( float radius );
67
69 void setThreshold( float threshold );
70
72 Qt3DRender::QTexture2D *blurredFactorMapTexture() const;
73
74 virtual void updateWindowResize( int width, int height ) override;
75 virtual void setEnabled( bool enable ) override;
76
77 private:
78 Qt3DRender::QLayer *mAOPassLayer = nullptr;
79 Qt3DRender::QTexture2D *mAOPassTexture = nullptr;
80 Qt3DRender::QTexture2D *mBlurPassTexture = nullptr;
81 Qt3DRender::QLayer *mBlurPassLayer = nullptr;
82
83 QgsAmbientOcclusionRenderEntity *mAmbientOcclusionRenderEntity = nullptr;
84 QgsAmbientOcclusionBlurEntity *mAmbientOcclusionBlurEntity = nullptr;
85
86 void buildRenderPasses( QSize mSize, Qt3DRender::QTexture2D *forwardDepthTexture, Qt3DCore::QEntity *rootSceneEntity, Qt3DRender::QCamera *mainCamera );
87
91 Qt3DRender::QRenderTarget *buildAOTexture( QSize mSize );
92
96 Qt3DRender::QRenderTarget *buildBlurTexture( QSize mSize );
97};
98
99#endif // QGSAMBIENTOCCLUSIONRENDERVIEW_H
Base class for 3D render view.
An entity that is responsible for blurring the ambient occlusion factor texture.
An entity that is responsible for producing an ambient occlusion factor map.
Container class that holds different objects related to ambient occlusion rendering.
void setRadius(float radius)
Delegates to QgsAmbientOcclusionRenderEntity::setRadius.
virtual void setEnabled(bool enable) override
Enable or disable via enable the render view sub tree.
virtual void updateWindowResize(int width, int height) override
Called when 3D window is resized.
void setIntensity(float intensity)
Delegates to QgsAmbientOcclusionRenderEntity::setIntensity.
void setThreshold(float threshold)
Delegates to QgsAmbientOcclusionRenderEntity::setThreshold.
Qt3DRender::QTexture2D * blurredFactorMapTexture() const
Returns blur pass texture.