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