Blender
V4.3
source
blender
draw
engines
eevee_next
eevee_lookdev.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2023 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
12
#pragma once
13
14
#include "
DNA_world_types.h
"
15
16
namespace
blender::eevee
{
17
18
class
Instance
;
19
class
LookdevView;
20
21
/* -------------------------------------------------------------------- */
27
struct
LookdevParameters
{
28
std::string
hdri
;
29
float
rot_z
= 0.0f;
30
float
background_opacity
= 0.0f;
31
float
intensity = 1.0f;
32
float
blur = 0.0f;
33
bool
show_scene_world
=
true
;
34
35
LookdevParameters
();
36
LookdevParameters
(const ::View3D *v3d);
37
bool
operator==
(
const
LookdevParameters
&other)
const
;
38
bool
operator!=
(
const
LookdevParameters
&other)
const
;
39
};
40
43
/* -------------------------------------------------------------------- */
49
class
LookdevWorld
{
50
private
:
51
bNode
*environment_node_ =
nullptr
;
52
bNodeSocketValueFloat
*intensity_socket_ =
nullptr
;
53
bNodeSocketValueFloat
*angle_socket_ =
nullptr
;
54
::Image
image = {};
55
::World
world = {};
56
57
LookdevParameters
parameters_;
58
59
public
:
60
LookdevWorld
();
61
~LookdevWorld
();
62
63
/* Returns true if an update was detected. */
64
bool
sync
(
const
LookdevParameters
&new_parameters);
65
66
::World
*
world_get
()
67
{
68
return
&world;
69
}
70
71
float
background_opacity_get
()
const
72
{
73
return
parameters_.
background_opacity
;
74
}
75
76
float
background_blur_get
()
const
77
{
78
return
parameters_.
blur
;
79
}
80
81
float
intensity_get
()
const
82
{
83
return
parameters_.
intensity
;
84
}
85
};
86
89
/* -------------------------------------------------------------------- */
94
class
LookdevModule
{
95
private
:
96
Instance
&inst_;
97
98
bool
enabled_;
99
100
static
constexpr
int
num_spheres = 2;
101
102
/* Size and position of the look-dev spheres in world space. */
103
float
sphere_radius_;
104
float3
sphere_position_;
105
106
rcti
visible_rect_;
107
108
/* Dummy textures: required to reuse forward mesh shader and avoid another shader variation. */
109
Texture
dummy_cryptomatte_tx_;
110
Texture
dummy_aov_color_tx_;
111
Texture
dummy_aov_value_tx_;
112
113
struct
Sphere {
114
Framebuffer
framebuffer = {
"Lookdev.Framebuffer"
};
115
Texture
color_tx_ = {
"Lookdev.Color"
};
116
PassSimple
pass = {
"Lookdev.Sphere"
};
117
};
118
119
Sphere spheres_[num_spheres];
120
PassSimple
display_ps_ = {
"Lookdev.Display"
};
121
122
public
:
123
LookdevModule
(
Instance
&inst);
124
~LookdevModule
();
125
126
void
init
(
const
rcti
*visible_rect);
127
void
sync
();
128
129
void
draw
(
View
&view);
130
131
void
display
();
132
133
private
:
134
void
sync_pass(
PassSimple
&pass, gpu::Batch *geom,
::Material
*mat,
ResourceHandle
res_handle);
135
void
sync_display();
136
137
float
calc_viewport_scale();
138
139
friend
class
LookdevView
;
140
};
141
144
}
// namespace blender::eevee
DNA_world_types.h
init
void init()
blender::draw::Framebuffer
Definition
DRW_gpu_wrapper.hh:1196
blender::draw::Texture
Definition
DRW_gpu_wrapper.hh:526
blender::draw::View
Definition
draw_view.hh:34
blender::draw::detail::Pass< command::DrawCommandBuf >
blender::draw::overlay::Instance
Definition
overlay_next_instance.hh:52
blender::eevee::Instance
A running instance of the engine.
Definition
eevee_instance.hh:68
blender::eevee::LookdevModule
Definition
eevee_lookdev.hh:94
blender::eevee::LookdevModule::display
void display()
Definition
eevee_lookdev.cc:277
blender::eevee::LookdevModule::sync
void sync()
Definition
eevee_lookdev.cc:173
blender::eevee::LookdevModule::~LookdevModule
~LookdevModule()
Definition
eevee_lookdev.cc:129
blender::eevee::LookdevModule::draw
void draw(View &view)
Definition
eevee_lookdev.cc:266
blender::eevee::LookdevModule::LookdevModule
LookdevModule(Instance &inst)
Definition
eevee_lookdev.cc:127
blender::eevee::LookdevView
Definition
eevee_view.hh:174
blender::eevee::LookdevWorld
Definition
eevee_lookdev.hh:49
blender::eevee::LookdevWorld::background_blur_get
float background_blur_get() const
Definition
eevee_lookdev.hh:76
blender::eevee::LookdevWorld::background_opacity_get
float background_opacity_get() const
Definition
eevee_lookdev.hh:71
blender::eevee::LookdevWorld::LookdevWorld
LookdevWorld()
Definition
eevee_lookdev.cc:28
blender::eevee::LookdevWorld::sync
bool sync(const LookdevParameters &new_parameters)
Definition
eevee_lookdev.cc:92
blender::eevee::LookdevWorld::~LookdevWorld
~LookdevWorld()
Definition
eevee_lookdev.cc:86
blender::eevee::LookdevWorld::world_get
::World * world_get()
Definition
eevee_lookdev.hh:66
blender::eevee::LookdevWorld::intensity_get
float intensity_get() const
Definition
eevee_lookdev.hh:81
blender::eevee
Definition
eevee_ambient_occlusion.cc:31
Image
Definition
DNA_image_types.h:142
Material
Definition
DNA_material_types.h:164
World
Definition
DNA_world_types.h:26
bNodeSocketValueFloat
Definition
DNA_node_types.h:898
bNode
Definition
DNA_node_types.h:357
blender::VecBase< float, 3 >
blender::draw::ResourceHandle
Definition
draw_handle.hh:29
blender::eevee::LookdevParameters
Definition
eevee_lookdev.hh:27
blender::eevee::LookdevParameters::show_scene_world
bool show_scene_world
Definition
eevee_lookdev.hh:33
blender::eevee::LookdevParameters::operator==
bool operator==(const LookdevParameters &other) const
Definition
eevee_lookdev.cc:318
blender::eevee::LookdevParameters::background_opacity
float background_opacity
Definition
eevee_lookdev.hh:30
blender::eevee::LookdevParameters::hdri
std::string hdri
Definition
eevee_lookdev.hh:28
blender::eevee::LookdevParameters::intensity
float intensity
Definition
eevee_lookdev.hh:31
blender::eevee::LookdevParameters::blur
float blur
Definition
eevee_lookdev.hh:32
blender::eevee::LookdevParameters::operator!=
bool operator!=(const LookdevParameters &other) const
Definition
eevee_lookdev.cc:325
blender::eevee::LookdevParameters::LookdevParameters
LookdevParameters()
Definition
eevee_lookdev.cc:298
blender::eevee::LookdevParameters::rot_z
float rot_z
Definition
eevee_lookdev.hh:29
rcti
Definition
DNA_vec_types.h:68
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0