Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/BKE_studiolight.h')
-rw-r--r--source/blender/blenkernel/BKE_studiolight.h44
1 files changed, 18 insertions, 26 deletions
diff --git a/source/blender/blenkernel/BKE_studiolight.h b/source/blender/blenkernel/BKE_studiolight.h
index 4a7f29d7190..7ec98c99c3f 100644
--- a/source/blender/blenkernel/BKE_studiolight.h
+++ b/source/blender/blenkernel/BKE_studiolight.h
@@ -61,43 +61,36 @@
#define STUDIOLIGHT_ICON_SIZE 96
-#define STUDIOLIGHT_SPHERICAL_HARMONICS_LEVEL 2
-#define STUDIOLIGHT_SPHERICAL_HARMONICS_MAX_COMPONENTS 18
+/* Only 1 - 5 is supported */
+#define STUDIOLIGHT_SH_BANDS 2
-#if STUDIOLIGHT_SPHERICAL_HARMONICS_LEVEL == 0
-# define STUDIOLIGHT_SPHERICAL_HARMONICS_COMPONENTS 1
-#endif
-
-#if STUDIOLIGHT_SPHERICAL_HARMONICS_LEVEL == 1
-# define STUDIOLIGHT_SPHERICAL_HARMONICS_COMPONENTS 4
-#endif
+#define STUDIOLIGHT_SH_COEFS_LEN (STUDIOLIGHT_SH_BANDS * STUDIOLIGHT_SH_BANDS)
-#if STUDIOLIGHT_SPHERICAL_HARMONICS_LEVEL == 2
-# define STUDIOLIGHT_SPHERICAL_HARMONICS_COMPONENTS 9
-# define STUDIOLIGHT_SPHERICAL_HARMONICS_WINDOWING_TARGET_LAMPLACIAN 10.0f
+#if STUDIOLIGHT_SH_BANDS > 3
+/* Bypass L3 */
+#define STUDIOLIGHT_SH_EFFECTIVE_COEFS_LEN (STUDIOLIGHT_SH_COEFS_LEN - 7)
+#else
+#define STUDIOLIGHT_SH_EFFECTIVE_COEFS_LEN STUDIOLIGHT_SH_COEFS_LEN
#endif
-#if STUDIOLIGHT_SPHERICAL_HARMONICS_LEVEL == 4
-# define STUDIOLIGHT_SPHERICAL_HARMONICS_COMPONENTS 18
-#endif
struct GPUTexture;
struct StudioLight;
/* StudioLight.flag */
enum StudioLightFlag {
STUDIOLIGHT_SPHERICAL_HARMONICS_COEFFICIENTS_CALCULATED = (1 << 0),
- STUDIOLIGHT_LIGHT_DIRECTION_CALCULATED = (1 << 1),
+/* STUDIOLIGHT_LIGHT_DIRECTION_CALCULATED = (1 << 1), */
STUDIOLIGHT_INTERNAL = (1 << 2),
STUDIOLIGHT_EXTERNAL_FILE = (1 << 3),
- STUDIOLIGHT_USER_DEFINED = (1 << 12),
STUDIOLIGHT_ORIENTATION_CAMERA = (1 << 4),
STUDIOLIGHT_ORIENTATION_WORLD = (1 << 5),
STUDIOLIGHT_ORIENTATION_VIEWNORMAL = (1 << 6),
STUDIOLIGHT_EXTERNAL_IMAGE_LOADED = (1 << 7),
- STUDIOLIGHT_EQUIRECTANGULAR_IRRADIANCE_IMAGE_CALCULATED = (1 << 8),
- STUDIOLIGHT_EQUIRECTANGULAR_RADIANCE_GPUTEXTURE = (1 << 9),
- STUDIOLIGHT_EQUIRECTANGULAR_IRRADIANCE_GPUTEXTURE = (1 << 10),
+ STUDIOLIGHT_EQUIRECT_IRRADIANCE_IMAGE_CALCULATED = (1 << 8),
+ STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE = (1 << 9),
+ STUDIOLIGHT_EQUIRECT_IRRADIANCE_GPUTEXTURE = (1 << 10),
STUDIOLIGHT_RADIANCE_BUFFERS_CALCULATED = (1 << 11),
+ STUDIOLIGHT_USER_DEFINED = (1 << 12),
STUDIOLIGHT_UI_EXPANDED = (1 << 13),
};
@@ -121,14 +114,13 @@ typedef struct StudioLight {
int icon_id_radiance;
int icon_id_matcap;
int icon_id_matcap_flipped;
- float spherical_harmonics_coefs[STUDIOLIGHT_SPHERICAL_HARMONICS_COMPONENTS][3];
+ float spherical_harmonics_coefs[STUDIOLIGHT_SH_EFFECTIVE_COEFS_LEN][3];
float light_direction[3];
- ImBuf *equirectangular_radiance_buffer;
- ImBuf *equirectangular_irradiance_buffer;
+ ImBuf *equirect_radiance_buffer;
+ ImBuf *equirect_irradiance_buffer;
ImBuf *radiance_cubemap_buffers[6];
- struct GPUTexture *equirectangular_radiance_gputexture;
- struct GPUTexture *equirectangular_irradiance_gputexture;
- float *gpu_matcap_3components; /* 3 channel buffer for GPU_R11F_G11F_B10F */
+ struct GPUTexture *equirect_radiance_gputexture;
+ struct GPUTexture *equirect_irradiance_gputexture;
/*
* Free function to clean up the running icons previews (wmJob) the usage is in