Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/source/pipeline.c
| Show First 20 Lines • Show All 1,418 Lines • ▼ Show 20 Lines | static void do_render_3d(Render *re) | ||||
| main_render_result_new(re); | main_render_result_new(re); | ||||
| #ifdef WITH_FREESTYLE | #ifdef WITH_FREESTYLE | ||||
| if (re->r.mode & R_EDGE_FRS) { | if (re->r.mode & R_EDGE_FRS) { | ||||
| init_freestyle(re); | init_freestyle(re); | ||||
| } | } | ||||
| #endif | #endif | ||||
| /* workaround for T44662, so at least non-multiview render works */ | |||||
| if ((re->r.scemode & R_MULTIVIEW) == 0) { | |||||
| rv = re->result->views.first; | |||||
| RE_SetActiveRenderView(re, ""); | |||||
| /* lock drawing in UI during data phase */ | |||||
| if (re->draw_lock) | |||||
| re->draw_lock(re->dlh, 1); | |||||
| /* make render verts/faces/halos/lamps */ | |||||
| if (render_scene_needs_vector(re)) | |||||
| RE_Database_FromScene_Vectors(re, re->main, re->scene, re->lay); | |||||
| else { | |||||
| RE_Database_FromScene(re, re->main, re->scene, re->lay, 1); | |||||
| RE_Database_Preprocess(re); | |||||
| } | |||||
| /* clear UI drawing locks */ | |||||
| if (re->draw_lock) | |||||
| re->draw_lock(re->dlh, 0); | |||||
| threaded_tile_processor(re); | |||||
| main_render_result_end(re); | |||||
| #ifdef WITH_FREESTYLE | |||||
| /* Freestyle */ | |||||
| if (re->r.mode & R_EDGE_FRS) | |||||
| if (!re->test_break(re->tbh)) | |||||
| add_freestyle(re, 1); | |||||
| #endif | |||||
| /* do left-over 3d post effects (flares) */ | |||||
| if (re->flag & R_HALO) | |||||
| if (!re->test_break(re->tbh)) | |||||
| add_halo_flare(re); | |||||
| /* free all render verts etc */ | |||||
| RE_Database_Free(re); | |||||
| } | |||||
| else { | |||||
| /* we need a new database for each view */ | /* we need a new database for each view */ | ||||
| for (rv = re->result->views.first; rv; rv = rv->next) { | for (rv = re->result->views.first; rv; rv = rv->next) { | ||||
| RE_SetActiveRenderView(re, rv->name); | RE_SetActiveRenderView(re, rv->name); | ||||
| /* lock drawing in UI during data phase */ | /* lock drawing in UI during data phase */ | ||||
| if (re->draw_lock) | if (re->draw_lock) | ||||
| re->draw_lock(re->dlh, 1); | re->draw_lock(re->dlh, 1); | ||||
| /* make render verts/faces/halos/lamps */ | /* make render verts/faces/halos/lamps */ | ||||
| if (render_scene_needs_vector(re)) | if (render_scene_needs_vector(re)) | ||||
| RE_Database_FromScene_Vectors(re, re->main, re->scene, re->lay); | RE_Database_FromScene_Vectors(re, re->main, re->scene, re->lay); | ||||
| else { | else { | ||||
| RE_Database_FromScene(re, re->main, re->scene, re->lay, 1); | RE_Database_FromScene(re, re->main, re->scene, re->lay, 1); | ||||
| RE_Database_Preprocess(re); | RE_Database_Preprocess(re); | ||||
| } | } | ||||
| /* clear UI drawing locks */ | /* clear UI drawing locks */ | ||||
| if (re->draw_lock) | if (re->draw_lock) | ||||
| re->draw_lock(re->dlh, 0); | re->draw_lock(re->dlh, 0); | ||||
| threaded_tile_processor(re); | threaded_tile_processor(re); | ||||
| #ifdef WITH_FREESTYLE | #ifdef WITH_FREESTYLE | ||||
| /* Freestyle */ | /* Freestyle */ | ||||
| if (re->r.mode & R_EDGE_FRS) | if (re->r.mode & R_EDGE_FRS) | ||||
| if (!re->test_break(re->tbh)) | if (!re->test_break(re->tbh)) | ||||
| add_freestyle(re, 1); | add_freestyle(re, 1); | ||||
| #endif | #endif | ||||
| /* do left-over 3d post effects (flares) */ | /* do left-over 3d post effects (flares) */ | ||||
| if (re->flag & R_HALO) | if (re->flag & R_HALO) | ||||
| if (!re->test_break(re->tbh)) | if (!re->test_break(re->tbh)) | ||||
| add_halo_flare(re); | add_halo_flare(re); | ||||
| /* free all render verts etc */ | /* free all render verts etc */ | ||||
| RE_Database_Free(re); | RE_Database_Free(re); | ||||
| } | } | ||||
| main_render_result_end(re); | main_render_result_end(re); | ||||
| } | |||||
| re->scene->r.cfra = cfra_backup; | re->scene->r.cfra = cfra_backup; | ||||
| re->scene->r.subframe = 0.f; | re->scene->r.subframe = 0.f; | ||||
| } | } | ||||
| /* called by blur loop, accumulate RGBA key alpha */ | /* called by blur loop, accumulate RGBA key alpha */ | ||||
| static void addblur_rect_key(RenderResult *rr, float *rectf, float *rectf1, float blurfac) | static void addblur_rect_key(RenderResult *rr, float *rectf, float *rectf1, float blurfac) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 2,424 Lines • Show Last 20 Lines | |||||