Blender V4.5
blender::eevee Namespace Reference

Namespaces

namespace  do_not_use
 
namespace  lut
 

Classes

class  AmbientOcclusion
 
struct  AOData
 
struct  AOVsInfoData
 
class  BackgroundPipeline
 
struct  BaseHandle
 
struct  CallbackThunk
 
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
 
struct  Engine
 
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 StaticShader = gpu::StaticShader
 
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  ShaderGroups : uint32_t {
  NONE = 0 , DEFERRED_LIGHTING_SHADERS = 1 << 0 , DEFERRED_CAPTURE_SHADERS = 1 << 1 , DEFERRED_PLANAR_SHADERS = 1 << 2 ,
  DEPTH_OF_FIELD_SHADERS = 1 << 3 , HIZ_SHADERS = 1 << 4 , HORIZON_SCAN_SHADERS = 1 << 5 , LIGHT_CULLING_SHADERS = 1 << 6 ,
  IRRADIANCE_BAKE_SHADERS = 1 << 7 , SPHERE_PROBE_SHADERS = 1 << 8 , SHADOW_SHADERS = 1 << 9 , AMBIENT_OCCLUSION_SHADERS = 1 << 10 ,
  MOTION_BLUR_SHADERS = 1 << 11 , RAYTRACING_SHADERS = 1 << 12 , FILM_SHADERS = 1 << 13 , SUBSURFACE_SHADERS = 1 << 14 ,
  SURFEL_SHADERS = 1 << 15 , VERTEX_COPY_SHADERS = 1 << 16 , VOLUME_EVAL_SHADERS = 1 << 17 , DEFAULT_MATERIALS = 1 << 18 ,
  WORLD_SHADERS = 1 << 19 , MATERIAL_SHADERS = 1 << 20 , VOLUME_PROBE_SHADERS = 1 << 21
}
 
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 int calc_sphere_extent (const float viewport_scale)
 
GPU Materials
static void codegen_callback (void *void_thunk, GPUMaterial *mat, GPUCodegenOutput *codegen)
 
static GPUPasspass_replacement_cb (void *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_POINTCLOUD , 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 , SAMPLING_UNUSED_0 = 29u , SAMPLING_UNUSED_1 = 30u , SAMPLING_UNUSED_2 = 31u
}
 
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 (Instance &inst, ObjectRef &ob_ref)
 

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 (ObjectRef &ob_ref, ObjectHandle ob_handle, HairHandleCallback callback)
 

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 2258 of file eevee_shader_shared.hh.

◆ PlanarProbeDataBuf

◆ PlanarProbeDisplayDataBuf

◆ RayTraceTileBuf

◆ SamplingDataBuf

◆ ShadowPageCacheBuf

◆ ShadowPageHeapBuf

◆ ShadowPagesInfoDataBuf

◆ ShadowRenderViewBuf

◆ ShadowStatisticsBuf

◆ ShadowTileDataBuf

◆ ShadowTileMapClipBuf

◆ ShadowTileMapDataBuf

◆ SphereProbeDataBuf

◆ SphereProbeDisplayDataBuf

◆ StaticShader

◆ 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 336 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 1917 of file eevee_shader_shared.hh.

◆ eCubeFace

Enumerator
Z_NEG 
X_POS 
X_NEG 
Y_POS 
Y_NEG 
Z_POS 

Definition at line 49 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 194 of file eevee_shader_shared.hh.

◆ eFilmWeightLayerIndex

Enumerator
FILM_WEIGHT_LAYER_ACCUMULATION 
FILM_WEIGHT_LAYER_DISTANCE 

Definition at line 394 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 853 of file eevee_shader_shared.hh.

◆ eMaterialDisplacement

Enumerator
MAT_DISPLACEMENT_BUMP 
MAT_DISPLACEMENT_VERTEX_WITH_BUMP 

Definition at line 67 of file eevee_material.hh.

◆ eMaterialGeometry

Enumerator
MAT_GEOM_MESH 
MAT_GEOM_POINTCLOUD 
MAT_GEOM_CURVES 
MAT_GEOM_GPENCIL 
MAT_GEOM_VOLUME 
MAT_GEOM_WORLD 

Definition at line 50 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 33 of file eevee_material.hh.

◆ eMaterialProbe

Enumerator
MAT_PROBE_NONE 
MAT_PROBE_REFLECTION 
MAT_PROBE_PLANAR 

