65 bool has_update =
false;
68 if (inst_.scene->world !=
nullptr) {
70 wo_handle = inst_.sync.sync_world(*inst_.scene->world);
71 has_update = wo_handle.
recalc != 0;
74 bool wait_ready =
true;
77 sync_volume(wo_handle, wait_ready);
80 if (inst_.use_studio_light()) {
82 bl_world = lookdev_world_.world_get();
84 else if ((inst_.view_layer->layflag &
SCE_LAY_SKY) == 0) {
85 bl_world = default_world_get();
87 else if (has_volume_absorption_) {
88 bl_world = default_world_get();
91 bl_world = scene_world_get();
96 bl_world = world_override;
102 if (has_volume_absorption_) {
104 bl_world = default_world_get();
114 inst_.light_probes.sync_world(bl_world, has_update);
116 if (inst_.is_viewport() && has_update) {
118 inst_.sampling.reset();
121 GPUMaterial *gpumat = inst_.shaders.world_shader_get(
125 bl_world = default_world_get();
127 gpumat = inst_.shaders.world_shader_get(bl_world, ntree,
MAT_PIPE_DEFERRED, !wait_ready);
135 inst_.manager->register_layer_attributes(gpumat);
137 float opacity = inst_.use_studio_light() ? lookdev_world_.background_opacity_get() :
138 inst_.film.background_opacity_get();
139 float background_blur = inst_.use_studio_light() ? lookdev_world_.background_blur_get() : 0.0;
141 inst_.pipelines.background.sync(gpumat, opacity, background_blur);
142 inst_.pipelines.world.sync(gpumat);