Blender
V5.0
source
blender
draw
engines
eevee
eevee_uniform_shared.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
8
9
#pragma once
10
11
#include "
eevee_camera_shared.hh
"
12
#include "
eevee_film_shared.hh
"
13
#include "
eevee_hizbuffer_shared.hh
"
14
#include "
eevee_raytrace_shared.hh
"
15
#include "
eevee_renderbuffers_shared.hh
"
16
#include "
eevee_subsurface_shared.hh
"
17
#include "
eevee_volume_shared.hh
"
18
19
#ifndef GPU_SHADER
20
namespace
blender::eevee
{
21
#endif
22
23
/* This should be inside "eevee_light_shared.hh" but it would pull a huge header that is not
24
* essential for most shaders. This could be moved back if including "eevee_bxdf_lib.glsl" is used
25
* only for shading shaders. */
26
enum
LightingType
: uint32_t {
27
LIGHT_DIFFUSE
= 0u,
28
LIGHT_SPECULAR
= 1u,
29
LIGHT_TRANSMISSION
= 2u,
30
LIGHT_VOLUME
= 3u,
31
/* WORKAROUND: Special value used to tag translucent BSDF with thickness.
32
* Fall back to LIGHT_DIFFUSE. */
33
LIGHT_TRANSLUCENT_WITH_THICKNESS
= 4u,
34
};
35
36
struct
ShadowSceneData
{
37
/* Number of shadow rays to shoot for each light. */
38
int
ray_count
;
39
/* Number of shadow samples to take for each shadow ray. */
40
int
step_count
;
41
/* Bounding radius for a film pixel at 1 unit from the camera. */
42
float
film_pixel_radius
;
43
/* Global switch for jittered shadows. */
44
bool32_t
use_jitter
;
45
};
46
BLI_STATIC_ASSERT_ALIGN
(
ShadowSceneData
, 16)
47
48
/* Light Clamping. */
49
struct
ClampData
{
50
float
sun_threshold
;
51
float
surface_direct
;
52
float
surface_indirect
;
53
float
volume_direct
;
54
float
volume_indirect
;
55
float
_pad0
;
56
float
_pad1
;
57
float
_pad2
;
58
};
59
BLI_STATIC_ASSERT_ALIGN
(
ClampData
, 16)
60
61
struct
PipelineInfoData
{
62
float
alpha_hash_scale
;
63
bool32_t
is_sphere_probe
;
64
/* WORKAROUND: Usually we would use imageSize to get the number of layers and get this id.
65
* However, some implementation return the number of layers from the base texture instead of the
66
* texture view (see #146132). So we always pass the correct layer index manually to avoid any
67
* platform inconsistency. */
68
int
gbuffer_additional_data_layer_id
;
69
float
_pad2
;
70
};
71
BLI_STATIC_ASSERT_ALIGN
(
PipelineInfoData
, 16)
72
73
/* Combines data from several modules to avoid wasting binding slots. */
74
struct
UniformData
{
75
AOData
ao
;
76
CameraData
camera
;
77
ClampData
clamp
;
78
FilmData
film
;
79
HiZData
hiz
;
80
RayTraceData
raytrace
;
81
RenderBuffersInfoData
render_pass
;
82
ShadowSceneData
shadow
;
83
SubsurfaceData
subsurface
;
84
VolumesInfoData
volumes
;
85
PipelineInfoData
pipeline
;
86
};
87
BLI_STATIC_ASSERT_ALIGN
(
UniformData
, 16)
88
89
92
struct
ClipPlaneData
{
93
float4
plane
;
94
};
95
BLI_STATIC_ASSERT_ALIGN
(
ClipPlaneData
, 16)
96
97
#ifndef GPU_SHADER
98
}
// namespace blender::eevee
99
#endif
BLI_STATIC_ASSERT_ALIGN
#define BLI_STATIC_ASSERT_ALIGN(st, align)
Definition
BLI_assert.h:86
bool32_t
int32_t bool32_t
Definition
GPU_shader_shared_utils.hh:83
eevee_camera_shared.hh
eevee_film_shared.hh
eevee_hizbuffer_shared.hh
eevee_raytrace_shared.hh
eevee_renderbuffers_shared.hh
eevee_subsurface_shared.hh
eevee_volume_shared.hh
blender::eevee
Definition
eevee_ambient_occlusion.cc:29
blender::eevee::LightingType
LightingType
Definition
eevee_uniform_shared.hh:26
blender::eevee::LIGHT_DIFFUSE
@ LIGHT_DIFFUSE
Definition
eevee_uniform_shared.hh:27
blender::eevee::LIGHT_TRANSLUCENT_WITH_THICKNESS
@ LIGHT_TRANSLUCENT_WITH_THICKNESS
Definition
eevee_uniform_shared.hh:33
blender::eevee::LIGHT_TRANSMISSION
@ LIGHT_TRANSMISSION
Definition
eevee_uniform_shared.hh:29
blender::eevee::LIGHT_VOLUME
@ LIGHT_VOLUME
Definition
eevee_uniform_shared.hh:30
blender::eevee::LIGHT_SPECULAR
@ LIGHT_SPECULAR
Definition
eevee_uniform_shared.hh:28
blender::float4
VecBase< float, 4 > float4
Definition
BLI_math_vector_types.hh:620
blender::eevee::AOData
Definition
eevee_raytrace_shared.hh:50
blender::eevee::CameraData
Definition
eevee_camera_shared.hh:31
blender::eevee::ClampData
Definition
eevee_uniform_shared.hh:49
blender::eevee::ClampData::sun_threshold
float sun_threshold
Definition
eevee_uniform_shared.hh:50
blender::eevee::ClampData::_pad2
float _pad2
Definition
eevee_uniform_shared.hh:57
blender::eevee::ClampData::volume_indirect
float volume_indirect
Definition
eevee_uniform_shared.hh:54
blender::eevee::ClampData::surface_direct
float surface_direct
Definition
eevee_uniform_shared.hh:51
blender::eevee::ClampData::_pad0
float _pad0
Definition
eevee_uniform_shared.hh:55
blender::eevee::ClampData::surface_indirect
float surface_indirect
Definition
eevee_uniform_shared.hh:52
blender::eevee::ClampData::volume_direct
float volume_direct
Definition
eevee_uniform_shared.hh:53
blender::eevee::ClampData::_pad1
float _pad1
Definition
eevee_uniform_shared.hh:56
blender::eevee::ClipPlaneData
Definition
eevee_uniform_shared.hh:92
blender::eevee::ClipPlaneData::plane
float4 plane
Definition
eevee_uniform_shared.hh:93
blender::eevee::FilmData
Definition
eevee_film_shared.hh:48
blender::eevee::HiZData
Definition
eevee_hizbuffer_shared.hh:17
blender::eevee::PipelineInfoData
Definition
eevee_uniform_shared.hh:61
blender::eevee::PipelineInfoData::_pad2
float _pad2
Definition
eevee_uniform_shared.hh:69
blender::eevee::PipelineInfoData::alpha_hash_scale
float alpha_hash_scale
Definition
eevee_uniform_shared.hh:62
blender::eevee::PipelineInfoData::is_sphere_probe
bool32_t is_sphere_probe
Definition
eevee_uniform_shared.hh:63
blender::eevee::PipelineInfoData::gbuffer_additional_data_layer_id
int gbuffer_additional_data_layer_id
Definition
eevee_uniform_shared.hh:68
blender::eevee::RayTraceData
Definition
eevee_raytrace_shared.hh:17
blender::eevee::RenderBuffersInfoData
Definition
eevee_renderbuffers_shared.hh:37
blender::eevee::ShadowSceneData
Definition
eevee_uniform_shared.hh:36
blender::eevee::ShadowSceneData::use_jitter
bool32_t use_jitter
Definition
eevee_uniform_shared.hh:44
blender::eevee::ShadowSceneData::ray_count
int ray_count
Definition
eevee_uniform_shared.hh:38
blender::eevee::ShadowSceneData::step_count
int step_count
Definition
eevee_uniform_shared.hh:40
blender::eevee::ShadowSceneData::film_pixel_radius
float film_pixel_radius
Definition
eevee_uniform_shared.hh:42
blender::eevee::SubsurfaceData
Definition
eevee_subsurface_shared.hh:26
blender::eevee::UniformData
Definition
eevee_uniform_shared.hh:74
blender::eevee::UniformData::volumes
VolumesInfoData volumes
Definition
eevee_uniform_shared.hh:84
blender::eevee::UniformData::subsurface
SubsurfaceData subsurface
Definition
eevee_uniform_shared.hh:83
blender::eevee::UniformData::raytrace
RayTraceData raytrace
Definition
eevee_uniform_shared.hh:80
blender::eevee::UniformData::clamp
ClampData clamp
Definition
eevee_uniform_shared.hh:77
blender::eevee::UniformData::shadow
ShadowSceneData shadow
Definition
eevee_uniform_shared.hh:82
blender::eevee::UniformData::render_pass
RenderBuffersInfoData render_pass
Definition
eevee_uniform_shared.hh:81
blender::eevee::UniformData::pipeline
PipelineInfoData pipeline
Definition
eevee_uniform_shared.hh:85
blender::eevee::UniformData::hiz
HiZData hiz
Definition
eevee_uniform_shared.hh:79
blender::eevee::UniformData::film
FilmData film
Definition
eevee_uniform_shared.hh:78
blender::eevee::UniformData::ao
AOData ao
Definition
eevee_uniform_shared.hh:75
blender::eevee::UniformData::camera
CameraData camera
Definition
eevee_uniform_shared.hh:76
blender::eevee::VolumesInfoData
Definition
eevee_volume_shared.hh:17
Generated on
for Blender by
doxygen
1.16.1