Blender V4.3
blender::eevee Namespace Reference

Namespaces

namespace  do_not_use
 
namespace  lut
 

Classes

class  AmbientOcclusion
 
struct  AOData
 
struct  AOVsInfoData
 
class  BackgroundPipeline
 
struct  BaseHandle
 
class  Camera
 
struct  CameraData
 
struct  CaptureInfoData
 
class  CapturePipeline
 
class  CaptureView
 
struct  ClampData
 
struct  ClipPlaneData
 
class  Cryptomatte
 
class  DefaultSurfaceNodeTree
 
class  DefaultWorldNodeTree
 
class  DeferredLayer
 
struct  DeferredLayerBase
 
class  DeferredPipeline
 
class  DeferredProbePipeline
 
class  DepthOfField
 
struct  DepthOfFieldBuffer
 
struct  DepthOfFieldData
 
class  Film
 
struct  FilmData
 
struct  FilmSample
 
class  ForwardPipeline
 
class  GBuffer
 
class  HiZBuffer
 
struct  HiZData
 
class  Instance
 A running instance of the engine. More...
 
class  IrradianceBake
 
struct  IrradianceBrick
 
struct  Light
 
class  LightBake
 
struct  LightCullingData
 
struct  LightLocalData
 
class  LightModule
 
struct  LightProbe
 
class  LightProbeModule
 
struct  LightSpotData
 
class  LookdevModule
 
struct  LookdevParameters
 
class  LookdevView
 
class  LookdevWorld
 
class  MainView
 
struct  Material
 
struct  MaterialArray
 
struct  MaterialKey
 
class  MaterialModule
 
struct  MaterialPass
 
struct  MotionBlurData
 
class  MotionBlurModule
 
struct  ObjectHandle
 
class  ObjectKey
 
struct  PipelineInfoData
 
class  PipelineModule
 
struct  PlanarProbe
 
struct  PlanarProbeData
 
struct  PlanarProbeDisplayData
 
class  PlanarProbeModule
 
class  PlanarProbePipeline
 
class  Precompute
 
struct  RayTraceBuffer
 
struct  RayTraceData
 
class  RayTraceModule
 
struct  RayTraceResult
 
class  RayTraceResultTexture
 
struct  ReflectionProbeLowFreqLight
 
class  RenderBuffers
 
struct  RenderBuffersInfoData
 
class  SamplerSlots
 
class  Sampling
 
struct  SamplingData
 
struct  ScatterRect
 
struct  SceneHandle
 
struct  ShaderKey
 
class  ShaderModule
 
class  ShadingView
 
class  ShadowDirectional
 
class  ShadowModule
 
struct  ShadowObject
 
struct  ShadowPagesInfoData
 
class  ShadowPipeline
 
class  ShadowPunctual
 
struct  ShadowRenderView
 
struct  ShadowSamplingTile
 
struct  ShadowSceneData
 
struct  ShadowStatistics
 
struct  ShadowTileData
 
struct  ShadowTileMap
 
struct  ShadowTileMapClip
 
struct  ShadowTileMapData
 
struct  ShadowTileMapPool
 
struct  SphereProbe
 
struct  SphereProbeAtlasCoord
 
struct  SphereProbeData
 
struct  SphereProbeDisplayData
 
struct  SphereProbeHarmonic
 
class  SphereProbeModule
 
struct  SphereProbePixelArea
 
struct  SphereProbeSunLight
 
struct  SphereProbeUvArea
 
struct  SubsurfaceData
 
struct  SubsurfaceModule
 
struct  Surfel
 
struct  SurfelListInfoData
 
struct  SurfelRadiance
 
class  SyncModule
 
struct  Transform
 
struct  UniformData
 
struct  UniformDataModule
 
class  UtilityTexture
 
struct  VelocityGeometryIndex
 
struct  VelocityIndex
 
class  VelocityModule
 
struct  VelocityObjectIndex
 
class  VolumeLayer
 
class  VolumeModule
 
struct  VolumeObjectBounds
 
class  VolumePipeline
 
struct  VolumeProbe
 
struct  VolumeProbeData
 
class  VolumeProbeModule
 
struct  VolumesInfoData
 
class  World
 
struct  WorldHandle
 
class  WorldPipeline
 
class  WorldVolumePipeline
 

Typedefs

using AOVsInfoDataBuf = draw::StorageBuffer<AOVsInfoData>
 
using CameraDataBuf = draw::UniformBuffer<CameraData>
 
using ClosureTileBuf = draw::StorageArrayBuffer<uint, 1024, true>
 
using DepthOfFieldDataBuf = draw::UniformBuffer<DepthOfFieldData>
 
using DepthOfFieldScatterListBuf = draw::StorageArrayBuffer<ScatterRect, 16, true>
 
using DrawIndirectBuf = draw::StorageBuffer<DrawCommand, true>
 
using DispatchIndirectBuf = draw::StorageBuffer<DispatchCommand>
 
using UniformDataBuf = draw::UniformBuffer<UniformData>
 
using VolumeProbeDataBuf = draw::UniformArrayBuffer<VolumeProbeData, IRRADIANCE_GRID_MAX>
 
using IrradianceBrickBuf = draw::StorageVectorBuffer<IrradianceBrickPacked, 16>
 
using LightCullingDataBuf = draw::StorageBuffer<LightCullingData>
 
using LightCullingKeyBuf = draw::StorageArrayBuffer<uint, LIGHT_CHUNK, true>
 
using LightCullingTileBuf = draw::StorageArrayBuffer<uint, LIGHT_CHUNK, true>
 
using LightCullingZbinBuf = draw::StorageArrayBuffer<uint, CULLING_ZBIN_COUNT, true>
 
using LightCullingZdistBuf = draw::StorageArrayBuffer<float, LIGHT_CHUNK, true>
 
using LightDataBuf = draw::StorageArrayBuffer<LightData, LIGHT_CHUNK>
 
using MotionBlurDataBuf = draw::UniformBuffer<MotionBlurData>
 
using MotionBlurTileIndirectionBuf = draw::StorageBuffer<MotionBlurTileIndirection, true>
 
using RayTraceTileBuf = draw::StorageArrayBuffer<uint, 1024, true>
 
using SubsurfaceTileBuf = RayTraceTileBuf
 
using SphereProbeDataBuf = draw::UniformArrayBuffer<SphereProbeData, SPHERE_PROBE_MAX>
 
using SphereProbeDisplayDataBuf = draw::StorageArrayBuffer<SphereProbeDisplayData>
 
using PlanarProbeDataBuf = draw::UniformArrayBuffer<PlanarProbeData, PLANAR_PROBE_MAX>
 
using PlanarProbeDisplayDataBuf = draw::StorageArrayBuffer<PlanarProbeDisplayData>
 
using SamplingDataBuf = draw::StorageBuffer<SamplingData>
 
using ShadowStatisticsBuf = draw::StorageBuffer<ShadowStatistics>
 
using ShadowPagesInfoDataBuf = draw::StorageBuffer<ShadowPagesInfoData>
 
using ShadowPageHeapBuf = draw::StorageVectorBuffer<uint, SHADOW_MAX_PAGE>
 
using ShadowPageCacheBuf = draw::StorageArrayBuffer<uint2, SHADOW_MAX_PAGE, true>
 
using ShadowTileMapDataBuf = draw::StorageVectorBuffer<ShadowTileMapData, SHADOW_MAX_TILEMAP>
 
using ShadowTileMapClipBuf = draw::StorageArrayBuffer<ShadowTileMapClip, SHADOW_MAX_TILEMAP, true>
 
using ShadowTileDataBuf = draw::StorageArrayBuffer<ShadowTileDataPacked, SHADOW_MAX_TILE, true>
 
