41 const SceneEEVEE &sce_eevee = inst_.scene->eevee;
53 data_.pixel_size =
float2(2.0f) /
float2(inst_.film.render_extent_get());
61 if (!render_pass_enabled_) {
65 render_pass_ps_.init();
67 render_pass_ps_.specialize_constant(sh,
"ao_slice_count", ray_count_);
68 render_pass_ps_.specialize_constant(sh,
"ao_step_count", step_count_);
69 render_pass_ps_.shader_set(sh);
72 render_pass_ps_.bind_resources(inst_.uniform_data);
73 render_pass_ps_.bind_resources(inst_.sampling);
74 render_pass_ps_.bind_resources(inst_.hiz_buffer.front);
76 render_pass_ps_.bind_image(
"in_normal_img", &inst_.render_buffers.rp_color_tx);
77 render_pass_ps_.push_constant(
"in_normal_img_layer_index", &inst_.render_buffers.data.normal_id);
78 render_pass_ps_.bind_image(
"out_ao_img", &inst_.render_buffers.rp_value_tx);
79 render_pass_ps_.push_constant(
"out_ao_img_layer_index",
80 &inst_.render_buffers.data.ambient_occlusion_id);
83 render_pass_ps_.dispatch(