buddhi1980 / mandelbulber2

Official repository for Mandelbulber v2
GNU General Public License v3.0
893 stars 116 forks source link

Primitives using <SUB> will visually hide the fractal surface, but the hidden surface doesn't correctly pass volumetric lights #966

Open gitbubheli opened 1 month ago

gitbubheli commented 1 month ago
System information (version)
Detailed description

Primitives using SUB will erase fractal surface as expected, however, the erased fractal surface still does some things that it should not be doing. It is difficult for me to exactly describe this behavior because it is a bit unpredictable.

Steps to reproduce

Here is some settings. Load them, examine visual result. You can see that some holes do not have light coming out, even though the primitive sphere should be erasing entire inner surface of the main sphere.

Then set position of light 2 to (0.06, 0.06, 0.178) and observe different result (much stronger light.) This is because 'ghost' of erased surface seems to not be acting on the light anymore.

# Mandelbulber settings file
# version 2.31
# only modified parameters
[main_parameters]
ambient_occlusion_quality 7;
aux_light_place_behind true;
background_color_1 5e00 6c00 6c00;
background_color_2 4d00 4e00 5900;
background_color_3 2900 3400 3100;
bailout 55;
basic_fog_color 0000 0000 0000;
basic_fog_visibility 0.5;
camera 0.333849559142209 0.284250205627598 0.266645768844259;
camera_distance_to_target 0.27006271481514;
camera_rotation 130.772837763319 -15.4196562048249 6.92088698686461e-12;
camera_top -0.201357371058956 -0.173640507869462 0.964004244361539;
clouds_cast_shadows false;
clouds_density 0.4;
clouds_distance 0.2;
clouds_distance_layer 0.1;
clouds_distance_mode true;
clouds_lights_boost 4;
clouds_noise_iterations 7;
clouds_opacity 6;
DE_factor 0.5;
detail_level 4;
DOF_focus 0.0153620382770896;
DOF_MC_global_illumination true;
fake_lights_color ff00 ff00 ff00;
fake_lights_intensity 0.65;
fake_lights_max_iter 250;
fake_lights_min_iter 2;
fake_lights_orbit_rotation 0 90 0;
fake_lights_orbit_trap 0 0 0;
fake_lights_orbit_trap_shape line;
fake_lights_thickness 0.003;
fake_lights_visibility 15000000;
fake_lights_visibility_size 3;
fog_color_1 ac00 b200 c600;
fog_color_2 8800 8000 b100;
fog_color_3 4a00 3300 7100;
formula_1 103;
formula_2 1601;
formula_3 1632;
formula_4 1633;
formula_stop_iteration_3 255;
fov 66;
fractal_enable_2 false;
fractal_enable_3 false;
fractal_enable_4 false;
glow_enabled false;
hdr true;
hybrid_fractal_enable true;
image_height 900;
image_width 1200;
iteration_fog_color_1 0000 0000 0000;
iteration_fog_color_1_maxiter 15;
iteration_fog_color_2 3600 3400 4700;
iteration_fog_color_2_maxiter 16;
iteration_fog_color_3 5c00 5600 6a00;
iteration_fog_opacity 3220;
iteration_fog_opacity_trim 64;
iteration_fog_shadows false;
keyframe_last_to_render 0;
light1_is_defined true;
light1_volumetric_visibility 0.1;
light2_color ff00 ff00 ff00;
light2_enabled true;
light2_intensity 0.001;
light2_is_defined true;
light2_penetrating false;
light2_position 0 0 0.17;
light2_size 0.1;
light2_soft_shadow_cone 0.1;
light2_visibility 2;
light2_volumetric true;
light2_volumetric_visibility 440;
limit_max 10 0 10;
mat1_diffuse_gradient 0 5d5d5d 3878 555555 4495 ffffff 5220 ffffff 5625 3d3d3d;
mat1_fractal_coloring_aux_color_false true;
mat1_fractal_coloring_aux_color_weight 0.39;
mat1_fractal_coloring_extra_color_enabled_false true;
mat1_fractal_coloring_iter_scale 0.1;
mat1_fractal_coloring_line_direction 0 1 -0.25 0;
mat1_fractal_coloring_orbit_trap_weight 3.9;
mat1_fractal_coloring_xyz_000 0 7 0;
mat1_fresnel_reflectance true;
mat1_iridescence_enabled true;
mat1_iridescence_intensity 0.35;
mat1_iridescence_subsurface_thickness 0.5;
mat1_is_defined true;
mat1_reflectance 1;
mat1_reflectance_gradient 0 000000 3602 000000 3987 ffffff 5220 ffffff 5625 000000;
mat1_specular_metallic_width 3;
mat1_specular_plastic_enable false;
mat1_surface_color_gradient 0 57595e 1000 d6c4b3 2000 88857a 3000 92a597 4000 6e7575 5000 bdc6cb 6000 c8deca 7000 d4d5b0 8000 6b6b5d 9000 918b7b;
mat1_surface_roughness 0.0355;
mat1_transparency_index_of_refraction 1.6;
mat1_transparency_of_surface 0.1;
mat2_fresnel_reflectance true;
mat2_iridescence_enabled true;
mat2_iridescence_intensity 2;
mat2_iridescence_subsurface_thickness 0.75;
mat2_is_defined true;
mat2_reflectance 1;
mat2_specular_metallic 16;
mat2_specular_metallic_width 7;
mat2_surface_color 1d00 2400 3400;
mat2_surface_gradient_enable false;
mat2_transparency_index_of_refraction 1.25;
mat2_transparency_of_surface 0.95;
MC_global_illumination_volumetric true;
N 66;
primitive_sphere_1_boolean_operator 2;
primitive_sphere_1_enabled true;
primitive_sphere_1_position 0 0 0.178821;
primitive_sphere_1_radius 0.17;
random_lights_color ff00 3d00 b500;
random_lights_color_2 5d00 a600 ff00;
random_lights_coloring_type distance;
random_lights_distribution_center 0.249448320669959 0.636938944453158 0.471272981442472;
random_lights_distribution_radius 0.01;
random_lights_intensity 0.01;
random_lights_max_distance_from_fractal 0.005;
random_lights_number 75;
random_lights_size 0.15;
random_lights_visibility 35;
rayleigh_scattering_blue 1;
rayleigh_scattering_red 7;
reflections_max 3;
smoothness 5;
target 0.136691629449552 0.11423108558092 0.194839644375783;
view_distance_max 66;
volumetric_fog_colour_1_distance 0.0101607875706326;
volumetric_fog_colour_2_distance 0.0203215751412651;
volumetric_fog_density 0.3;
volumetric_fog_distance_factor 0.2;
volumetric_light_DE_Factor 0.3;
[fractal_1]
analyticDE_offset_1 0.5;
analyticDE_scale_1 0.8;
transf_function_enabled false;
transf_int8_X 44;
transf_rotation2_enabled_false true;
transf_stop_iterations_15 66;
[fractal_2]
IFS_abs_x true;
IFS_abs_y true;
IFS_abs_z true;
IFS_direction_0 2.618 1 -1.618;
IFS_direction_1 -1.618 2.618 1;
IFS_direction_2 1 -1.618 2.618;
IFS_enabled_0 true;
IFS_enabled_1 true;
IFS_enabled_2 true;
IFS_offset 1 1 1;
IFS_scale 2.618034;
mandelbox_offset 0 0.15 0.5;
transf_addition_constant 0.1 0 0;
transf_minR2_p25 0;
transf_offset_000 0 0 0.5;
transf_offset_111 1 1.4 1;
transf_offsetA_1 0.01;
transf_radius_1 1.055;
transf_rotation2 0 7 45;
transf_scale 3;
transf_stop_iterations_15 44;
transf_stop_iterations_R 0;
[fractal_3]
IFS_abs_x true;
IFS_abs_y true;
IFS_abs_z true;
IFS_direction_0 2.618 1 -1.618;
IFS_direction_1 -1.618 2.618 1;
IFS_direction_2 1 -1.618 2.618;
IFS_enabled_0 true;
IFS_enabled_1 true;
IFS_enabled_2 true;
IFS_offset 1 1 1;
IFS_scale 2.618034;
mandelbox_offset 0 0.15 0.5;
power 5;
transf_addition_constant 0.1 0 0;
transf_folding_value 1.907;
transf_function_enabledAy_false true;
transf_minR2_p25 0;
transf_offset 0.073;
transf_offset_000 0 0.75 0;
transf_offset_01 0.075;
transf_offset_111 1 1.4 1;
transf_offset_p01 0.05;
transf_offsetA_1 6;
transf_offsetA_p01 0.05;
transf_offsetB_p01 0.05;
transf_offsetC_111 4 4 4;
transf_rotation2 0 7 45;
transf_scale 3;
transf_scaleB_0 6.283;
transf_stop_iterations_15 23;
transf_stop_iterations_C1 250;
transf_stop_iterations_R 0;
[fractal_4]
transf_function_enabledM_false true;
transf_function_enabledR_false true;
transf_int8_X 6;
transf_offset_000 0 1 0;
transf_offset_0005 0;
transf_offset_01 0.075;
transf_offset_p01 0.02;
transf_offsetA_000 0 0.5 0;
transf_offsetA_1 16;
transf_offsetA_p01 0.02;
transf_offsetB_p01 0.02;
transf_rotation 0 0 22.5;
transf_scaleB_0 6.283;
transf_start_iterations_B 67;
transf_start_iterations_D 71;
transf_stop_iterations_C1 250;
[fractal_5]
IFS_abs_x true;
IFS_abs_y true;
IFS_abs_z true;
IFS_direction_1 1 -1 0;
IFS_direction_5 1 -1 0;
IFS_direction_6 1 0 -1;
IFS_direction_7 0 1 -1;
IFS_enabled_5 true;
IFS_enabled_6 true;
IFS_enabled_7 true;
IFS_offset 1 1 1;
IFS_rotation 0 -11 0;
IFS_rotation_enabled true;
IFS_rotations_1 90 0 0;
IFS_scale 1.4;
transf_function_enabledC_false true;
transf_int_16 4;
transf_offset_0005 0;
transf_offset_01 0.3;
transf_offset_02 1;
transf_offset_05 0.25;
transf_offset_1 3;
transf_offsetA_05 0.25;
transf_offsetA_1 2;
transf_offsetR_0 0.1;
transf_scaleA_0 0.5;
transf_scaleC_0 0.333;
[keyframes]
frame;framesPerKeyframe;main_camera_x;main_camera_y;main_camera_z;main_target_x;main_target_y;main_target_z;main_camera_top_x;main_camera_top_y;main_camera_top_z
0;100;0.7;0.6;0.4;0;0;0.15;-0.198706534531359;-0.170319886741006;0.965146024866221
1;100;0.174875936886377;0.284177981087416;0.269846218362061;0.151067252387196;0.274971388479581;0.261555059754445;-0.288124988089779;-0.111415201691142;0.951089188283826
2;100;0.328781729868502;0.263566890205665;0.316328738099247;0.128894969028464;0.0824106003164076;0.271274981691149;-0.122060420879484;-0.110622699051647;0.986338619394603
interpolation;morphAkima;morphAkima;morphAkima
buddhi1980 commented 1 month ago