using ShadowRenderViewBuf = draw::StorageArrayBuffer<ShadowRenderView, SHADOW_VIEW_MAX, true>
 
using SurfelBuf = draw::StorageArrayBuffer<Surfel, 64>
 
using SurfelRadianceBuf = draw::StorageArrayBuffer<SurfelRadiance, 64>
 
using CaptureInfoBuf = draw::StorageBuffer<CaptureInfoData>
 
using SurfelListInfoBuf = draw::StorageBuffer<SurfelListInfoData>
 
using VelocityGeometryBuf = draw::StorageArrayBuffer<float4, 16, true>
 
using VelocityIndexBuf = draw::StorageArrayBuffer<VelocityIndex, 16>
 
using VelocityObjectBuf = draw::StorageArrayBuffer<float4x4, 16>
 
using CryptomatteObjectBuf = draw::StorageArrayBuffer<float2, 16>
 
using ClipPlaneBuf = draw::UniformBuffer<ClipPlaneData>
 

Enumerations

enum  eShaderType {
  AMBIENT_OCCLUSION_PASS = 0 , FILM_COPY , FILM_COMP , FILM_CRYPTOMATTE_POST ,
  FILM_FRAG , FILM_PASS_CONVERT_COMBINED , FILM_PASS_CONVERT_DEPTH , FILM_PASS_CONVERT_VALUE ,
  FILM_PASS_CONVERT_COLOR , FILM_PASS_CONVERT_CRYPTOMATTE , DEFERRED_CAPTURE_EVAL , DEFERRED_COMBINE ,
  DEFERRED_LIGHT_SINGLE , DEFERRED_LIGHT_DOUBLE , DEFERRED_LIGHT_TRIPLE , DEFERRED_PLANAR_EVAL ,
  DEFERRED_THICKNESS_AMEND , DEFERRED_TILE_CLASSIFY , DEBUG_GBUFFER , DEBUG_SURFELS ,
  DEBUG_IRRADIANCE_GRID , DISPLAY_PROBE_VOLUME , DISPLAY_PROBE_SPHERE , DISPLAY_PROBE_PLANAR ,
  DOF_BOKEH_LUT , DOF_DOWNSAMPLE , DOF_FILTER , DOF_GATHER_BACKGROUND_LUT ,
  DOF_GATHER_BACKGROUND , DOF_GATHER_FOREGROUND_LUT , DOF_GATHER_FOREGROUND , DOF_GATHER_HOLE_FILL ,
  DOF_REDUCE , DOF_RESOLVE_LUT , DOF_RESOLVE , DOF_SCATTER ,
  DOF_SETUP , DOF_STABILIZE , DOF_TILES_DILATE_MINABS , DOF_TILES_DILATE_MINMAX ,
  DOF_TILES_FLATTEN , HIZ_UPDATE , HIZ_UPDATE_LAYER , HIZ_DEBUG ,
  HORIZON_DENOISE , HORIZON_RESOLVE , HORIZON_SCAN , HORIZON_SETUP ,
  LIGHT_CULLING_DEBUG , LIGHT_CULLING_SELECT , LIGHT_CULLING_SORT , LIGHT_CULLING_TILE ,
  LIGHT_CULLING_ZBIN , LIGHT_SHADOW_SETUP , LIGHTPROBE_IRRADIANCE_BOUNDS , LIGHTPROBE_IRRADIANCE_OFFSET ,
  LIGHTPROBE_IRRADIANCE_RAY , LIGHTPROBE_IRRADIANCE_LOAD , LIGHTPROBE_IRRADIANCE_WORLD , LOOKDEV_DISPLAY ,
  MOTION_BLUR_GATHER , MOTION_BLUR_TILE_DILATE , MOTION_BLUR_TILE_FLATTEN_RGBA , MOTION_BLUR_TILE_FLATTEN_RG ,
  RAY_DENOISE_BILATERAL , RAY_DENOISE_SPATIAL , RAY_DENOISE_TEMPORAL , RAY_GENERATE ,
  RAY_TILE_CLASSIFY , RAY_TILE_COMPACT , RAY_TRACE_FALLBACK , RAY_TRACE_PLANAR ,
  RAY_TRACE_SCREEN , RENDERPASS_CLEAR , SPHERE_PROBE_CONVOLVE , SPHERE_PROBE_IRRADIANCE ,
  SPHERE_PROBE_REMAP , SPHERE_PROBE_SELECT , SPHERE_PROBE_SUNLIGHT , SHADOW_CLIPMAP_CLEAR ,
  SHADOW_DEBUG , SHADOW_PAGE_ALLOCATE , SHADOW_PAGE_CLEAR , SHADOW_PAGE_DEFRAG ,
  SHADOW_PAGE_FREE , SHADOW_PAGE_MASK , SHADOW_PAGE_TILE_CLEAR , SHADOW_PAGE_TILE_STORE ,
  SHADOW_TILEMAP_AMEND , SHADOW_TILEMAP_BOUNDS , SHADOW_TILEMAP_FINALIZE , SHADOW_TILEMAP_RENDERMAP ,
  SHADOW_TILEMAP_INIT , SHADOW_TILEMAP_TAG_UPDATE , SHADOW_TILEMAP_TAG_USAGE_OPAQUE , SHADOW_TILEMAP_TAG_USAGE_SURFELS ,
  SHADOW_TILEMAP_TAG_USAGE_TRANSPARENT , SHADOW_TILEMAP_TAG_USAGE_VOLUME , SHADOW_VIEW_VISIBILITY , SUBSURFACE_CONVOLVE ,
  SUBSURFACE_SETUP , SURFEL_CLUSTER_BUILD , SURFEL_LIGHT , SURFEL_LIST_BUILD ,
  SURFEL_LIST_SORT , SURFEL_RAY , VERTEX_COPY , VOLUME_INTEGRATION ,
  VOLUME_OCCUPANCY_CONVERT , VOLUME_RESOLVE , VOLUME_SCATTER , VOLUME_SCATTER_WITH_LIGHTS ,
  MAX_SHADER_TYPE
}
 
enum  eCubeFace : uint32_t {
  Z_NEG = 0u , X_POS = 1u , X_NEG = 2u , Y_POS = 3u ,
  Y_NEG = 4u , Z_POS = 5u
}
 
enum class  ShadowTechnique { ATOMIC_RASTER = 0 , TILE_COPY = 1 }
 
Debug Mode
enum  eDebugMode : uint32_t {
  DEBUG_NONE = 0u , DEBUG_LIGHT_CULLING = 1u , DEBUG_HIZ_VALIDATION = 2u , DEBUG_IRRADIANCE_CACHE_SURFELS_NORMAL = 3u ,
  DEBUG_IRRADIANCE_CACHE_SURFELS_IRRADIANCE = 4u , DEBUG_IRRADIANCE_CACHE_SURFELS_VISIBILITY = 5u , DEBUG_IRRADIANCE_CACHE_SURFELS_CLUSTER = 6u , DEBUG_IRRADIANCE_CACHE_VIRTUAL_OFFSET = 7u ,
  DEBUG_IRRADIANCE_CACHE_VALIDITY = 8u , DEBUG_SHADOW_TILEMAPS = 10u , DEBUG_SHADOW_VALUES = 11u , DEBUG_SHADOW_TILE_RANDOM_COLOR = 12u ,
  DEBUG_SHADOW_TILEMAP_RANDOM_COLOR = 13u , DEBUG_GBUFFER_STORAGE = 14u , DEBUG_GBUFFER_EVALUATION = 15u , DEBUG_DOF_PLANES = 16u
}
 
