Blender
V4.3
source
blender
draw
engines
eevee_next
eevee_view.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2021 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
17
#pragma once
18
19
#include "
DRW_render.hh
"
20
21
#include "
eevee_camera.hh
"
22
#include "
eevee_pipeline.hh
"
23
#include "
eevee_shader.hh
"
24
#include "
eevee_velocity.hh
"
25
26
namespace
blender::eevee
{
27
28
class
Instance
;
29
30
/* -------------------------------------------------------------------- */
36
class
ShadingView
{
37
private
:
38
Instance
&inst_;
40
const
char
*name_;
42
const
float4x4
&face_matrix_;
43
45
RayTraceBuffer
rt_buffer_opaque_;
46
RayTraceBuffer
rt_buffer_refract_;
47
DepthOfFieldBuffer
dof_buffer_;
48
49
Framebuffer
prepass_fb_ = {
"prepass_fb_"
};
50
Framebuffer
combined_fb_ = {
"combined_fb_"
};
51
Framebuffer
gbuffer_fb_ = {
"gbuffer_fb_"
};
52
Framebuffer
transparent_fb_ = {
"transparent"
};
53
TextureFromPool
postfx_tx_;
54
56
View
main_view_ = {
"main_view"
};
59
View
jitter_view_ = {
"jitter_view"
};
61
View
render_view_;
62
64
int2
extent_ = {-1, -1};
65
66
bool
is_enabled_ =
false
;
67
68
public
:
69
ShadingView
(
Instance
&inst,
const
char
*name,
const
float4x4
&face_matrix)
70
: inst_(inst), name_(name), face_matrix_(face_matrix), render_view_(name){};
71
72
~ShadingView
(){};
73
74
void
init
();
75
76
void
sync
();
77
78
void
render
();
79
80
private
:
81
void
render_transparent_pass(
RenderBuffers
&rbufs);
82
83
GPUTexture *render_postfx(GPUTexture *
input_tx
);
84
85
void
update_view();
86
};
87
90
/* -------------------------------------------------------------------- */
98
class
MainView
{
99
private
:
100
/* WORKAROUND: Defining this as an array does not seems to work on GCC < 9.4.
101
* It tries to use the copy constructor and fails because ShadingView is non-copyable and
102
* non-movable. */
103
ShadingView
shading_views_0;
104
ShadingView
shading_views_1;
105
ShadingView
shading_views_2;
106
ShadingView
shading_views_3;
107
ShadingView
shading_views_4;
108
ShadingView
shading_views_5;
109
#define shading_views_ (&shading_views_0)
110
111
public
:
112
MainView
(
Instance
&inst)
113
: shading_views_0(inst,
"posX_view"
,
cubeface_mat
(0)),
114
shading_views_1(inst,
"negX_view"
,
cubeface_mat
(1)),
115
shading_views_2(inst,
"posY_view"
,
cubeface_mat
(2)),
116
shading_views_3(inst,
"negY_view"
,
cubeface_mat
(3)),
117
shading_views_4(inst,
"posZ_view"
,
cubeface_mat
(4)),
118
shading_views_5(inst,
"negZ_view"
,
cubeface_mat
(5))
119
{
120
}
121
122
void
init
()
123
{
124
for
(
auto
i :
IndexRange
(6)) {
125
shading_views_
[i].init();
126
}
127
}
128
129
void
sync
()
130
{
131
for
(
auto
i :
IndexRange
(6)) {
132
shading_views_
[i].sync();
133
}
134
}
135
136
void
render
()
137
{
138
for
(
auto
i :
IndexRange
(6)) {
139
shading_views_
[i].render();
140
}
141
}
142
143
#undef shading_views_
144
};
145
148
/* -------------------------------------------------------------------- */
154
class
CaptureView
{
155
private
:
156
Instance
&inst_;
157
Framebuffer
combined_fb_ = {
"Capture.Combined"
};
158
Framebuffer
gbuffer_fb_ = {
"Capture.Gbuffer"
};
159
160
public
:
161
CaptureView
(
Instance
&inst) : inst_(inst) {}
162
void
render_world
();
163
void
render_probes
();
164
};
165
168
/* -------------------------------------------------------------------- */
174
class
LookdevView
{
175
private
:
176
Instance
&inst_;
177
178
View
view_ = {
"Lookdev.View"
};
179
180
public
:
181
LookdevView
(
Instance
&inst) : inst_(inst) {}
182
void
render
();
183
};
184
187
}
// namespace blender::eevee
DRW_render.hh
blender::IndexRange
Definition
BLI_index_range.hh:50
blender::draw::Framebuffer
Definition
DRW_gpu_wrapper.hh:1196
blender::draw::TextureFromPool
Definition
DRW_gpu_wrapper.hh:1064
blender::draw::View
Definition
draw_view.hh:34
blender::draw::overlay::Instance
Definition
overlay_next_instance.hh:52
blender::eevee::CaptureView
Definition
eevee_view.hh:154
blender::eevee::CaptureView::CaptureView
CaptureView(Instance &inst)
Definition
eevee_view.hh:161
blender::eevee::CaptureView::render_probes
void render_probes()
Definition
eevee_view.cc:321
blender::eevee::CaptureView::render_world
void render_world()
Definition
eevee_view.cc:288
blender::eevee::Instance
A running instance of the engine.
Definition
eevee_instance.hh:68
blender::eevee::LookdevView
Definition
eevee_view.hh:174
blender::eevee::LookdevView::LookdevView
LookdevView(Instance &inst)
Definition
eevee_view.hh:181
blender::eevee::LookdevView::render
void render()
Definition
eevee_view.cc:388
blender::eevee::MainView
Definition
eevee_view.hh:98
blender::eevee::MainView::MainView
MainView(Instance &inst)
Definition
eevee_view.hh:112
blender::eevee::MainView::init
void init()
Definition
eevee_view.hh:122
blender::eevee::MainView::sync
void sync()
Definition
eevee_view.hh:129
blender::eevee::MainView::render
void render()
Definition
eevee_view.hh:136
blender::eevee::RenderBuffers
Definition
eevee_renderbuffers.hh:23
blender::eevee::ShadingView
Definition
eevee_view.hh:36
blender::eevee::ShadingView::~ShadingView
~ShadingView()
Definition
eevee_view.hh:72
blender::eevee::ShadingView::init
void init()
Definition
eevee_view.cc:31
blender::eevee::ShadingView::render
void render()
Definition
eevee_view.cc:75
blender::eevee::ShadingView::sync
void sync()
Definition
eevee_view.cc:33
blender::eevee::ShadingView::ShadingView
ShadingView(Instance &inst, const char *name, const float4x4 &face_matrix)
Definition
eevee_view.hh:69
input_tx
input_tx
Definition
compositor_kuwahara_info.hh:14
eevee_camera.hh
eevee_pipeline.hh
eevee_shader.hh
eevee_velocity.hh
shading_views_
#define shading_views_
Definition
eevee_view.hh:109
blender::eevee
Definition
eevee_ambient_occlusion.cc:31
blender::eevee::cubeface_mat
float4x4 cubeface_mat(int face)
Definition
eevee_camera.hh:17
blender::MatBase< float, 4, 4 >
blender::VecBase< int32_t, 2 >
blender::eevee::DepthOfFieldBuffer
Definition
eevee_depth_of_field.hh:32
blender::eevee::RayTraceBuffer
Definition
eevee_raytrace.hh:33
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0