39 const SceneEEVEE &sce_eevee = inst_.scene->eevee;
52 data_.pixel_size =
float2(2.0f) /
float2(inst_.film.render_extent_get());
60 if (!render_pass_enabled_) {
64 render_pass_ps_.init();
66 render_pass_ps_.specialize_constant(sh,
"ao_slice_count", ray_count_);
67 render_pass_ps_.specialize_constant(sh,
"ao_step_count", step_count_);
68 render_pass_ps_.shader_set(sh);
71 render_pass_ps_.bind_resources(inst_.uniform_data);
72 render_pass_ps_.bind_resources(inst_.sampling);
73 render_pass_ps_.bind_resources(inst_.hiz_buffer.front);
75 render_pass_ps_.bind_image(
"in_normal_img", &inst_.render_buffers.rp_color_tx);
76 render_pass_ps_.push_constant(
"in_normal_img_layer_index", &inst_.render_buffers.data.normal_id);
77 render_pass_ps_.bind_image(
"out_ao_img", &inst_.render_buffers.rp_value_tx);
78 render_pass_ps_.push_constant(
"out_ao_img_layer_index",
79 &inst_.render_buffers.data.ambient_occlusion_id);
82 render_pass_ps_.dispatch(