Look-Up Table Generation
enum  PrecomputeType : uint32_t {
  LUT_GGX_BRDF_SPLIT_SUM = 0u , LUT_GGX_BTDF_IOR_GT_ONE = 1u , LUT_GGX_BSDF_SPLIT_SUM = 2u , LUT_BURLEY_SSS_PROFILE = 3u ,
  LUT_RANDOM_WALK_SSS_PROFILE = 4u
}
 
Light-probe Sphere
enum  LightProbeShape : uint32_t { SHAPE_ELIPSOID = 0u , SHAPE_CUBOID = 1u }
 
Ray-tracing
enum  eClosureBits : uint32_t {
  CLOSURE_NONE = 0u , CLOSURE_DIFFUSE = (1u << 0u) , CLOSURE_SSS = (1u << 1u) , CLOSURE_REFLECTION = (1u << 2u) ,
  CLOSURE_REFRACTION = (1u << 3u) , CLOSURE_TRANSLUCENT = (1u << 4u) , CLOSURE_TRANSPARENCY = (1u << 8u) , CLOSURE_EMISSION = (1u << 9u) ,
  CLOSURE_HOLDOUT = (1u << 10u) , CLOSURE_VOLUME = (1u << 11u) , CLOSURE_AMBIENT_OCCLUSION = (1u << 12u) , CLOSURE_SHADER_TO_RGBA = (1u << 13u) ,
  CLOSURE_CLEARCOAT = (1u << 14u) , CLOSURE_TRANSMISSION = CLOSURE_SSS | CLOSURE_REFRACTION | CLOSURE_TRANSLUCENT
}
 
enum  GBufferMode : uint32_t {
  GBUF_NONE = 0u , GBUF_DIFFUSE = 1u , GBUF_REFLECTION = 2u , GBUF_REFLECTION_COLORLESS = 3u ,
  GBUF_UNLIT = 4u , GBUF_TRANSMISSION_BIT = 1u << 3u , GBUF_REFRACTION = 0u | GBUF_TRANSMISSION_BIT , GBUF_REFRACTION_COLORLESS = 1u | GBUF_TRANSMISSION_BIT ,
  GBUF_TRANSLUCENT = 2u | GBUF_TRANSMISSION_BIT , GBUF_SUBSURFACE = 3u | GBUF_TRANSMISSION_BIT
}
 

Functions

float4x4 cubeface_mat (int face)
 
void cubeface_winmat_get (float4x4 &winmat, float near, float far)
 
static uint2 uint64_to_uint2 (uint64_t data)
 
CameraData operators
bool operator== (const CameraData &a, const CameraData &b)
 
bool operator!= (const CameraData &a, const CameraData &b)
 
FilmData
bool operator== (const FilmData &a, const FilmData &b)
 
bool operator!= (const FilmData &a, const FilmData &b)
 
LightData
static eLightType to_light_type (short blender_light_type, short blender_area_type, bool use_soft_falloff)
 
Light-Probe Module
static eLightProbeResolution resolution_to_probe_resolution_enum (int resolution)
 
Lookdev
static eDRWLevelOfDetail calc_level_of_detail (const float viewport_scale)
 
static int calc_sphere_extent (const float viewport_scale)
 
GPU Materials
static void codegen_callback (void *thunk, GPUMaterial *mat, GPUCodegenOutput *codegen)
 
static GPUPasspass_replacement_cb (void *thunk, GPUMaterial *mat)
 
Transform
static float4x4 transform_to_matrix (Transform t)
 
static Transform transform_from_matrix (float4x4 m)
 
static float3 transform_x_axis (Transform t)
 
static float3 transform_y_axis (Transform t)
 
static float3 transform_z_axis (Transform t)
 
static float3 transform_location (Transform t)
 
static float3 transform_point (Transform t, float3 point)
 
static float3 transform_direction (Transform t, float3 direction)
 
static float3 transform_direction_transposed (Transform t, float3 direction)
 
static float3 transform_point_inversed (Transform t, float3 point)
 
Depth of field
static float coc_radius_from_camera_depth (DepthOfFieldData dof, float depth)
 
static float regular_polygon_side_length (float sides_count)
 
static float circle_to_polygon_radius (float sides_count, float theta)
 
static float circle_to_polygon_angle (float sides_count, float theta)
 
Volume Probe Cache
static IrradianceBrickPacked irradiance_brick_pack (IrradianceBrick brick)
 
static IrradianceBrick irradiance_brick_unpack (IrradianceBrickPacked brick_packed)
 
Subsurface
static float3 burley_setup (float3 radius, float3 albedo)
 
static float3 burley_eval (float3 d, float r)
 
Common
static void geometry_call (PassMain::Sub *sub_pass, gpu::Batch *geom, ResourceHandle resource_handle)
 
static void volume_call (MaterialPass &matpass, Scene *scene, Object *ob, gpu::Batch *geom, ResourceHandle res_handle)
 

Variables

constexpr GPUSamplerState no_filter = GPUSamplerState::default_sampler()
 
constexpr GPUSamplerState with_filter = {GPU_SAMPLER_FILTERING_LINEAR}
 
static constexpr const float shadow_face_mat [6][3][3]
 
static constexpr const float shadow_clipmap_scale_mat [4][4]
 

MaterialKey

enum  eMaterialPipeline {
  MAT_PIPE_DEFERRED = 0 , MAT_PIPE_FORWARD , MAT_PIPE_PREPASS_DEFERRED , MAT_PIPE_PREPASS_DEFERRED_VELOCITY ,
  MAT_PIPE_PREPASS_OVERLAP , MAT_PIPE_PREPASS_FORWARD , MAT_PIPE_PREPASS_FORWARD_VELOCITY , MAT_PIPE_PREPASS_PLANAR ,
  MAT_PIPE_VOLUME_MATERIAL , MAT_PIPE_VOLUME_OCCUPANCY , MAT_PIPE_SHADOW , MAT_PIPE_CAPTURE
}
 
enum  eMaterialGeometry {
  MAT_GEOM_MESH = 0 , MAT_GEOM_POINT_CLOUD , MAT_GEOM_CURVES , MAT_GEOM_GPENCIL ,
  MAT_GEOM_VOLUME , MAT_GEOM_WORLD
}
 
enum  eMaterialDisplacement { MAT_DISPLACEMENT_BUMP = 0 , MAT_DISPLACEMENT_VERTEX_WITH_BUMP }
 
enum  eMaterialThickness { MAT_THICKNESS_SPHERE = 0 , MAT_THICKNESS_SLAB }
 
enum  eMaterialProbe { MAT_PROBE_NONE = 0 , MAT_PROBE_REFLECTION , MAT_PROBE_PLANAR }
 
static bool geometry_type_has_surface (eMaterialGeometry geometry_type)
 
static eMaterialDisplacement to_displacement_type (int displacement_method)
 
static eMaterialThickness to_thickness_type (int thickness_mode)
 
static void material_type_from_shader_uuid (uint64_t shader_uuid, eMaterialPipeline &pipeline_type, eMaterialGeometry &geometry_type, eMaterialDisplacement &displacement_type, eMaterialThickness &thickness_type, bool &transparent_shadows)
 
static uint64_t shader_uuid_from_material_type (eMaterialPipeline pipeline_type, eMaterialGeometry geometry_type, eMaterialDisplacement displacement_type=MAT_DISPLACEMENT_BUMP, eMaterialThickness thickness_type=MAT_THICKNESS_SPHERE, char blend_flags=0)
 
static eClosureBits shader_closure_bits_from_flag (const GPUMaterial *gpumat)
 
static eMaterialGeometry to_material_geometry (const Object *ob)
 

Sampling

