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); }
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); }