void Directional_shadow_renderer_EVSM_MS::render_cascade(const Rendering_context& context, const Cascade_data& cascade_data)
{
    generate_shadow(cascade_data.shadow_view_projection, surface_collector_.surfaces(), viewport_, rendering_tool_.device());

	resolve_shadow_linear(resolve_shadow_.framebuffer, depth_->shader_resource_view(), cascade_data.depth_clamp, viewport_, rendering_tool_);

    apply_shadow(context, cascade_data);
}
Exemplo n.º 2
0
void		ombre(t_scene *sc)
{
  t_spot	*spot;
  t_object	*obj;
  t_info	save;

  save_info(sc->info, &save);
  spot = sc->spot;
  sc->info->x = sc->info->x + sc->info->obj->x;
  sc->info->y = sc->info->y + sc->info->obj->y;
  sc->info->z = sc->info->z + sc->info->obj->z;
  while (spot)
    {
      obj = sc->obj;
      apply_shadow(sc, obj, spot, &save);
      spot = spot->next;
    }
  save_info(&save, sc->info);
}