enum  eSamplingDimension : uint32_t {
  SAMPLING_FILTER_U = 0u , SAMPLING_FILTER_V = 1u , SAMPLING_LENS_U = 2u , SAMPLING_LENS_V = 3u ,
  SAMPLING_TIME = 4u , SAMPLING_SHADOW_U = 5u , SAMPLING_SHADOW_V = 6u , SAMPLING_SHADOW_W = 7u ,
  SAMPLING_SHADOW_X = 8u , SAMPLING_SHADOW_Y = 9u , SAMPLING_CLOSURE = 10u , SAMPLING_LIGHTPROBE = 11u ,
  SAMPLING_TRANSPARENCY = 12u , SAMPLING_SSS_U = 13u , SAMPLING_SSS_V = 14u , SAMPLING_RAYTRACE_U = 15u ,
  SAMPLING_RAYTRACE_V = 16u , SAMPLING_RAYTRACE_W = 17u , SAMPLING_RAYTRACE_X = 18u , SAMPLING_AO_U = 19u ,
  SAMPLING_AO_V = 20u , SAMPLING_AO_W = 21u , SAMPLING_CURVES_U = 22u , SAMPLING_VOLUME_U = 23u ,
  SAMPLING_VOLUME_V = 24u , SAMPLING_VOLUME_W = 25u , SAMPLING_SHADOW_I = 26u , SAMPLING_SHADOW_J = 27u ,
  SAMPLING_SHADOW_K = 28u
}
 
static int sampling_web_sample_count_get (int web_density, int in_ring_count)
 
static int sampling_web_ring_count_get (int web_density, int sample_count)
 

Camera

enum  eCameraType : uint32_t {
  CAMERA_PERSP = 0u , CAMERA_ORTHO = 1u , CAMERA_PANO_EQUIRECT = 2u , CAMERA_PANO_EQUISOLID = 3u ,
  CAMERA_PANO_EQUIDISTANT = 4u , CAMERA_PANO_MIRROR = 5u
}
 
static bool is_panoramic (eCameraType type)
 

Film

enum  eFilmWeightLayerIndex : uint32_t { FILM_WEIGHT_LAYER_ACCUMULATION = 0u , FILM_WEIGHT_LAYER_DISTANCE = 1u }
 
enum  ePassStorageType : uint32_t { PASS_STORAGE_COLOR = 0u , PASS_STORAGE_VALUE = 1u , PASS_STORAGE_CRYPTOMATTE = 2u }
 
enum  PassCategory : uint32_t {
  PASS_CATEGORY_DATA = 1u << 0 , PASS_CATEGORY_COLOR_1 = 1u << 1 , PASS_CATEGORY_COLOR_2 = 1u << 2 , PASS_CATEGORY_COLOR_3 = 1u << 3 ,
  PASS_CATEGORY_AOV = 1u << 4 , PASS_CATEGORY_CRYPTOMATTE = 1u << 5
}
 
static eViewLayerEEVEEPassType enabled_passes (const ViewLayer *view_layer)
 
static eViewLayerEEVEEPassType get_viewport_compositor_enabled_passes (const Set< std::string > &viewport_compositor_needed_passes, const ViewLayer *view_layer)
 
static eShaderType get_write_pass_shader_type (eViewLayerEEVEEPassType pass_type)
 
static eShaderType get_aov_write_pass_shader_type (const ViewLayerAOV *aov)
 
static float film_filter_weight (float filter_radius, float sample_distance_sqr)
 

VelocityModule

enum  eVelocityStep : uint32_t { STEP_PREVIOUS = 0 , STEP_NEXT = 1 , STEP_CURRENT = 2 }
 
static void step_object_sync_render (void *instance, Object *ob, RenderEngine *, Depsgraph *)
 

Lights

enum  eLightType : uint32_t {
  LIGHT_SUN = 0u , LIGHT_SUN_ORTHO = 1u , LIGHT_OMNI_SPHERE = 10u , LIGHT_OMNI_DISK = 11u ,
  LIGHT_SPOT_SPHERE = 12u , LIGHT_SPOT_DISK = 13u , LIGHT_RECT = 20u , LIGHT_ELLIPSE = 21u
}
 
enum  LightingType : uint32_t {
  LIGHT_DIFFUSE = 0u , LIGHT_SPECULAR = 1u , LIGHT_TRANSMISSION = 2u , LIGHT_VOLUME = 3u ,
  LIGHT_TRANSLUCENT_WITH_THICKNESS = 4u
}
 
static bool is_area_light (eLightType type)
 
static bool is_point_light (eLightType type)
 
static bool is_spot_light (eLightType type)
 
static bool is_sphere_light (eLightType type)
 
static bool is_oriented_disk_light (eLightType type)
 
static bool is_sun_light (eLightType type)
 
static bool is_local_light (eLightType type)
 
 BLI_STATIC_ASSERT (sizeof(LightSpotData)==sizeof(LightLocalData), "Data size must match") struct LightAreaData
 
 BLI_STATIC_ASSERT (sizeof(LightAreaData)==sizeof(LightLocalData), "Data size must match") struct LightSunData
 
 BLI_STATIC_ASSERT (sizeof(LightSunData)==sizeof(LightLocalData), "Data size must match") struct LightData
 
static float3 light_x_axis (LightData light)
 
static float3 light_y_axis (LightData light)
 
static float3 light_z_axis (LightData light)
 
static float3 light_position_get (LightData light)
 
static int light_tilemap_max_get (LightData light)
 
static int light_local_tilemap_count (LightData light)
 

Shadows

Shadow data for either a directional shadow or a punctual shadow.

A punctual shadow is composed of 1, 5 or 6 shadow regions. Regions are sorted in this order -Z, +X, -X, +Y, -Y, +Z. Face index is computed from light's object space coordinates.

A directional light shadow is composed of multiple clip-maps with each level covering twice as much area as the previous one.

enum  eShadowProjectionType : uint32_t { SHADOW_PROJECTION_CUBEFACE = 0u , SHADOW_PROJECTION_CLIPMAP = 1u , SHADOW_PROJECTION_CASCADE = 2u }
 
enum  eShadowFlag : uint32_t {
  SHADOW_NO_DATA = 0u , SHADOW_IS_CACHED = (1u << 27u) , SHADOW_IS_ALLOCATED = (1u << 28u) , SHADOW_DO_UPDATE = (1u << 29u) ,
  SHADOW_IS_RENDERED = (1u << 30u) , SHADOW_IS_USED = (1u << 31u)
}
 
static int2 shadow_cascade_grid_offset (int2 base_offset, int level_relative)
 
static uint shadow_page_pack (uint3 page)
 
static uint3 shadow_page_unpack (uint data)
 
static ShadowTileData shadow_tile_unpack (ShadowTileDataPacked data)
 
static ShadowTileDataPacked shadow_tile_pack (ShadowTileData tile)
 
static uint shadow_lod_offset_pack (uint2 ofs)
 
static uint2 shadow_lod_offset_unpack (uint data)
 
static ShadowSamplingTile shadow_sampling_tile_unpack (ShadowSamplingTilePacked data)
 
static ShadowSamplingTilePacked shadow_sampling_tile_pack (ShadowSamplingTile tile)
 
static ShadowSamplingTile shadow_sampling_tile_create (ShadowTileData tile_data, uint lod)
 

Sync Module

using HairHandleCallback = FunctionRef<void(ObjectHandle, ModifierData &, ParticleSystem &)>
 
void foreach_hair_particle_handle (Object *ob, ObjectHandle ob_handle, HairHandleCallback callback)
 

Detailed Description

Shared structures, enums & defines between C++ and GLSL. Can also include some math functions but they need to be simple enough to be valid in both language.

