Blender V4.3
DNA_lightprobe_types.h File Reference
#include "DNA_ID.h"
#include "DNA_defs.h"
#include "DNA_listBase.h"
#include "BLI_assert.h"

Go to the source code of this file.

Classes

struct  LightProbe
 
struct  LightProbeCache
 
struct  LightGridCache
 
struct  LightCacheTexture
 
struct  LightCache
 
struct  LightProbeBakingData
 
struct  LightProbeIrradianceData
 
struct  LightProbeVisibilityData
 
struct  LightProbeConnectivityData
 
struct  LightProbeBlockData
 
struct  LightProbeGridCacheFrame
 
struct  LightProbeObjectCache
 

Macros

#define LIGHTCACHE_STATIC_VERSION   2
 

Typedefs

typedef struct LightProbe LightProbe
 
typedef struct LightProbeCache LightProbeCache
 
typedef struct LightGridCache LightGridCache
 
typedef struct LightCacheTexture LightCacheTexture
 
typedef struct LightCache LightCache
 
Irradiance grid data storage

Each spherical harmonic band is stored separately. This allow loading only a specific band. The layout of each array is set by the #LightProbeGridType. Any unavailable data is be set to nullptr.

typedef struct LightProbeBakingData LightProbeBakingData
 
typedef struct LightProbeIrradianceData LightProbeIrradianceData
 
typedef struct LightProbeVisibilityData LightProbeVisibilityData
 
typedef struct LightProbeConnectivityData LightProbeConnectivityData
 
typedef struct LightProbeBlockData LightProbeBlockData
 

Enumerations

enum  { LIGHTPROBE_TYPE_SPHERE = 0 , LIGHTPROBE_TYPE_PLANE = 1 , LIGHTPROBE_TYPE_VOLUME = 2 }
 
enum  {
  LIGHTPROBE_FLAG_CUSTOM_PARALLAX = (1 << 0) , LIGHTPROBE_FLAG_SHOW_INFLUENCE = (1 << 1) , LIGHTPROBE_FLAG_SHOW_PARALLAX = (1 << 2) , LIGHTPROBE_FLAG_SHOW_CLIP_DIST = (1 << 3) ,
  LIGHTPROBE_FLAG_SHOW_DATA = (1 << 4) , LIGHTPROBE_FLAG_INVERT_GROUP = (1 << 5)
}
 
enum  { LIGHTPROBE_GRID_CAPTURE_WORLD = (1 << 0) , LIGHTPROBE_GRID_CAPTURE_INDIRECT = (1 << 1) , LIGHTPROBE_GRID_CAPTURE_EMISSION = (1 << 2) }
 
enum  { LIGHTPROBE_DISP_WIRE = 0 , LIGHTPROBE_DISP_SHADED = 1 , LIGHTPROBE_DISP_DIFFUSE = 2 , LIGHTPROBE_DISP_REFLECTIVE = 3 }
 
enum  { LIGHTPROBE_SHAPE_ELIPSOID = 0 , LIGHTPROBE_SHAPE_BOX = 1 }
 
enum  { LIGHTCACHE_TYPE_STATIC = 0 }
 
enum  {
  LIGHTCACHE_BAKED = (1 << 0) , LIGHTCACHE_BAKING = (1 << 1) , LIGHTCACHE_CUBE_READY = (1 << 2) , LIGHTCACHE_GRID_READY = (1 << 3) ,
  LIGHTCACHE_UPDATE_CUBE = (1 << 4) , LIGHTCACHE_UPDATE_GRID = (1 << 5) , LIGHTCACHE_UPDATE_WORLD = (1 << 6) , LIGHTCACHE_UPDATE_AUTO = (1 << 7) ,
  LIGHTCACHE_INVALID = (1 << 8) , LIGHTCACHE_NOT_USABLE = (1 << 9)
}
 
enum  { LIGHTCACHETEX_BYTE = (1 << 0) , LIGHTCACHETEX_FLOAT = (1 << 1) , LIGHTCACHETEX_UINT = (1 << 2) }
 

LightProbeGridCacheFrame

enum  { LIGHTPROBE_CACHE_UNIFORM_GRID = 0 , LIGHTPROBE_CACHE_ADAPTIVE_RESOLUTION = 1 }
 
enum  { LIGHTPROBE_CACHE_TYPE_NONE = 0 , LIGHTPROBE_CACHE_TYPE_STATIC = 1 }
 
typedef struct LightProbeGridCacheFrame LightProbeGridCacheFrame
 
typedef struct LightProbeObjectCache LightProbeObjectCache
 

Macro Definition Documentation

◆ LIGHTCACHE_STATIC_VERSION

#define LIGHTCACHE_STATIC_VERSION   2

Definition at line 197 of file DNA_lightprobe_types.h.

Typedef Documentation

◆ LightCache

typedef struct LightCache LightCache

◆ LightCacheTexture

typedef struct LightCacheTexture LightCacheTexture

◆ LightGridCache

typedef struct LightGridCache LightGridCache

