const RenderSettings = { obj_settings: null, init: () => { RenderSettings.obj_settings = { str_engine: "CYCLES", nb_samples: 128, str_device: "GPU", is_denoise: true, is_film_transparent: false, nb_resolution_percentage: 100, }; }, set_from_blend: (obj_render) => { if (!obj_render) { return; } let obj_s = RenderSettings.obj_settings; obj_s.str_engine = obj_render.str_engine || "CYCLES"; obj_s.nb_resolution_percentage = obj_render.nb_resolution_percentage || 100; obj_s.is_film_transparent = !!obj_render.is_film_transparent; if (obj_render.str_cycles_device) { obj_s.str_device = obj_render.str_cycles_device; } if (obj_render.is_cycles_denoise !== undefined) { obj_s.is_denoise = obj_render.is_cycles_denoise; } if (obj_render.nb_cycles_samples !== undefined) { obj_s.nb_samples = obj_render.nb_cycles_samples; } else if (obj_render.nb_eevee_samples !== undefined) { obj_s.nb_samples = obj_render.nb_eevee_samples; } RenderSettings.render(); }, set_from_config: (obj_config) => { if (!obj_config || !obj_config.obj_render_settings) { return; } let obj_src = obj_config.obj_render_settings; let obj_s = RenderSettings.obj_settings; if (obj_src.str_engine !== undefined) { obj_s.str_engine = obj_src.str_engine; } if (obj_src.nb_samples !== undefined) { obj_s.nb_samples = obj_src.nb_samples; } if (obj_src.str_device !== undefined) { obj_s.str_device = obj_src.str_device; } if (obj_src.is_denoise !== undefined) { obj_s.is_denoise = obj_src.is_denoise; } if (obj_src.is_film_transparent !== undefined) { obj_s.is_film_transparent = obj_src.is_film_transparent; } if (obj_src.nb_resolution_percentage !== undefined) { obj_s.nb_resolution_percentage = obj_src.nb_resolution_percentage; } RenderSettings.render(); }, get_settings: () => { return Object.assign({}, RenderSettings.obj_settings); }, render: () => { let obj_container = document.getElementById("container_render_settings"); if (!obj_container) { return; } let obj_s = RenderSettings.obj_settings; let is_cycles = obj_s.str_engine === "CYCLES"; let str_html = '
' + '
' + ' ' + ' " + "
" + '
' + ' ' + ' ' + "
" + '
' + ' ' + ' ' + "
" + '
' + ' ' + ' " + "
" + '
' + '
' + ' " + ' ' + "
" + "
" + '
' + '
' + ' " + ' ' + "
" + "
" + "
"; obj_container.innerHTML = str_html; RenderSettings._bind_events(); }, _bind_events: () => { let obj_select_engine = document.getElementById("select_engine"); let obj_input_samples = document.getElementById("input_samples"); let obj_input_res_percent = document.getElementById("input_res_percent"); let obj_select_device = document.getElementById("select_device"); let obj_check_denoise = document.getElementById("check_denoise"); let obj_check_transparent = document.getElementById("check_film_transparent"); obj_select_engine.addEventListener("change", () => { RenderSettings.obj_settings.str_engine = obj_select_engine.value; let obj_device_container = document.getElementById("container_device"); if (obj_select_engine.value === "CYCLES") { obj_device_container.classList.remove("d-none"); } else { obj_device_container.classList.add("d-none"); } }); obj_input_samples.addEventListener("change", () => { RenderSettings.obj_settings.nb_samples = parseInt(obj_input_samples.value, 10) || 128; }); obj_input_res_percent.addEventListener("change", () => { RenderSettings.obj_settings.nb_resolution_percentage = parseInt(obj_input_res_percent.value, 10) || 100; }); obj_select_device.addEventListener("change", () => { RenderSettings.obj_settings.str_device = obj_select_device.value; }); obj_check_denoise.addEventListener("change", () => { RenderSettings.obj_settings.is_denoise = obj_check_denoise.checked; }); obj_check_transparent.addEventListener("change", () => { RenderSettings.obj_settings.is_film_transparent = obj_check_transparent.checked; }); }, };