Typedef Documentation

◆ AOVsInfoDataBuf

◆ CameraDataBuf

◆ CaptureInfoBuf

◆ ClipPlaneBuf

◆ ClosureTileBuf

◆ CryptomatteObjectBuf

◆ DepthOfFieldDataBuf

◆ DepthOfFieldScatterListBuf

◆ DispatchIndirectBuf

◆ DrawIndirectBuf

◆ HairHandleCallback

◆ IrradianceBrickBuf

◆ LightCullingDataBuf

◆ LightCullingKeyBuf

◆ LightCullingTileBuf

◆ LightCullingZbinBuf

◆ LightCullingZdistBuf

◆ LightDataBuf

◆ MotionBlurDataBuf

◆ MotionBlurTileIndirectionBuf

Definition at line 2223 of file eevee_shader_shared.hh.

◆ PlanarProbeDataBuf

◆ PlanarProbeDisplayDataBuf

◆ RayTraceTileBuf

◆ SamplingDataBuf

◆ ShadowPageCacheBuf

◆ ShadowPageHeapBuf

◆ ShadowPagesInfoDataBuf

◆ ShadowRenderViewBuf

◆ ShadowStatisticsBuf

◆ ShadowTileDataBuf

◆ ShadowTileMapClipBuf

◆ ShadowTileMapDataBuf

◆ SphereProbeDataBuf

◆ SphereProbeDisplayDataBuf

◆ SubsurfaceTileBuf

◆ SurfelBuf

◆ SurfelListInfoBuf

◆ SurfelRadianceBuf

◆ UniformDataBuf

◆ VelocityGeometryBuf

◆ VelocityIndexBuf

◆ VelocityObjectBuf

◆ VolumeProbeDataBuf

Enumeration Type Documentation

◆ eCameraType

Enumerator
CAMERA_PERSP 
CAMERA_ORTHO 
CAMERA_PANO_EQUIRECT 
CAMERA_PANO_EQUISOLID 
CAMERA_PANO_EQUIDISTANT 
CAMERA_PANO_MIRROR 

Definition at line 302 of file eevee_shader_shared.hh.

◆ eClosureBits

Enumerator
CLOSURE_NONE 
CLOSURE_DIFFUSE 
CLOSURE_SSS 
CLOSURE_REFLECTION 
CLOSURE_REFRACTION 
CLOSURE_TRANSLUCENT 
CLOSURE_TRANSPARENCY 
CLOSURE_EMISSION 
CLOSURE_HOLDOUT 
CLOSURE_VOLUME 
CLOSURE_AMBIENT_OCCLUSION 
CLOSURE_SHADER_TO_RGBA 
CLOSURE_CLEARCOAT 
CLOSURE_TRANSMISSION 

Definition at line 1885 of file eevee_shader_shared.hh.

◆ eCubeFace

Enumerator
Z_NEG 
X_POS 
X_NEG 
Y_POS 
Y_NEG 
Z_POS 

Definition at line 50 of file eevee_shader_shared.hh.

◆ eDebugMode

These are just to make more sense of G.debug_value's values. Reserved range is 1-30.

Enumerator
DEBUG_NONE 
DEBUG_LIGHT_CULLING 

Gradient showing light evaluation hot-spots.

DEBUG_HIZ_VALIDATION 

Show incorrectly down-sample tiles in red.

DEBUG_IRRADIANCE_CACHE_SURFELS_NORMAL 

Display IrradianceCache surfels.

DEBUG_IRRADIANCE_CACHE_SURFELS_IRRADIANCE 
DEBUG_IRRADIANCE_CACHE_SURFELS_VISIBILITY 
DEBUG_IRRADIANCE_CACHE_SURFELS_CLUSTER 
DEBUG_IRRADIANCE_CACHE_VIRTUAL_OFFSET 

Display IrradianceCache virtual offset.

DEBUG_IRRADIANCE_CACHE_VALIDITY 
DEBUG_SHADOW_TILEMAPS 

Show tiles depending on their status.

DEBUG_SHADOW_VALUES 

Show content of shadow map. Used to verify projection code.

DEBUG_SHADOW_TILE_RANDOM_COLOR 

Show random color for each tile. Verify allocation and LOD assignment.

DEBUG_SHADOW_TILEMAP_RANDOM_COLOR 

Show random color for each tile. Verify distribution and LOD transitions.

DEBUG_GBUFFER_STORAGE 

Show storage cost of each pixel in the gbuffer.

DEBUG_GBUFFER_EVALUATION 

Show evaluation cost of each pixel.

DEBUG_DOF_PLANES 

Color different buffers of the depth of field.

Definition at line 163 of file eevee_shader_shared.hh.

◆ eFilmWeightLayerIndex

Enumerator
FILM_WEIGHT_LAYER_ACCUMULATION 
FILM_WEIGHT_LAYER_DISTANCE 

Definition at line 360 of file eevee_shader_shared.hh.

◆ eLightType

Enumerator
LIGHT_SUN 
LIGHT_SUN_ORTHO 
LIGHT_OMNI_SPHERE 
LIGHT_OMNI_DISK 
LIGHT_SPOT_SPHERE 
LIGHT_SPOT_DISK 
LIGHT_RECT 
LIGHT_ELLIPSE 

Definition at line 819 of file eevee_shader_shared.hh.

◆ eMaterialDisplacement

Enumerator
MAT_DISPLACEMENT_BUMP 
MAT_DISPLACEMENT_VERTEX_WITH_BUMP 

Definition at line 62 of file eevee_material.hh.

◆ eMaterialGeometry

Enumerator
MAT_GEOM_MESH 
MAT_GEOM_POINT_CLOUD 
MAT_GEOM_CURVES 
MAT_GEOM_GPENCIL 
MAT_GEOM_VOLUME 
MAT_GEOM_WORLD 

Definition at line 45 of file eevee_material.hh.

◆ eMaterialPipeline

Enumerator
MAT_PIPE_DEFERRED 
MAT_PIPE_FORWARD 
MAT_PIPE_PREPASS_DEFERRED 
MAT_PIPE_PREPASS_DEFERRED_VELOCITY 
MAT_PIPE_PREPASS_OVERLAP 
MAT_PIPE_PREPASS_FORWARD 
MAT_PIPE_PREPASS_FORWARD_VELOCITY 
MAT_PIPE_PREPASS_PLANAR 
MAT_PIPE_VOLUME_MATERIAL 
MAT_PIPE_VOLUME_OCCUPANCY 
MAT_PIPE_SHADOW 
MAT_PIPE_CAPTURE 

Definition at line 28 of file eevee_material.hh.

◆ eMaterialProbe

Enumerator
MAT_PROBE_NONE 
MAT_PROBE_REFLECTION 
MAT_PROBE_PLANAR 

Definition at line 96 of file eevee_material.hh.

◆ eMaterialThickness

Enumerator
MAT_THICKNESS_SPHERE 
MAT_THICKNESS_SLAB 

Definition at line 80 of file eevee_material.hh.

◆ ePassStorageType

Enumerator
PASS_STORAGE_COLOR 
PASS_STORAGE_VALUE 
PASS_STORAGE_CRYPTOMATTE 

Definition at line 365 of file eevee_shader_shared.hh.

◆ eSamplingDimension

