diff options
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_color_types.h | 3 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_gpu_types.h | 47 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_image_types.h | 4 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_node_types.h | 1 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_object_types.h | 41 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_view3d_types.h | 10 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_world_types.h | 12 |
7 files changed, 112 insertions, 6 deletions
diff --git a/source/blender/makesdna/DNA_color_types.h b/source/blender/makesdna/DNA_color_types.h index c9a5e056e4a..92372d3419f 100644 --- a/source/blender/makesdna/DNA_color_types.h +++ b/source/blender/makesdna/DNA_color_types.h @@ -163,7 +163,7 @@ typedef struct Scopes { #define SCOPES_WAVEFRM_YCC_JPEG 4 typedef struct ColorManagedViewSettings { - int flag, pad; + int flag, lut_is_outdated; char look[64]; /* look which is being applied when displaying buffer on the screen (prior to view transform) */ char view_transform[64]; /* view transform which is being applied when displaying buffer on the screen */ float exposure; /* fstop exposure */ @@ -174,6 +174,7 @@ typedef struct ColorManagedViewSettings { typedef struct ColorManagedDisplaySettings { char display_device[64]; + int lut_is_outdated, pad; } ColorManagedDisplaySettings; typedef struct ColorManagedColorspaceSettings { diff --git a/source/blender/makesdna/DNA_gpu_types.h b/source/blender/makesdna/DNA_gpu_types.h index 967cb7284dc..1e82fdcd10d 100644 --- a/source/blender/makesdna/DNA_gpu_types.h +++ b/source/blender/makesdna/DNA_gpu_types.h @@ -32,6 +32,8 @@ #ifndef __DNA_GPU_TYPES_H__ #define __DNA_GPU_TYPES_H__ +/* ********** GPU POST FX *********** */ + /* properties for dof effect */ typedef struct GPUDOFSettings { float focus_distance; /* focal distance for depth of field */ @@ -49,20 +51,57 @@ typedef struct GPUSSAOSettings { float distance_max; float attenuation; int samples; /* ray samples, we use presets here for easy control instead of */ - int pad; + int steps; } GPUSSAOSettings; typedef struct GPUFXSettings { GPUDOFSettings *dof; GPUSSAOSettings *ssao; char fx_flag; /* eGPUFXFlags */ - char pad[7]; + char fx_flag2; /* eGPUFXFlags */ + char pad[6]; } GPUFXSettings; /* shaderfx enables */ typedef enum eGPUFXFlags { - GPU_FX_FLAG_DOF = (1 << 0), - GPU_FX_FLAG_SSAO = (1 << 1), + GPU_FX_FLAG_DOF = (1 << 0), + GPU_FX_FLAG_SSAO = (1 << 1), + GPU_FX_FLAG_COLORMANAGEMENT = (1 << 2), } eGPUFXFlags; +/* ********** GPU PBR *********** */ + +/* Screen space reflection settings */ +typedef struct GPUSSRSettings { + float attenuation; + float thickness; + int steps; + int pad; +} GPUSSRSettings; + +/* Material surfaces and sampling settings */ +typedef struct GPUBRDFSettings { + float lodbias; + float pad; + int samples; + int pad2; +} GPUBRDFSettings; + +typedef struct GPUPBRSettings { + GPUBRDFSettings *brdf; + GPUSSRSettings *ssr; + GPUSSAOSettings *ssao; + char pbr_flag; /* eGPUPBRFlags */ + char pad[7]; +} GPUPBRSettings; + +/* pbrshader enables */ +typedef enum eGPUPBRFlags { + GPU_PBR_FLAG_ENABLE = (1 << 0), + GPU_PBR_FLAG_SSR = (1 << 1), + GPU_PBR_FLAG_SSAO = (1 << 2), + GPU_PBR_FLAG_BACKFACE = (1 << 3), + GPU_PBR_FLAG_LAYER_OVERRIDE = (1 << 4), +} eGPUPBRFlags; + #endif /* __DNA_GPU_TYPES_H__ */ diff --git a/source/blender/makesdna/DNA_image_types.h b/source/blender/makesdna/DNA_image_types.h index b4bc26f45cd..47a41212996 100644 --- a/source/blender/makesdna/DNA_image_types.h +++ b/source/blender/makesdna/DNA_image_types.h @@ -156,6 +156,10 @@ typedef struct Image { struct Stereo3dFormat *stereo3d_format; RenderSlot render_slots[8]; /* 8 = IMA_MAX_RENDER_SLOT */ + + short last_projection; + short is_envmap; + float SH_Coefs[9][3]; } Image; diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 46b30f41f5b..3a76c7f1063 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -752,6 +752,7 @@ typedef struct NodeTexEnvironment { ImageUser iuser; int color_space; int projection; + struct GPUNodeLink *normal_transform_link; int interpolation; int pad; } NodeTexEnvironment; diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index d53c8360bb5..7c2308860da 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -286,9 +286,10 @@ typedef struct Object { unsigned int init_state; /* bit masks of initial state as recorded by the users */ ListBase gpulamp; /* runtime, for glsl lamp display only */ + ListBase gpuprobe; /* runtime, for glsl reflections */ ListBase pc_ids; ListBase *duplilist; /* for temporary dupli list storage, only for use by RNA API */ - + struct RigidBodyOb *rigidbody_object; /* settings for Bullet rigid body */ struct RigidBodyCon *rigidbody_constraint; /* settings for Bullet constraint */ @@ -299,6 +300,23 @@ typedef struct Object { LodLevel *currentlod; struct PreviewImage *preview; + + /* Probe options */ + struct Object *probe; /* the probe object used for rendering it's materials */ + struct Object *parallaxcorrect; /* the parallax bounding object used for rendering */ + struct Object *reflectionplane; + + char probeparallax; + char probeflags; + short probetype; + + float probeclipsta; + float probeclipend; + unsigned int probesize; + unsigned int probeshres; + + float probeclipbias; + int pad3[2]; } Object; /* Warning, this is not used anymore because hooks are now modifiers */ @@ -489,6 +507,27 @@ enum { OB_LOD_USE_HYST = 1 << 2, }; +/* (short) probe type */ +enum { + OB_PROBE_OBJECT = 1, + OB_PROBE_CUBEMAP = 2, + OB_PROBE_PLANAR = 3, +}; + +/* (short) probe parallax */ +enum { + OB_PROBE_PARRALAX_ELLIPSOID = 1, + OB_PROBE_PARRALAX_BOX = 2, +}; + +/* (short) probeflags */ +enum { + OB_PROBE_AUTO_UPDATE = 1 << 0, + OB_PROBE_DOUBLE_UPDATE = 1 << 1, + OB_PROBE_COMPUTE_SH = 1 << 2, + OB_PROBE_USE_LAYERS = 1 << 3, +}; + /* **************** BASE ********************* */ diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 5b533d1ec48..f42a4587120 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -45,6 +45,7 @@ struct SmoothView3DStore; struct wmTimer; struct Material; struct GPUFX; +struct GPUSSR; /* This is needed to not let VC choke on near and far... old * proprietary MS extensions... */ @@ -238,6 +239,11 @@ typedef struct View3D { float stereo3d_volume_alpha; float stereo3d_convergence_alpha; + /* Pbr */ + struct Object *probe_source; /* runtime : the probe that is being updated when V3D_PROBE_CAPTURE */ + struct GPUPBRSettings pbr_settings; + struct GPUPBR *pbr; /* holds all pbr specific textures */ + /* Previous viewport draw type. * Runtime-only, set in the rendered viewport otggle operator. */ @@ -319,6 +325,10 @@ typedef struct View3D { /* View3d->flag3 (short) */ #define V3D_SHOW_WORLD (1 << 0) +#define V3D_SHOW_WORLD_DIFFUSE (1 << 1) +/*#define V3D_REALISTIC_MAT (1 << 2)*/ /* UNUSED */ +#define V3D_PROBE_CAPTURE (1 << 3) /* runtime flag */ +#define V3D_FLIP_NORMALS (1 << 4) /* invert culling during reflection pass */ /* View3D->around */ enum { diff --git a/source/blender/makesdna/DNA_world_types.h b/source/blender/makesdna/DNA_world_types.h index 5fd4c9fd407..ecfe53cae12 100644 --- a/source/blender/makesdna/DNA_world_types.h +++ b/source/blender/makesdna/DNA_world_types.h @@ -129,6 +129,12 @@ typedef struct World { struct bNodeTree *nodetree; ListBase gpumaterial; /* runtime */ + ListBase gpuprobe; /* runtime */ + + char probeflags, pad2[3]; + + unsigned int probesize, probeshres; + float pad3; } World; /* **************** WORLD ********************* */ @@ -200,5 +206,11 @@ enum { */ #define WO_DS_SHOW_TEXS (1<<2) +/* (short) probeflags */ +enum { + WO_PROBE_AUTO_UPDATE = 1 << 0, + WO_PROBE_COMPUTE_SH = 1 << 1, +}; + #endif |