Blender  V2.93
DNA_scene_defaults.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16 
21 #pragma once
22 
23 #include "DNA_view3d_defaults.h"
24 
25 /* Struct members on own line. */
26 /* clang-format off */
27 
28 /* -------------------------------------------------------------------- */
32 #define _DNA_DEFAULT_ImageFormatData \
33  { \
34  .planes = R_IMF_PLANES_RGBA, \
35  .imtype = R_IMF_IMTYPE_PNG, \
36  .depth = R_IMF_CHAN_DEPTH_8, \
37  .quality = 90, \
38  .compress = 15, \
39  }
40 
41 #define _DNA_DEFAULT_BakeData \
42  { \
43  .im_format = _DNA_DEFAULT_ImageFormatData, \
44  .filepath = "//", \
45  .flag = R_BAKE_CLEAR, \
46  .pass_filter = R_BAKE_PASS_FILTER_ALL, \
47  .width = 512, \
48  .height = 512, \
49  .margin = 16, \
50  .normal_space = R_BAKE_SPACE_TANGENT, \
51  .normal_swizzle = {R_BAKE_POSX, R_BAKE_POSY, R_BAKE_POSZ}, \
52  }
53 
54 #define _DNA_DEFAULT_FFMpegCodecData \
55  { \
56  .audio_mixrate = 48000, \
57  .audio_volume = 1.0f, \
58  .audio_bitrate = 192, \
59  .audio_channels = 2, \
60  }
61 
62 #define _DNA_DEFAULT_DisplaySafeAreas \
63  { \
64  .title = {10.0f / 100.0f, 5.0f / 100.0f}, \
65  .action = {3.5f / 100.0f, 3.5f / 100.0f}, \
66  .title_center = {17.5f / 100.0f, 5.0f / 100.0f}, \
67  .action_center = {15.0f / 100.0f, 5.0f / 100.0f}, \
68  }
69 
70 #define _DNA_DEFAULT_RenderData \
71  { \
72  .mode = 0, \
73  .cfra = 1, \
74  .sfra = 1, \
75  .efra = 250, \
76  .frame_step = 1, \
77  .xsch = 1920, \
78  .ysch = 1080, \
79  .xasp = 1, \
80  .yasp = 1, \
81  .tilex = 256, \
82  .tiley = 256, \
83  .size = 100, \
84  \
85  .im_format = _DNA_DEFAULT_ImageFormatData, \
86  \
87  .framapto = 100, \
88  .images = 100, \
89  .framelen = 1.0, \
90  .blurfac = 0.5, \
91  .frs_sec = 24, \
92  .frs_sec_base = 1, \
93  \
94  /* OCIO_TODO: for forwards compatibility only, so if no tone-curve are used, \
95  * images would look in the same way as in current blender \
96  * \
97  * perhaps at some point should be completely deprecated? \
98  */ \
99  .color_mgt_flag = R_COLOR_MANAGEMENT, \
100  \
101  .gauss = 1.5, \
102  .dither_intensity = 1.0f, \
103  \
104  .bake_mode = 0, \
105  .bake_filter = 16, \
106  .bake_flag = R_BAKE_CLEAR, \
107  .bake_samples = 256, \
108  .bake_biasdist = 0.001f, \
109  \
110  /* BakeData */ \
111  .bake = _DNA_DEFAULT_BakeData, \
112  \
113  .scemode = R_DOCOMP | R_DOSEQ | R_EXTENSION, \
114  \
115  .pic = "//", \
116  \
117  .stamp = R_STAMP_TIME | R_STAMP_FRAME | R_STAMP_DATE | R_STAMP_CAMERA | R_STAMP_SCENE | \
118  R_STAMP_FILENAME | R_STAMP_RENDERTIME | R_STAMP_MEMORY, \
119  .stamp_font_id = 12, \
120  .fg_stamp = {0.8f, 0.8f, 0.8f, 1.0f}, \
121  .bg_stamp = {0.0f, 0.0f, 0.0f, 0.25f}, \
122  \
123  .seq_prev_type = OB_SOLID, \
124  .seq_rend_type = OB_SOLID, \
125  .seq_flag = 0, \
126  \
127  .threads = 1, \
128  \
129  .simplify_subsurf = 6, \
130  .simplify_particles = 1.0f, \
131  .simplify_volumes = 1.0f, \
132  \
133  .border.xmin = 0.0f, \
134  .border.ymin = 0.0f, \
135  .border.xmax = 1.0f, \
136  .border.ymax = 1.0f, \
137  \
138  .preview_start_resolution = 64, \
139  \
140  .line_thickness_mode = R_LINE_THICKNESS_ABSOLUTE, \
141  .unit_line_thickness = 1.0f, \
142  \
143  .ffcodecdata = _DNA_DEFAULT_FFMpegCodecData, \
144  }
145 
146 #define _DNA_DEFAULT_AudioData \
147  { \
148  .distance_model = 2.0f, \
149  .doppler_factor = 1.0f, \
150  .speed_of_sound = 343.3f, \
151  .volume = 1.0f, \
152  .flag = AUDIO_SYNC, \
153  }
154 
155 #define _DNA_DEFAULT_SceneDisplay \
156  { \
157  .light_direction = {M_SQRT1_3, M_SQRT1_3, M_SQRT1_3}, \
158  .shadow_shift = 0.1f, \
159  .shadow_focus = 0.0f, \
160  \
161  .matcap_ssao_distance = 0.2f, \
162  .matcap_ssao_attenuation = 1.0f, \
163  .matcap_ssao_samples = 16, \
164  \
165  .shading = _DNA_DEFAULT_View3DShading, \
166  \
167  .render_aa = SCE_DISPLAY_AA_SAMPLES_8, \
168  .viewport_aa = SCE_DISPLAY_AA_FXAA, \
169  }
170 
171 #define _DNA_DEFAULT_PhysicsSettings \
172  { \
173  .gravity = {0.0f, 0.0f, -9.81f}, \
174  .flag = PHYS_GLOBAL_GRAVITY, \
175  }
176 
177 #define _DNA_DEFAULT_SceneEEVEE \
178  { \
179  .gi_diffuse_bounces = 3, \
180  .gi_cubemap_resolution = 512, \
181  .gi_visibility_resolution = 32, \
182  .gi_cubemap_draw_size = 0.3f, \
183  .gi_irradiance_draw_size = 0.1f, \
184  .gi_irradiance_smoothing = 0.1f, \
185  .gi_filter_quality = 3.0f, \
186  \
187  .taa_samples = 16, \
188  .taa_render_samples = 64, \
189  \
190  .sss_samples = 7, \
191  .sss_jitter_threshold = 0.3f, \
192  \
193  .ssr_quality = 0.25f, \
194  .ssr_max_roughness = 0.5f, \
195  .ssr_thickness = 0.2f, \
196  .ssr_border_fade = 0.075f, \
197  .ssr_firefly_fac = 10.0f, \
198  \
199  .volumetric_start = 0.1f, \
200  .volumetric_end = 100.0f, \
201  .volumetric_tile_size = 8, \
202  .volumetric_samples = 64, \
203  .volumetric_sample_distribution = 0.8f, \
204  .volumetric_light_clamp = 0.0f, \
205  .volumetric_shadow_samples = 16, \
206  \
207  .gtao_distance = 0.2f, \
208  .gtao_factor = 1.0f, \
209  .gtao_quality = 0.25f, \
210  \
211  .bokeh_overblur = 5.0f, \
212  .bokeh_max_size = 100.0f, \
213  .bokeh_threshold = 1.0f, \
214  .bokeh_neighbor_max = 10.0f, \
215  .bokeh_denoise_fac = 0.75f, \
216  \
217  .bloom_color = {1.0f, 1.0f, 1.0f}, \
218  .bloom_threshold = 0.8f, \
219  .bloom_knee = 0.5f, \
220  .bloom_intensity = 0.05f, \
221  .bloom_radius = 6.5f, \
222  .bloom_clamp = 0.0f, \
223  \
224  .motion_blur_shutter = 0.5f, \
225  .motion_blur_depth_scale = 100.0f, \
226  .motion_blur_max = 32, \
227  .motion_blur_steps = 1, \
228  \
229  .shadow_cube_size = 512, \
230  .shadow_cascade_size = 1024, \
231  \
232  .light_cache_data = NULL, \
233  .light_threshold = 0.01f, \
234  \
235  .overscan = 3.0f, \
236  \
237  .flag = SCE_EEVEE_VOLUMETRIC_LIGHTS | SCE_EEVEE_GTAO_BENT_NORMALS | \
238  SCE_EEVEE_GTAO_BOUNCE | SCE_EEVEE_TAA_REPROJECTION | \
239  SCE_EEVEE_SSR_HALF_RESOLUTION | SCE_EEVEE_SHADOW_SOFT, \
240  }
241 
242 #define _DNA_DEFAULT_Scene \
243  { \
244  .cursor = _DNA_DEFAULT_View3DCursor, \
245  .r = _DNA_DEFAULT_RenderData, \
246  .audio = _DNA_DEFAULT_AudioData, \
247  \
248  .display = _DNA_DEFAULT_SceneDisplay, \
249  \
250  .physics_settings = _DNA_DEFAULT_PhysicsSettings, \
251  \
252  .safe_areas = _DNA_DEFAULT_DisplaySafeAreas, \
253  \
254  .eevee = _DNA_DEFAULT_SceneEEVEE, \
255  }
256 
259 /* -------------------------------------------------------------------- */
263 #define _DNA_DEFAULTS_CurvePaintSettings \
264  { \
265  .curve_type = CU_BEZIER, \
266  .flag = CURVE_PAINT_FLAG_CORNERS_DETECT, \
267  .error_threshold = 8, \
268  .radius_max = 1.0f, \
269  .corner_angle = DEG2RADF(70.0f), \
270  }
271 
272 #define _DNA_DEFAULTS_ImagePaintSettings \
273  { \
274  .paint.flags = PAINT_SHOW_BRUSH, \
275  .normal_angle = 80, \
276  .seam_bleed = 2, \
277  }
278 
279 #define _DNA_DEFAULTS_ParticleBrushData \
280  { \
281  .strength = 0.5f, \
282  .size = 50, \
283  .step = 10, \
284  .count = 10, \
285  }
286 
287 #define _DNA_DEFAULTS_UnifiedPaintSettings \
288  { \
289  .size = 50, \
290  .unprojected_radius = 0.29, \
291  .alpha = 0.5f, \
292  .weight = 0.5f, \
293  .flag = UNIFIED_PAINT_SIZE | UNIFIED_PAINT_ALPHA, \
294  }
295 
296 #define _DNA_DEFAULTS_ParticleEditSettings \
297  { \
298  .flag = PE_KEEP_LENGTHS | PE_LOCK_FIRST | PE_DEFLECT_EMITTER | PE_AUTO_VELOCITY, \
299  .emitterdist = 0.25f, \
300  .totrekey = 5, \
301  .totaddkey = 5, \
302  .brushtype = PE_BRUSH_COMB, \
303  \
304  /* Scene init copies this to all other elements. */ \
305  .brush = {_DNA_DEFAULTS_ParticleBrushData}, \
306  \
307  .draw_step = 2, \
308  .fade_frames = 2, \
309  .selectmode = SCE_SELECT_PATH, \
310  }
311 
312 #define _DNA_DEFAULTS_GP_Sculpt_Guide \
313  { \
314  .spacing = 20.0f, \
315  }
316 
317 #define _DNA_DEFAULTS_GP_Sculpt_Settings \
318  { \
319  .guide = _DNA_DEFAULTS_GP_Sculpt_Guide, \
320  }
321 
322 #define _DNA_DEFAULTS_MeshStatVis \
323  { \
324  .overhang_axis = OB_NEGZ, \
325  .overhang_min = 0, \
326  .overhang_max = DEG2RADF(45.0f), \
327  .thickness_max = 0.1f, \
328  .thickness_samples = 1, \
329  .distort_min = DEG2RADF(5.0f), \
330  .distort_max = DEG2RADF(45.0f), \
331  \
332  .sharp_min = DEG2RADF(90.0f), \
333  .sharp_max = DEG2RADF(180.0f), \
334  }
335 
336 #define _DNA_DEFAULT_ToolSettings \
337  { \
338  .object_flag = SCE_OBJECT_MODE_LOCK, \
339  .doublimit = 0.001, \
340  .vgroup_weight = 1.0f, \
341  .uvcalc_margin = 0.001f, \
342  .uvcalc_flag = UVCALC_TRANSFORM_CORRECT_SLIDE, \
343  .unwrapper = 1, \
344  .select_thresh = 0.01f, \
345  \
346  .selectmode = SCE_SELECT_VERTEX, \
347  .uv_selectmode = UV_SELECT_VERTEX, \
348  .autokey_mode = AUTOKEY_MODE_NORMAL, \
349  \
350  .transform_pivot_point = V3D_AROUND_CENTER_MEDIAN, \
351  .snap_mode = SCE_SNAP_MODE_INCREMENT, \
352  .snap_node_mode = SCE_SNAP_MODE_GRID, \
353  .snap_uv_mode = SCE_SNAP_MODE_INCREMENT, \
354  .snap_transform_mode_flag = SCE_SNAP_TRANSFORM_MODE_TRANSLATE, \
355  \
356  .curve_paint_settings = _DNA_DEFAULTS_CurvePaintSettings, \
357  \
358  .unified_paint_settings = _DNA_DEFAULTS_UnifiedPaintSettings, \
359  \
360  .statvis = _DNA_DEFAULTS_MeshStatVis, \
361  \
362  .proportional_size = 1.0f, \
363  \
364  .imapaint = _DNA_DEFAULTS_ImagePaintSettings, \
365  \
366  .particle = _DNA_DEFAULTS_ParticleEditSettings, \
367  \
368  .gp_sculpt = _DNA_DEFAULTS_GP_Sculpt_Settings, \
369  \
370  /* Annotations */ \
371  .annotate_v3d_align = GP_PROJECT_VIEWSPACE | GP_PROJECT_CURSOR, \
372  .annotate_thickness = 3, \
373  \
374  /* GP Stroke Placement */ \
375  .gpencil_v3d_align = GP_PROJECT_VIEWSPACE, \
376  .gpencil_v2d_align = GP_PROJECT_VIEWSPACE, \
377  .gpencil_seq_align = GP_PROJECT_VIEWSPACE, \
378  .gpencil_ima_align = GP_PROJECT_VIEWSPACE, \
379  }
380 
381 /* clang-format off */