I have simplified this case to these settings:

# Mandelbulber settings file
# version 2.32
# only modified parameters
[main_parameters]
ambient_occlusion_enabled true;
background_3_colors_enable false;
background_color_1 0000 0000 0000;
camera 1,12133432003836 -2,32819447522635 1,00424913696123;
camera_distance_to_target 2,47985529899597;
camera_rotation 25,1204222783381 -21,8970346578518 -0,418561395965785;
camera_top -0,164931238454593 0,334555968891393 0,927830798292973;
DE_factor 0,5;
fractal_enable_1 false;
hdr true;
keyframe_last_to_render 0;
light1_enabled false;
light3_enabled true;
light3_is_defined true;
light3_penetrating false;
light3_position 0 0,608310049866338 0;
light3_volumetric true;
mat1_surface_color_gradient 0 fd6029 999 698403 1999 fff59b 2999 f5bd22 3999 0b5e87 5000 c68876 5999 a51c64 7000 3b9fee 7999 d4ffd4 9000 aba53c;
primitive_box_1_enabled true;
primitive_box_1_size 2 0,5 2;
primitive_cylinder_1_boolean_operator 2;
primitive_cylinder_1_enabled true;
primitive_cylinder_1_radius 0,25;
primitive_cylinder_1_rotation 90 0 0;
raytraced_reflections true;
target 0,144531079136243 -0,244876229512804 0,0794124921430451;