Blender V4.3
DNA_scene_defaults.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11#include "DNA_view3d_defaults.h"
12
13/* clang-format off */
14
15/* -------------------------------------------------------------------- */
19#define _DNA_DEFAULT_ImageFormatData \
20 { \
21 .planes = R_IMF_PLANES_RGBA, \
22 .imtype = R_IMF_IMTYPE_PNG, \
23 .depth = R_IMF_CHAN_DEPTH_8, \
24 .quality = 90, \
25 .compress = 15, \
26 }
27
28#define _DNA_DEFAULT_BakeData \
29 { \
30 .im_format = _DNA_DEFAULT_ImageFormatData, \
31 .filepath = "//", \
32 .flag = R_BAKE_CLEAR, \
33 .pass_filter = R_BAKE_PASS_FILTER_ALL, \
34 .width = 512, \
35 .height = 512, \
36 .margin = 16, \
37 .margin_type = R_BAKE_ADJACENT_FACES, \
38 .normal_space = R_BAKE_SPACE_TANGENT, \
39 .normal_swizzle = {R_BAKE_POSX, R_BAKE_POSY, R_BAKE_POSZ}, \
40 }
41
42#define _DNA_DEFAULT_FFMpegCodecData \
43 { \
44 .audio_mixrate = 48000, \
45 .audio_volume = 1.0f, \
46 .audio_bitrate = 192, \
47 .audio_channels = 2, \
48 }
49
50#define _DNA_DEFAULT_DisplaySafeAreas \
51 { \
52 .title = {10.0f / 100.0f, 5.0f / 100.0f}, \
53 .action = {3.5f / 100.0f, 3.5f / 100.0f}, \
54 .title_center = {17.5f / 100.0f, 5.0f / 100.0f}, \
55 .action_center = {15.0f / 100.0f, 5.0f / 100.0f}, \
56 }
57
58#define _DNA_DEFAULT_RenderData \
59 { \
60 .mode = 0, \
61 .cfra = 1, \
62 .sfra = 1, \
63 .efra = 250, \
64 .frame_step = 1, \
65 .xsch = 1920, \
66 .ysch = 1080, \
67 .xasp = 1, \
68 .yasp = 1, \
69 .tilex = 256, \
70 .tiley = 256, \
71 .size = 100, \
72 \
73 .im_format = _DNA_DEFAULT_ImageFormatData, \
74 \
75 .framapto = 100, \
76 .images = 100, \
77 .framelen = 1.0, \
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, \
131 .motion_blur_shutter = 0.5f, \
132 }
133
134#define _DNA_DEFAULT_AudioData \
135 { \
136 .distance_model = 2.0f, \
137 .doppler_factor = 1.0f, \
138 .speed_of_sound = 343.3f, \
139 .volume = 1.0f, \
140 .flag = AUDIO_SYNC, \
141 }
142
143#define _DNA_DEFAULT_SceneDisplay \
144 { \
145 .light_direction = {M_SQRT1_3, M_SQRT1_3, M_SQRT1_3}, \
146 .shadow_shift = 0.1f, \
147 .shadow_focus = 0.0f, \
148 \
149 .matcap_ssao_distance = 0.2f, \
150 .matcap_ssao_attenuation = 1.0f, \
151 .matcap_ssao_samples = 16, \
152 \
153 .shading = _DNA_DEFAULT_View3DShading, \
154 \
155 .render_aa = SCE_DISPLAY_AA_SAMPLES_8, \
156 .viewport_aa = SCE_DISPLAY_AA_FXAA, \
157 }
158
159#define _DNA_DEFAULT_RaytraceEEVEE \
160 { \
161 .flag = RAYTRACE_EEVEE_USE_DENOISE, \
162 .denoise_stages = RAYTRACE_EEVEE_DENOISE_SPATIAL | \
163 RAYTRACE_EEVEE_DENOISE_TEMPORAL | \
164 RAYTRACE_EEVEE_DENOISE_BILATERAL, \
165 .screen_trace_quality = 0.25f, \
166 .screen_trace_thickness = 0.2f, \
167 .trace_max_roughness = 0.5f, \
168 .resolution_scale = 2, \
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_irradiance_pool_size = 16, \
183 .shadow_pool_size = 512, \
184 \
185 .taa_samples = 16, \
186 .taa_render_samples = 64, \
187 \
188 .volumetric_start = 0.1f, \
189 .volumetric_end = 100.0f, \
190 .volumetric_tile_size = 8, \
191 .volumetric_samples = 64, \
192 .volumetric_sample_distribution = 0.8f, \
193 .volumetric_ray_depth = 16, \
194 .volumetric_light_clamp = 0.0f, \
195 .volumetric_shadow_samples = 16, \
196 \
197 .gtao_distance = 0.2f, \
198 .gtao_thickness = 0.5f, \
199 .gtao_focus = 0.05f, \
200 .gtao_resolution = 2, \
201 \
202 .fast_gi_step_count = 8, \
203 .fast_gi_ray_count = 2, \
204 .fast_gi_quality = 0.25f, \
205 .fast_gi_distance = 0.0f, \
206 .fast_gi_thickness_near = 0.25f, \
207 .fast_gi_thickness_far = DEG2RAD(45), \
208 .fast_gi_method = FAST_GI_FULL, \
209 \
210 .bokeh_overblur = 5.0f, \
211 .bokeh_max_size = 100.0f, \
212 .bokeh_threshold = 1.0f, \
213 .bokeh_neighbor_max = 10.0f, \
214 \
215 .motion_blur_depth_scale = 100.0f, \
216 .motion_blur_max = 32, \
217 .motion_blur_steps = 1, \
218 \
219 .clamp_surface_indirect = 10.0f, \
220\
221 .shadow_ray_count = 1, \
222 .shadow_step_count = 6, \
223 .shadow_resolution_scale = 1.0f, \
224 \
225 .ray_tracing_method = RAYTRACE_EEVEE_METHOD_SCREEN, \
226 \
227 .ray_tracing_options = _DNA_DEFAULT_RaytraceEEVEE, \
228 \
229 .light_threshold = 0.01f, \
230 \
231 .overscan = 3.0f, \
233 .flag = SCE_EEVEE_TAA_REPROJECTION, \
234 }
235
236#define _DNA_DEFAULT_SceneHydra \
237 { \
238 .export_method = SCE_HYDRA_EXPORT_HYDRA, \
239 }
240
241#define _DNA_DEFAULT_Scene \
242 { \
243 .cursor = _DNA_DEFAULT_View3DCursor, \
244 .r = _DNA_DEFAULT_RenderData, \
245 .audio = _DNA_DEFAULT_AudioData, \
246 \
247 .display = _DNA_DEFAULT_SceneDisplay, \
248 \
249 .physics_settings = _DNA_DEFAULT_PhysicsSettings, \
250 \
251 .safe_areas = _DNA_DEFAULT_DisplaySafeAreas, \
252 \
253 .eevee = _DNA_DEFAULT_SceneEEVEE, \
254 \
255 .hydra = _DNA_DEFAULT_SceneHydra, \
256 .simulation_frame_start = 1, \
257 .simulation_frame_end = 250, \
258 }
259
262/* -------------------------------------------------------------------- */
266#define _DNA_DEFAULTS_CurvePaintSettings \
267 { \
268 .curve_type = CU_BEZIER, \
269 .flag = CURVE_PAINT_FLAG_CORNERS_DETECT, \
270 .error_threshold = 8, \
271 .radius_max = 1.0f, \
272 .corner_angle = DEG2RADF(70.0f), \
273 }
274
275#define _DNA_DEFAULTS_ImagePaintSettings \
276 { \
277 .paint.flags = PAINT_SHOW_BRUSH, \
278 .normal_angle = 80, \
279 .seam_bleed = 2, \
280 }
281
282#define _DNA_DEFAULTS_ParticleBrushData \
283 { \
284 .strength = 0.5f, \
285 .size = 50, \
286 .step = 10, \
287 .count = 10, \
288 }
289
290#define _DNA_DEFAULTS_UnifiedPaintSettings \
291 { \
292 .size = 50, \
293 .input_samples = 1, \
294 .unprojected_radius = 0.29, \
295 .alpha = 0.5f, \
296 .weight = 0.5f, \
297 .rgb = {0.0f, 0.0f, 0.0f}, \
298 .secondary_rgb = {1.0f, 1.0f, 1.0f}, \
299 .flag = UNIFIED_PAINT_SIZE | UNIFIED_PAINT_COLOR, \
300 }
301
302#define _DNA_DEFAULTS_ParticleEditSettings \
303 { \
304 .flag = PE_KEEP_LENGTHS | PE_LOCK_FIRST | PE_DEFLECT_EMITTER | PE_AUTO_VELOCITY, \
305 .emitterdist = 0.25f, \
306 .totrekey = 5, \
307 .totaddkey = 5, \
308 .brushtype = PE_BRUSH_COMB, \
309 \
310 /* Scene init copies this to all other elements. */ \
311 .brush = {_DNA_DEFAULTS_ParticleBrushData}, \
312 \
313 .draw_step = 2, \
314 .fade_frames = 2, \
315 .selectmode = SCE_SELECT_PATH, \
316 }
317
318#define _DNA_DEFAULTS_GP_Sculpt_Guide \
319 { \
320 .spacing = 20.0f, \
321 }
322
323#define _DNA_DEFAULTS_GP_Sculpt_Settings \
324 { \
325 .guide = _DNA_DEFAULTS_GP_Sculpt_Guide, \
326 }
327
328#define _DNA_DEFAULTS_MeshStatVis \
329 { \
330 .overhang_axis = OB_NEGZ, \
331 .overhang_min = 0, \
332 .overhang_max = DEG2RADF(45.0f), \
333 .thickness_max = 0.1f, \
334 .thickness_samples = 1, \
335 .distort_min = DEG2RADF(5.0f), \
336 .distort_max = DEG2RADF(45.0f), \
337 \
338 .sharp_min = DEG2RADF(90.0f), \
339 .sharp_max = DEG2RADF(180.0f), \
340 }
341
342#define _DNA_DEFAULT_ToolSettings \
343 { \
344 .object_flag = SCE_OBJECT_MODE_LOCK, \
345 .doublimit = 0.001, \
346 .vgroup_weight = 1.0f, \
347 \
348 .uvcalc_margin = 0.001f, \
349 .uvcalc_flag = UVCALC_TRANSFORM_CORRECT_SLIDE, \
350 .unwrapper = UVCALC_UNWRAP_METHOD_CONFORMAL, \
351 .uvcalc_iterations = 10, \
352 /* See struct member doc-string regarding this name. */ \
353 .uvcalc_weight_group = "uv_importance", \
354 .uvcalc_weight_factor = 1.0, \
355 \
356 .select_thresh = 0.01f, \
357 \
358 .selectmode = SCE_SELECT_VERTEX, \
359 .uv_selectmode = UV_SELECT_VERTEX, \
360 .autokey_mode = AUTOKEY_MODE_NORMAL, \
361 \
362 .transform_pivot_point = V3D_AROUND_CENTER_MEDIAN, \
363 .snap_mode = SCE_SNAP_TO_INCREMENT, \
364 .snap_node_mode = SCE_SNAP_TO_GRID, \
365 .snap_uv_mode = SCE_SNAP_TO_INCREMENT, \
366 .snap_anim_mode = SCE_SNAP_TO_FRAME, \
367 .snap_flag = SCE_SNAP_TO_INCLUDE_EDITED | SCE_SNAP_TO_INCLUDE_NONEDITED, \
368 .snap_flag_anim = SCE_SNAP, \
369 .snap_transform_mode_flag = SCE_SNAP_TRANSFORM_MODE_TRANSLATE, \
370 .snap_face_nearest_steps = 1, \
371 .snap_angle_increment_3d = DEG2RADF(5.0f), \
372 .snap_angle_increment_2d = DEG2RADF(5.0f), \
373 .snap_angle_increment_3d_precision = DEG2RADF(1.0f), \
374 .snap_angle_increment_2d_precision = DEG2RADF(1.0f), \
375 \
376 .curve_paint_settings = _DNA_DEFAULTS_CurvePaintSettings, \
377 \
378 .unified_paint_settings = _DNA_DEFAULTS_UnifiedPaintSettings, \
379 \
380 .statvis = _DNA_DEFAULTS_MeshStatVis, \
381 \
382 .proportional_size = 1.0f, \
383 \
384 .imapaint = _DNA_DEFAULTS_ImagePaintSettings, \
385 \
386 .particle = _DNA_DEFAULTS_ParticleEditSettings, \
387 \
388 .gp_sculpt = _DNA_DEFAULTS_GP_Sculpt_Settings, \
389 \
390 /* Annotations */ \
391 .annotate_v3d_align = GP_PROJECT_VIEWSPACE | GP_PROJECT_CURSOR, \
392 .annotate_thickness = 3, \
393 \
394 /* GP Stroke Placement */ \
395 .gpencil_v3d_align = GP_PROJECT_VIEWSPACE, \
396 .gpencil_v2d_align = GP_PROJECT_VIEWSPACE, \
397 \
398 /* UV painting */ \
399 .uv_sculpt_settings = 0, \
400 \
401 /* Placement */ \
402 .snap_mode_tools = SCE_SNAP_TO_GEOM,\
403 .plane_axis = 2,\
404 }
405
406#define _DNA_DEFAULT_Sculpt \
407 { \
408 .detail_size = 12,\
409 .detail_percent = 25,\
410 .constant_detail = 3.0f,\
411 .automasking_start_normal_limit = 0.34906585f, /* 20 / 180 * pi. */ \
412 .automasking_start_normal_falloff = 0.25f, \
413 .automasking_view_normal_limit = 1.570796, /* 0.5 * pi. */ \
414 .automasking_view_normal_falloff = 0.25f, \
415 .automasking_boundary_edges_propagation_steps = 1, \
416 .flags = SCULPT_DYNTOPO_SUBDIVIDE | SCULPT_DYNTOPO_COLLAPSE,\
417 .paint = {\
418 .symmetry_flags = PAINT_SYMMETRY_FEATHER,\
419 .tile_offset = {1.0f, 1.0f, 1.0f},\
420 }\
421 }
422/* clang-format off */
423