Enumerator
SAMPLING_FILTER_U 
SAMPLING_FILTER_V 
SAMPLING_LENS_U 
SAMPLING_LENS_V 
SAMPLING_TIME 
SAMPLING_SHADOW_U 
SAMPLING_SHADOW_V 
SAMPLING_SHADOW_W 
SAMPLING_SHADOW_X 
SAMPLING_SHADOW_Y 
SAMPLING_CLOSURE 
SAMPLING_LIGHTPROBE 
SAMPLING_TRANSPARENCY 
SAMPLING_SSS_U 
SAMPLING_SSS_V 
SAMPLING_RAYTRACE_U 
SAMPLING_RAYTRACE_V 
SAMPLING_RAYTRACE_W 
SAMPLING_RAYTRACE_X 
SAMPLING_AO_U 
SAMPLING_AO_V 
SAMPLING_AO_W 
SAMPLING_CURVES_U 
SAMPLING_VOLUME_U 
SAMPLING_VOLUME_V 
SAMPLING_VOLUME_W 
SAMPLING_SHADOW_I 
SAMPLING_SHADOW_J 
SAMPLING_SHADOW_K 

Definition at line 235 of file eevee_shader_shared.hh.

◆ eShaderType

Enumerator
AMBIENT_OCCLUSION_PASS 
FILM_COPY 
FILM_COMP 
FILM_CRYPTOMATTE_POST 
FILM_FRAG 
FILM_PASS_CONVERT_COMBINED 
FILM_PASS_CONVERT_DEPTH 
FILM_PASS_CONVERT_VALUE 
FILM_PASS_CONVERT_COLOR 
FILM_PASS_CONVERT_CRYPTOMATTE 
DEFERRED_CAPTURE_EVAL 
DEFERRED_COMBINE 
DEFERRED_LIGHT_SINGLE 
DEFERRED_LIGHT_DOUBLE 
DEFERRED_LIGHT_TRIPLE 
DEFERRED_PLANAR_EVAL 
DEFERRED_THICKNESS_AMEND 
DEFERRED_TILE_CLASSIFY 
DEBUG_GBUFFER 
DEBUG_SURFELS 
DEBUG_IRRADIANCE_GRID 
DISPLAY_PROBE_VOLUME 
DISPLAY_PROBE_SPHERE 
DISPLAY_PROBE_PLANAR 
DOF_BOKEH_LUT 
DOF_DOWNSAMPLE 
DOF_FILTER 
DOF_GATHER_BACKGROUND_LUT 
DOF_GATHER_BACKGROUND 
DOF_GATHER_FOREGROUND_LUT 
DOF_GATHER_FOREGROUND 
DOF_GATHER_HOLE_FILL 
DOF_REDUCE 
DOF_RESOLVE_LUT 
DOF_RESOLVE 
DOF_SCATTER 
DOF_SETUP 
DOF_STABILIZE 
DOF_TILES_DILATE_MINABS 
DOF_TILES_DILATE_MINMAX 
DOF_TILES_FLATTEN 
HIZ_UPDATE 
HIZ_UPDATE_LAYER 
HIZ_DEBUG 
HORIZON_DENOISE 
HORIZON_RESOLVE 
HORIZON_SCAN 
HORIZON_SETUP 
LIGHT_CULLING_DEBUG 
LIGHT_CULLING_SELECT 
LIGHT_CULLING_SORT 
LIGHT_CULLING_TILE 
LIGHT_CULLING_ZBIN 
LIGHT_SHADOW_SETUP 
LIGHTPROBE_IRRADIANCE_BOUNDS 
LIGHTPROBE_IRRADIANCE_OFFSET 
LIGHTPROBE_IRRADIANCE_RAY 
LIGHTPROBE_IRRADIANCE_LOAD 
LIGHTPROBE_IRRADIANCE_WORLD 
LOOKDEV_DISPLAY 
MOTION_BLUR_GATHER 
MOTION_BLUR_TILE_DILATE 
MOTION_BLUR_TILE_FLATTEN_RGBA 
MOTION_BLUR_TILE_FLATTEN_RG 
RAY_DENOISE_BILATERAL 
RAY_DENOISE_SPATIAL 
RAY_DENOISE_TEMPORAL 
RAY_GENERATE 
RAY_TILE_CLASSIFY 
RAY_TILE_COMPACT 
RAY_TRACE_FALLBACK 
RAY_TRACE_PLANAR 
RAY_TRACE_SCREEN 
RENDERPASS_CLEAR 
SPHERE_PROBE_CONVOLVE 
SPHERE_PROBE_IRRADIANCE 
SPHERE_PROBE_REMAP 
SPHERE_PROBE_SELECT 
SPHERE_PROBE_SUNLIGHT 
SHADOW_CLIPMAP_CLEAR 
SHADOW_DEBUG 
SHADOW_PAGE_ALLOCATE 
SHADOW_PAGE_CLEAR 
SHADOW_PAGE_DEFRAG 
SHADOW_PAGE_FREE 
SHADOW_PAGE_MASK 
SHADOW_PAGE_TILE_CLEAR 
SHADOW_PAGE_TILE_STORE 
SHADOW_TILEMAP_AMEND 
SHADOW_TILEMAP_BOUNDS 
SHADOW_TILEMAP_FINALIZE 
SHADOW_TILEMAP_RENDERMAP 
SHADOW_TILEMAP_INIT 
SHADOW_TILEMAP_TAG_UPDATE 
SHADOW_TILEMAP_TAG_USAGE_OPAQUE 
SHADOW_TILEMAP_TAG_USAGE_SURFELS 
SHADOW_TILEMAP_TAG_USAGE_TRANSPARENT 
SHADOW_TILEMAP_TAG_USAGE_VOLUME 
SHADOW_VIEW_VISIBILITY 
SUBSURFACE_CONVOLVE 
SUBSURFACE_SETUP 
SURFEL_CLUSTER_BUILD 
SURFEL_LIGHT 
SURFEL_LIST_BUILD 
SURFEL_LIST_SORT 
SURFEL_RAY 
VERTEX_COPY 
VOLUME_INTEGRATION 
VOLUME_OCCUPANCY_CONVERT 
VOLUME_RESOLVE 
VOLUME_SCATTER 
VOLUME_SCATTER_WITH_LIGHTS 
MAX_SHADER_TYPE 

Definition at line 28 of file eevee_shader.hh.

◆ eShadowFlag

Enumerator
SHADOW_NO_DATA 
SHADOW_IS_CACHED 
SHADOW_IS_ALLOCATED 
SHADOW_DO_UPDATE 
SHADOW_IS_RENDERED 
SHADOW_IS_USED 

Definition at line 1457 of file eevee_shader_shared.hh.

◆ eShadowProjectionType

Enumerator
SHADOW_PROJECTION_CUBEFACE 
SHADOW_PROJECTION_CLIPMAP 
SHADOW_PROJECTION_CASCADE 

Definition at line 1300 of file eevee_shader_shared.hh.

◆ eVelocityStep

Enumerator
STEP_PREVIOUS 
STEP_NEXT 
STEP_CURRENT 

Definition at line 541 of file eevee_shader_shared.hh.

◆ GBufferMode

Enumerator
GBUF_NONE 

None mode for pixels not rendered.

GBUF_DIFFUSE 
GBUF_REFLECTION 
GBUF_REFLECTION_COLORLESS 
GBUF_UNLIT 

Used for surfaces that have no lit closure and just encode a normal layer.

GBUF_TRANSMISSION_BIT 

Special bit that marks all closures with refraction. Allows to detect the presence of transmission more easily. Note that this left only 2^3 values (minus 0) for encoding the BSDF. Could be removed if that's too cumbersome to add more BSDF.

GBUF_REFRACTION 
GBUF_REFRACTION_COLORLESS 
GBUF_TRANSLUCENT 
GBUF_SUBSURFACE 

Definition at line 1903 of file eevee_shader_shared.hh.

◆ LightingType

Enumerator
LIGHT_DIFFUSE 
LIGHT_SPECULAR 
LIGHT_TRANSMISSION 
LIGHT_VOLUME 
LIGHT_TRANSLUCENT_WITH_THICKNESS 

