QGIS API Documentation
4.3.0-Master (52aa6503bed)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
3d
framegraph
qgsbloomrenderview.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsbloomrenderview.h
3
--------------------------------------
4
Date : May 2026
5
Copyright : (C) 2026 by Nyall Dawson
6
Email : nyall dot dawson at gmail 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 QGSBLOOMRENDERVIEW_H
17
#define QGSBLOOMRENDERVIEW_H
18
19
#include "
qgsabstractrenderview.h
"
20
21
#include <QSize>
22
23
#define SIP_NO_FILE
24
25
class
QgsRenderPassQuad
;
26
27
namespace
Qt3DCore
28
{
29
class
QEntity;
30
}
//namespace Qt3DCore
31
32
namespace
Qt3DRender
33
{
34
class
QTexture2D;
35
class
QRenderStateSet;
36
class
QParameter;
37
}
//namespace Qt3DRender
38
39
class
QgsBloomDownsampleEntity
;
40
class
QgsBloomUpsampleEntity
;
41
62
class
QgsBloomRenderView
:
public
QgsAbstractRenderView
63
{
64
public
:
66
QgsBloomRenderView
(
const
QString &viewName, Qt3DRender::QTexture2D *sourceColorTexture,
const
QSize &size, Qt3DCore::QEntity *rootSceneEntity );
67
~QgsBloomRenderView
()
override
;
68
72
Qt3DRender::QTexture2D *
bloomTexture
()
const
;
73
79
void
setFilterRadius
(
float
radius );
80
84
void
setAspectRatio
(
float
ratio );
85
86
void
updateWindowResize
(
int
width,
int
height )
override
;
87
void
setEnabled
(
bool
enabled )
override
;
88
89
private
:
90
void
buildRenderPasses( Qt3DRender::QTexture2D *sourceTexture, Qt3DCore::QEntity *rootEntity );
91
92
// from https://learnopengl.com/Guest-Articles/2022/Phys.-Based-Bloom
93
// "You may go as small as you wish, though 5 or 6 is usually good enough" (Jorge Jimenez)
94
static
const
int
MIP_PASSES = 5;
95
96
QSize mBaseSize;
97
98
std::vector<Qt3DRender::QTexture2D *> mTextures;
99
100
Qt3DRender::QParameter *mFilterRadiusParameter =
nullptr
;
101
Qt3DRender::QParameter *mAspectRatioParameter =
nullptr
;
102
};
103
104
#endif
// QGSBLOOMRENDERVIEW_H
QgsAbstractRenderView::QgsAbstractRenderView
QgsAbstractRenderView(const QString &viewName)
Constructor for QgsAbstractRenderView with the specified parent object.
Definition
qgsabstractrenderview.cpp:21
QgsBloomDownsampleEntity
An entity responsible for applying a 13-tap downsample filter for physically based bloom.
Definition
qgsbloomdownsampleentity.h:40
QgsBloomRenderView::~QgsBloomRenderView
~QgsBloomRenderView() override
QgsBloomRenderView::QgsBloomRenderView
QgsBloomRenderView(const QString &viewName, Qt3DRender::QTexture2D *sourceColorTexture, const QSize &size, Qt3DCore::QEntity *rootSceneEntity)
Default constructor.
Definition
qgsbloomrenderview.cpp:40
QgsBloomRenderView::updateWindowResize
void updateWindowResize(int width, int height) override
Called when 3D window is resized.
Definition
qgsbloomrenderview.cpp:169
QgsBloomRenderView::setFilterRadius
void setFilterRadius(float radius)
Sets the bloom filter radius.
Definition
qgsbloomrenderview.cpp:61
QgsBloomRenderView::bloomTexture
Qt3DRender::QTexture2D * bloomTexture() const
Returns the texture containing the final bloom effect.
Definition
qgsbloomrenderview.cpp:56
QgsBloomRenderView::setAspectRatio
void setAspectRatio(float ratio)
Sets the aspect ratio of the view.
Definition
qgsbloomrenderview.cpp:66
QgsBloomRenderView::setEnabled
void setEnabled(bool enabled) override
Enable or disable via enable the render view sub tree.
Definition
qgsbloomrenderview.cpp:197
QgsBloomUpsampleEntity
An entity responsible for applying a 9-tap tent upsample filter for physically based bloom.
Definition
qgsbloomupsampleentity.h:39
QgsRenderPassQuad
An entity that is responsible for rendering a screen quad for a specific rendering pass.
Definition
qgsrenderpassquad.h:40
Qt3DCore
Definition
qgsabstract3drenderer.h:33
Qt3DRender
Definition
qgs3d.h:45
qgsabstractrenderview.h
Generated on
for QGIS API Documentation by
1.17.0