QGIS API Documentation 3.99.0-Master (a8f284845db)
Loading...
Searching...
No Matches
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 Qt3DCore
24{
25 class QEntity;
26} //namespace Qt3DCore
27
28namespace Qt3DRender
29{
30 class QCamera;
31 class QCameraSelector;
32 class QLayer;
33 class QLayerFilter;
34 class QRenderSettings;
35 class QRenderTarget;
36 class QRenderTargetSelector;
37 class QSubtreeEnabler;
38 class QTexture2D;
39} //namespace Qt3DRender
40
43
58{
59 public:
61 QgsAmbientOcclusionRenderView( const QString &viewName, Qt3DRender::QCamera *mainCamera, QSize mSize, Qt3DRender::QTexture2D *forwardDepthTexture, Qt3DCore::QEntity *rootSceneEntity );
62
64 void setIntensity( float intensity );
65
67 void setRadius( float radius );
68
70 void setThreshold( float threshold );
71
73 Qt3DRender::QTexture2D *blurredFactorMapTexture() const;
74
75 void updateWindowResize( int width, int height ) override;
76 void setEnabled( bool enable ) override;
77
78 private:
79 Qt3DRender::QLayer *mAOPassLayer = nullptr;
80 Qt3DRender::QTexture2D *mAOPassTexture = nullptr;
81 Qt3DRender::QTexture2D *mBlurPassTexture = nullptr;
82 Qt3DRender::QLayer *mBlurPassLayer = nullptr;
83
84 QgsAmbientOcclusionRenderEntity *mAmbientOcclusionRenderEntity = nullptr;
85 QgsAmbientOcclusionBlurEntity *mAmbientOcclusionBlurEntity = nullptr;
86
87 void buildRenderPasses( QSize mSize, Qt3DRender::QTexture2D *forwardDepthTexture, Qt3DCore::QEntity *rootSceneEntity, Qt3DRender::QCamera *mainCamera );
88
92 Qt3DRender::QRenderTarget *buildAOTexture( QSize mSize );
93
97 Qt3DRender::QRenderTarget *buildBlurTexture( QSize mSize );
98};
99
100#endif // QGSAMBIENTOCCLUSIONRENDERVIEW_H
QgsAbstractRenderView(const QString &viewName)
Constructor for QgsAbstractRenderView with the specified parent object.
An entity that is responsible for blurring the ambient occlusion factor texture.
An entity that is responsible for producing an ambient occlusion factor map.
void setRadius(float radius)
Delegates to QgsAmbientOcclusionRenderEntity::setRadius.
void setEnabled(bool enable) override
Enable or disable via enable the render view sub tree.
void updateWindowResize(int width, int height) override
Called when 3D window is resized.
QgsAmbientOcclusionRenderView(const QString &viewName, Qt3DRender::QCamera *mainCamera, QSize mSize, Qt3DRender::QTexture2D *forwardDepthTexture, Qt3DCore::QEntity *rootSceneEntity)
Default constructor.
void setIntensity(float intensity)
Delegates to QgsAmbientOcclusionRenderEntity::setIntensity.
void setThreshold(float threshold)
Delegates to QgsAmbientOcclusionRenderEntity::setThreshold.
Qt3DRender::QTexture2D * blurredFactorMapTexture() const
Returns blur pass texture.