Definition at line 833 of file eevee_shader_shared.hh.

◆ LightProbeShape

Enumerator
SHAPE_ELIPSOID 
SHAPE_CUBOID 

Definition at line 1624 of file eevee_shader_shared.hh.

◆ PassCategory

Enumerator
PASS_CATEGORY_DATA 
PASS_CATEGORY_COLOR_1 
PASS_CATEGORY_COLOR_2 
PASS_CATEGORY_COLOR_3 
PASS_CATEGORY_AOV 
PASS_CATEGORY_CRYPTOMATTE 

Definition at line 371 of file eevee_shader_shared.hh.

◆ PrecomputeType

Enumerator
LUT_GGX_BRDF_SPLIT_SUM 
LUT_GGX_BTDF_IOR_GT_ONE 
LUT_GGX_BSDF_SPLIT_SUM 
LUT_BURLEY_SSS_PROFILE 
LUT_RANDOM_WALK_SSS_PROFILE 

Definition at line 221 of file eevee_shader_shared.hh.

◆ ShadowTechnique

Enumerator
ATOMIC_RASTER 
TILE_COPY 

Definition at line 48 of file eevee_shadow.hh.

Function Documentation

◆ BLI_STATIC_ASSERT() [1/3]

blender::eevee::BLI_STATIC_ASSERT ( sizeof(LightAreaData) = = sizeof(LightLocalData),
"Data size must match"  )

— Shadow Data —

Offset of the LOD min in LOD min tile units. Split positive and negative for bit-shift.

Angle covered by the light shape for shadow ray casting.

Offset to convert from world units to tile space of the clipmap_lod_max.

Clip-map LOD range to avoid sampling outside of valid range.

Definition at line 939 of file eevee_shader_shared.hh.

◆ BLI_STATIC_ASSERT() [2/3]

blender::eevee::BLI_STATIC_ASSERT ( sizeof(LightSpotData) = = sizeof(LightLocalData),
"Data size must match"  )

Shape size.

Scale to apply on top of size to get shadow tracing shape size.

Definition at line 925 of file eevee_shader_shared.hh.

References LOCAL_LIGHT_COMMON, and size().

◆ BLI_STATIC_ASSERT() [3/3]

blender::eevee::BLI_STATIC_ASSERT ( sizeof(LightSunData) = = sizeof(LightLocalData),
"Data size must match"  )

Normalized object to world matrix. Stored transposed for compactness. Used for shading and shadowing local lights, or shadowing sun lights. IMPORTANT: Not used for shading sun lights as this matrix is jittered.

Power depending on shader type. Referenced by LightingType.

Light Color.

Light Type.

— Shadow Data —

Near clip distances. Float stored as orderedIntBitsToFloat for atomic operations.

Index of the first tile-map. Set to LIGHT_NO_SHADOW if light is not casting shadow.

Used by shadow sync.

Definition at line 964 of file eevee_shader_shared.hh.

References color, and power().

◆ burley_eval()

static float3 blender::eevee::burley_eval ( float3 d,
float r )
inlinestatic

Definition at line 2031 of file eevee_shader_shared.hh.

References expf.

◆ burley_setup()

static float3 blender::eevee::burley_setup ( float3 radius,
float3 albedo )
inlinestatic

Definition at line 2017 of file eevee_shader_shared.hh.

References l.

◆ calc_level_of_detail()

static eDRWLevelOfDetail blender::eevee::calc_level_of_detail ( const float viewport_scale)
static

◆ calc_sphere_extent()

static int blender::eevee::calc_sphere_extent ( const float viewport_scale)
static

Definition at line 167 of file eevee_lookdev.cc.

References UI_SCALE_FAC.

Referenced by blender::eevee::LookdevModule::sync().

◆ circle_to_polygon_angle()

static float blender::eevee::circle_to_polygon_angle ( float sides_count,
float theta )
inlinestatic

◆ circle_to_polygon_radius()

static float blender::eevee::circle_to_polygon_radius ( float sides_count,
float theta )
inlinestatic

Definition at line 738 of file eevee_shader_shared.hh.

References cosf, floorf, and M_PI.

Referenced by circle_to_polygon_angle(), and blender::eevee::DepthOfField::jitter_apply().

◆ coc_radius_from_camera_depth()

static float blender::eevee::coc_radius_from_camera_depth ( DepthOfFieldData dof,
float depth )
inlinestatic

Definition at line 725 of file eevee_shader_shared.hh.

References CAMERA_ORTHO.

Referenced by blender::eevee::DepthOfField::render().

◆ codegen_callback()

static void blender::eevee::codegen_callback ( void * thunk,
GPUMaterial * mat,
GPUCodegenOutput * codegen )
static

◆ cubeface_mat()

float4x4 blender::eevee::cubeface_mat ( int face)
inline

◆ cubeface_winmat_get()

void blender::eevee::cubeface_winmat_get ( float4x4 & winmat,
float near,
float far )
inline

◆ enabled_passes()

◆ film_filter_weight()

static float blender::eevee::film_filter_weight ( float filter_radius,
float sample_distance_sqr )
inlinestatic

Definition at line 469 of file eevee_shader_shared.hh.

References cosf, expf, saturate, and sqrtf.

◆ foreach_hair_particle_handle()

◆ geometry_call()

static void blender::eevee::geometry_call ( PassMain::Sub * sub_pass,
gpu::Batch * geom,
ResourceHandle resource_handle )
inlinestatic

◆ geometry_type_has_surface()

static bool blender::eevee::geometry_type_has_surface ( eMaterialGeometry geometry_type)
inlinestatic

◆ get_aov_write_pass_shader_type()

static eShaderType blender::eevee::get_aov_write_pass_shader_type ( const ViewLayerAOV * aov)
static

◆ get_viewport_compositor_enabled_passes()

static eViewLayerEEVEEPassType blender::eevee::get_viewport_compositor_enabled_passes ( const Set< std::string > & viewport_compositor_needed_passes,
const ViewLayer * view_layer )
static

◆ get_write_pass_shader_type()

◆ irradiance_brick_pack()

static IrradianceBrickPacked blender::eevee::irradiance_brick_pack ( IrradianceBrick brick)
inlinestatic

◆ irradiance_brick_unpack()

static IrradianceBrick blender::eevee::irradiance_brick_unpack ( IrradianceBrickPacked brick_packed)
inlinestatic

◆ is_area_light()

static bool blender::eevee::is_area_light ( eLightType type)
inlinestatic

◆ is_local_light()

static bool blender::eevee::is_local_light ( eLightType type)
inlinestatic

◆ is_oriented_disk_light()

static bool blender::eevee::is_oriented_disk_light ( eLightType type)
inlinestatic

Definition at line 863 of file eevee_shader_shared.hh.

References LIGHT_OMNI_DISK, and LIGHT_SPOT_DISK.

◆ is_panoramic()

static bool blender::eevee::is_panoramic ( eCameraType type)
inlinestatic

Definition at line 311 of file eevee_shader_shared.hh.

References CAMERA_ORTHO.

Referenced by blender::eevee::Camera::is_panoramic().

◆ is_point_light()

static bool blender::eevee::is_point_light ( eLightType type)
inlinestatic

◆ is_sphere_light()

static bool blender::eevee::is_sphere_light ( eLightType type)
inlinestatic

Definition at line 858 of file eevee_shader_shared.hh.

References LIGHT_OMNI_SPHERE, and LIGHT_SPOT_SPHERE.

◆ is_spot_light()

static bool blender::eevee::is_spot_light ( eLightType type)
inlinestatic

◆ is_sun_light()