Definition at line 101 of file eevee_material.hh.

◆ eMaterialThickness

Enumerator
MAT_THICKNESS_SPHERE 
MAT_THICKNESS_SLAB 

Definition at line 85 of file eevee_material.hh.

◆ ePassStorageType

Enumerator
PASS_STORAGE_COLOR 
PASS_STORAGE_VALUE 
PASS_STORAGE_CRYPTOMATTE 

Definition at line 399 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 
SAMPLING_UNUSED_0 
SAMPLING_UNUSED_1 
SAMPLING_UNUSED_2 

Definition at line 266 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 32 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 1489 of file eevee_shader_shared.hh.

◆ eShadowProjectionType

Enumerator
SHADOW_PROJECTION_CUBEFACE 
SHADOW_PROJECTION_CLIPMAP 
SHADOW_PROJECTION_CASCADE 

Definition at line 1332 of file eevee_shader_shared.hh.

◆ eVelocityStep

Enumerator
STEP_PREVIOUS 
STEP_NEXT 
STEP_CURRENT 

Definition at line 575 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 1935 of file eevee_shader_shared.hh.

◆ LightingType

Enumerator
LIGHT_DIFFUSE 
LIGHT_SPECULAR 
LIGHT_TRANSMISSION 
LIGHT_VOLUME 
LIGHT_TRANSLUCENT_WITH_THICKNESS 

Definition at line 867 of file eevee_shader_shared.hh.

◆ LightProbeShape

Enumerator
SHAPE_ELIPSOID 
SHAPE_CUBOID 

Definition at line 1656 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 405 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 252 of file eevee_shader_shared.hh.

◆ ShaderGroups

Bitmask representing the shader categories. This allows the loading of certain parts of the engine to kick-in as soon as the shaders that depends on it are compiled.

Enumerator
NONE 
DEFERRED_LIGHTING_SHADERS 
DEFERRED_CAPTURE_SHADERS 
DEFERRED_PLANAR_SHADERS 
DEPTH_OF_FIELD_SHADERS 
HIZ_SHADERS 
HORIZON_SCAN_SHADERS 
LIGHT_CULLING_SHADERS 
IRRADIANCE_BAKE_SHADERS 
SPHERE_PROBE_SHADERS 
SHADOW_SHADERS 
AMBIENT_OCCLUSION_SHADERS 
MOTION_BLUR_SHADERS 
RAYTRACING_SHADERS 
FILM_SHADERS 
SUBSURFACE_SHADERS 
SURFEL_SHADERS 
VERTEX_COPY_SHADERS 
VOLUME_EVAL_SHADERS 
DEFAULT_MATERIALS 
WORLD_SHADERS 
MATERIAL_SHADERS 
VOLUME_PROBE_SHADERS 

Definition at line 64 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 973 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 959 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 998 of file eevee_shader_shared.hh.

References power().

◆ burley_eval()

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

Definition at line 2063 of file eevee_shader_shared.hh.

References expf.

◆ burley_setup()

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

Definition at line 2049 of file eevee_shader_shared.hh.

References A, and l.

◆ calc_sphere_extent()

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

Definition at line 250 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

◆ coc_radius_from_camera_depth()

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

Definition at line 759 of file eevee_shader_shared.hh.

References CAMERA_ORTHO.

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

◆ codegen_callback()

static void blender::eevee::codegen_callback ( void * 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 503 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 897 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 345 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 892 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 1077 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 1295 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 1065 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 1069 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 1073 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 83 of file eevee_camera.hh.

References b.

◆ operator!=() [2/2]

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

Definition at line 186 of file eevee_film.cc.

References b.

◆ operator==() [1/2]

◆ operator==() [2/2]

◆ pass_replacement_cb()

◆ regular_polygon_side_length()

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

Definition at line 765 of file eevee_shader_shared.hh.

References EEVEE_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 321 of file eevee_shader_shared.hh.

References ceilf, 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 315 of file eevee_shader_shared.hh.

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

◆ shader_closure_bits_from_flag()

◆ shader_uuid_from_material_type()

static uint64_t blender::eevee::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 )
inlinestatic

◆ shadow_cascade_grid_offset()

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

Definition at line 1338 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 26 of file eevee_light.cc.

References data.

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 43 of file eevee_shader_shared.hh.