◆ LightProbe

typedef struct LightProbe LightProbe

◆ LightProbeBakingData

typedef struct LightProbeBakingData LightProbeBakingData

Irradiance data (RGB) stored along visibility (A). This is the format used during baking and is used for visualizing the baking process.

◆ LightProbeBlockData

typedef struct LightProbeBlockData LightProbeBlockData

Defines one block of data inside the grid cache data arrays. The block size if the same for all the blocks.

◆ LightProbeCache

typedef struct LightProbeCache LightProbeCache

◆ LightProbeConnectivityData

typedef struct LightProbeConnectivityData LightProbeConnectivityData

Used to avoid light leaks. Validate visibility between each grid sample.

◆ LightProbeGridCacheFrame

typedef struct LightProbeGridCacheFrame LightProbeGridCacheFrame

A frame worth of baked lighting data.

◆ LightProbeIrradianceData

typedef struct LightProbeIrradianceData LightProbeIrradianceData

Irradiance stored as RGB triple using scene linear color space.

◆ LightProbeObjectCache

typedef struct LightProbeObjectCache LightProbeObjectCache

Per object container of baked data. Should be called LightProbeCache but name is already taken.

◆ LightProbeVisibilityData

typedef struct LightProbeVisibilityData LightProbeVisibilityData

Normalized visibility of distant light. Used for compositing grids together.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
LIGHTPROBE_TYPE_SPHERE 
LIGHTPROBE_TYPE_PLANE 
LIGHTPROBE_TYPE_VOLUME 

Definition at line 87 of file DNA_lightprobe_types.h.

◆ anonymous enum

anonymous enum
Enumerator
LIGHTPROBE_FLAG_CUSTOM_PARALLAX 
LIGHTPROBE_FLAG_SHOW_INFLUENCE 
LIGHTPROBE_FLAG_SHOW_PARALLAX 
LIGHTPROBE_FLAG_SHOW_CLIP_DIST 
LIGHTPROBE_FLAG_SHOW_DATA 
LIGHTPROBE_FLAG_INVERT_GROUP 

Definition at line 94 of file DNA_lightprobe_types.h.

◆ anonymous enum

anonymous enum
Enumerator
LIGHTPROBE_GRID_CAPTURE_WORLD 
LIGHTPROBE_GRID_CAPTURE_INDIRECT 
LIGHTPROBE_GRID_CAPTURE_EMISSION 

Definition at line 104 of file DNA_lightprobe_types.h.

◆ anonymous enum

anonymous enum
Enumerator
LIGHTPROBE_DISP_WIRE 
LIGHTPROBE_DISP_SHADED 
LIGHTPROBE_DISP_DIFFUSE 
LIGHTPROBE_DISP_REFLECTIVE 

Definition at line 111 of file DNA_lightprobe_types.h.

◆ anonymous enum

anonymous enum
Enumerator
LIGHTPROBE_SHAPE_ELIPSOID 
LIGHTPROBE_SHAPE_BOX 

Definition at line 119 of file DNA_lightprobe_types.h.

◆ anonymous enum

anonymous enum
Enumerator
LIGHTCACHE_TYPE_STATIC 

Definition at line 200 of file DNA_lightprobe_types.h.

◆ anonymous enum

anonymous enum
Enumerator
LIGHTCACHE_BAKED 
LIGHTCACHE_BAKING 
LIGHTCACHE_CUBE_READY 
LIGHTCACHE_GRID_READY 
LIGHTCACHE_UPDATE_CUBE 
LIGHTCACHE_UPDATE_GRID 
LIGHTCACHE_UPDATE_WORLD 
LIGHTCACHE_UPDATE_AUTO 
LIGHTCACHE_INVALID 

Invalid means we tried to alloc it but failed.

LIGHTCACHE_NOT_USABLE 

The data present in the cache is valid but unusable on this GPU.

Definition at line 205 of file DNA_lightprobe_types.h.

◆ anonymous enum

anonymous enum
Enumerator
LIGHTCACHETEX_BYTE 
LIGHTCACHETEX_FLOAT 
LIGHTCACHETEX_UINT 

Definition at line 222 of file DNA_lightprobe_types.h.

◆ anonymous enum

anonymous enum

LightProbeGridCacheFrame.data_layout (int)

Enumerator
LIGHTPROBE_CACHE_UNIFORM_GRID 

Simple uniform grid. Raw output from GPU. Used during the baking process.

LIGHTPROBE_CACHE_ADAPTIVE_RESOLUTION 

Fills the space with different level of resolution. More efficient storage.

Definition at line 328 of file DNA_lightprobe_types.h.

◆ anonymous enum

anonymous enum

#LightProbeObjectCache.type (int)

Enumerator
LIGHTPROBE_CACHE_TYPE_NONE 

Light cache was just created and is not yet baked. Keep as 0 for default value.

LIGHTPROBE_CACHE_TYPE_STATIC 

Light cache is baked for one specific frame and capture all indirect lighting.

Definition at line 353 of file DNA_lightprobe_types.h.