◆ light_local_tilemap_count()

static int blender::eevee::light_local_tilemap_count ( LightData light)
inlinestatic

◆ light_position_get()

static float3 blender::eevee::light_position_get ( LightData light)
inlinestatic

Definition at line 1043 of file eevee_shader_shared.hh.

References transform_location().

◆ light_tilemap_max_get()

static int blender::eevee::light_tilemap_max_get ( LightData light)
inlinestatic

Definition at line 1261 of file eevee_shader_shared.hh.

References is_sun_light(), light_local_data_get, and light_sun_data_get.

◆ light_x_axis()

static float3 blender::eevee::light_x_axis ( LightData light)
inlinestatic

Definition at line 1031 of file eevee_shader_shared.hh.

References transform_x_axis().

◆ light_y_axis()

static float3 blender::eevee::light_y_axis ( LightData light)
inlinestatic

Definition at line 1035 of file eevee_shader_shared.hh.

References transform_y_axis().

◆ light_z_axis()

static float3 blender::eevee::light_z_axis ( LightData light)
inlinestatic

Definition at line 1039 of file eevee_shader_shared.hh.

References transform_z_axis().

◆ material_type_from_shader_uuid()

static void blender::eevee::material_type_from_shader_uuid ( uint64_t shader_uuid,
eMaterialPipeline & pipeline_type,
eMaterialGeometry & geometry_type,
eMaterialDisplacement & displacement_type,
eMaterialThickness & thickness_type,
bool & transparent_shadows )
inlinestatic

◆ operator!=() [1/2]

bool blender::eevee::operator!= ( const CameraData & a,
const CameraData & b )
inline

Definition at line 78 of file eevee_camera.hh.

References b.

◆ operator!=() [2/2]

bool blender::eevee::operator!= ( const FilmData & a,
const FilmData & b )
inline

Definition at line 184 of file eevee_film.cc.

References b.

◆ operator==() [1/2]

bool blender::eevee::operator== ( const CameraData & a,
const CameraData & b )
inline

Definition at line 70 of file eevee_camera.hh.

References b, and compare_m4m4().

◆ operator==() [2/2]

bool blender::eevee::operator== ( const FilmData & a,
const FilmData & b )
inline

Definition at line 176 of file eevee_film.cc.

References b.

◆ pass_replacement_cb()

◆ regular_polygon_side_length()

static float blender::eevee::regular_polygon_side_length ( float sides_count)
inlinestatic

Definition at line 731 of file eevee_shader_shared.hh.

References M_PI, and sinf.

Referenced by circle_to_polygon_angle().

◆ resolution_to_probe_resolution_enum()

◆ sampling_web_ring_count_get()

static int blender::eevee::sampling_web_ring_count_get ( int web_density,
int sample_count )
inlinestatic

Definition at line 287 of file eevee_shader_shared.hh.

References ceilf, float, int, sqrtf, and x.

Referenced by blender::eevee::Sampling::init().

◆ sampling_web_sample_count_get()

static int blender::eevee::sampling_web_sample_count_get ( int web_density,
int in_ring_count )
inlinestatic

Definition at line 281 of file eevee_shader_shared.hh.

Referenced by blender::eevee::Sampling::init().

◆ shader_closure_bits_from_flag()

◆ shader_uuid_from_material_type()

◆ shadow_cascade_grid_offset()

static int2 blender::eevee::shadow_cascade_grid_offset ( int2 base_offset,
int level_relative )
inlinestatic

Definition at line 1306 of file eevee_shader_shared.hh.

◆ shadow_lod_offset_pack()

static uint blender::eevee::shadow_lod_offset_pack ( uint2 ofs)
inlinestatic

◆ shadow_lod_offset_unpack()

static uint2 blender::eevee::shadow_lod_offset_unpack ( uint data)
inlinestatic

◆ shadow_page_pack()

◆ shadow_page_unpack()

◆ shadow_sampling_tile_create()

static ShadowSamplingTile blender::eevee::shadow_sampling_tile_create ( ShadowTileData tile_data,
uint lod )
inlinestatic

◆ shadow_sampling_tile_pack()

◆ shadow_sampling_tile_unpack()

◆ shadow_tile_pack()

◆ shadow_tile_unpack()

◆ step_object_sync_render()

◆ to_displacement_type()

◆ to_light_type()

static eLightType blender::eevee::to_light_type ( short blender_light_type,
short blender_area_type,
bool use_soft_falloff )
static

◆ to_material_geometry()

static eMaterialGeometry blender::eevee::to_material_geometry ( const Object * ob)
inlinestatic

◆ to_thickness_type()

static eMaterialThickness blender::eevee::to_thickness_type ( int thickness_mode)
inlinestatic

◆ transform_direction()

static float3 blender::eevee::transform_direction ( Transform t,
float3 direction )
inlinestatic

◆ transform_direction_transposed()

static float3 blender::eevee::transform_direction_transposed ( Transform t,
float3 direction )
inlinestatic

◆ transform_from_matrix()

static Transform blender::eevee::transform_from_matrix ( float4x4 m)
inlinestatic

◆ transform_location()

static float3 blender::eevee::transform_location ( Transform t)
inlinestatic

◆ transform_point()

static float3 blender::eevee::transform_point ( Transform t,
float3 point )
inlinestatic

◆ transform_point_inversed()

static float3 blender::eevee::transform_point_inversed ( Transform t,
float3 point )
inlinestatic

◆ transform_to_matrix()

static float4x4 blender::eevee::transform_to_matrix ( Transform t)
inlinestatic

◆ transform_x_axis()

static float3 blender::eevee::transform_x_axis ( Transform t)
inlinestatic

◆ transform_y_axis()

static float3 blender::eevee::transform_y_axis ( Transform t)
inlinestatic

◆ transform_z_axis()

static float3 blender::eevee::transform_z_axis ( Transform t)
inlinestatic

◆ uint64_to_uint2()

static uint2 blender::eevee::uint64_to_uint2 ( uint64_t data)
static

Definition at line 23 of file eevee_light.cc.

Referenced by blender::eevee::Light::sync().

◆ volume_call()

Variable Documentation

◆ no_filter

◆ shadow_clipmap_scale_mat

const float blender::eevee::shadow_clipmap_scale_mat[4][4]
staticconstexpr
Initial value:
= {{SHADOW_TILEMAP_RES / 2, 0, 0, 0},
{0, SHADOW_TILEMAP_RES / 2, 0, 0},
{0, 0, 0.5, 0},
{0, 0, 0.5, 1}}
#define SHADOW_TILEMAP_RES

Definition at line 42 of file eevee_shadow.hh.

◆ shadow_face_mat

const float blender::eevee::shadow_face_mat[6][3][3]
staticconstexpr
Initial value:
= {
{{+1, +0, +0}, {+0, +1, +0}, {+0, +0, +1}},
{{+0, +0, -1}, {-1, +0, +0}, {+0, +1, +0}},
{{+0, +0, +1}, {+1, +0, +0}, {+0, +1, +0}},
{{+1, +0, +0}, {+0, +0, -1}, {+0, +1, +0}},
{{-1, +0, +0}, {+0, +0, +1}, {+0, +1, +0}},
{{+1, +0, +0}, {+0, -1, +0}, {+0, +0, -1}},
}

Definition at line 32 of file eevee_shadow.hh.

Referenced by blender::eevee::ShadowTileMap::sync_cubeface().

◆ with_filter

GPUSamplerState blender::eevee::with_filter = {GPU_SAMPLER_FILTERING_LINEAR}
constexpr

Definition at line 34 of file eevee_shader_shared.hh.

Referenced by blender::eevee::HiZBuffer::sync().