Blender
V3.3
|
A running instance of the engine. More...
#include <eevee_instance.hh>
Public Member Functions | |
Instance () | |
~Instance () | |
bool | is_viewport () const |
bool | overlays_enabled () const |
bool | use_scene_lights () const |
bool | use_studio_light () const |
Interface | |
void | render_frame (RenderLayer *render_layer, const char *view_name) |
void | draw_viewport (DefaultFramebufferList *dfbl) |
Public Attributes | |
ShaderModule & | shaders |
SyncModule | sync |
MaterialModule | materials |
PipelineModule | pipelines |
VelocityModule | velocity |
Sampling | sampling |
Camera | camera |
Film | film |
RenderBuffers | render_buffers |
MainView | main_view |
World | world |
Depsgraph * | depsgraph |
Scene * | scene |
ViewLayer * | view_layer |
Object * | camera_eval_object |
Object * | camera_orig_object |
const RenderLayer * | render_layer |
RenderEngine * | render |
const DRWView * | drw_view |
const View3D * | v3d |
const RegionView3D * | rv3d |
bool | gpencil_engine_enabled |
std::string | info = "" |
Initialization | |
Initialization functions need to be called once at the start of a frame. Active camera, render extent and enabled render passes are immutable until next init. This takes care of resizing output buffers and view in case a parameter changed. IMPORTANT: xxx.init() functions are NOT meant to acquire and allocate DRW resources. Any attempt to do so will likely produce use after free situations. | |
void | init (const int2 &output_res, const rcti *output_rect, RenderEngine *render, Depsgraph *depsgraph, const LightProbe *light_probe_=nullptr, Object *camera_object=nullptr, const RenderLayer *render_layer=nullptr, const DRWView *drw_view=nullptr, const View3D *v3d=nullptr, const RegionView3D *rv3d=nullptr) |
Sync | |
Sync will gather data from the scene that can change over a time step (i.e: motion steps). IMPORTANT: xxx.sync() functions area responsible for creating DRW resources (i.e: DRWView) as well as querying temp texture pool. All DRWPasses should be ready by the end end_sync(). | |
void | begin_sync () |
void | object_sync (Object *ob) |
void | end_sync () |
void | render_sync () |
A running instance of the engine.
Definition at line 35 of file eevee_instance.hh.
|
inline |
Definition at line 73 of file eevee_instance.hh.
|
inline |
Definition at line 85 of file eevee_instance.hh.
void blender::eevee::Instance::begin_sync | ( | ) |
Definition at line 92 of file eevee_instance.cc.
References blender::eevee::MaterialModule::begin_sync(), blender::eevee::VelocityModule::begin_sync(), camera, film, gpencil_engine_enabled, main_view, materials, pipelines, render_buffers, blender::eevee::Camera::sync(), blender::eevee::Film::sync(), blender::eevee::PipelineModule::sync(), blender::eevee::RenderBuffers::sync(), blender::eevee::MainView::sync(), blender::eevee::World::sync(), velocity, and world.
Referenced by render_sync().
void blender::eevee::Instance::draw_viewport | ( | DefaultFramebufferList * | dfbl | ) |
Definition at line 257 of file eevee_instance.cc.
References DRW_viewport_request_redraw(), blender::eevee::Sampling::finished_viewport(), info, materials, blender::eevee::MaterialModule::queued_shaders_count, sampling, blender::eevee::VelocityModule::step_swap(), UNUSED_VARS, and velocity.
Referenced by eevee_draw_scene().
void blender::eevee::Instance::end_sync | ( | ) |
Definition at line 169 of file eevee_instance.cc.
References blender::eevee::Film::end_sync(), blender::eevee::Sampling::end_sync(), blender::eevee::VelocityModule::end_sync(), film, sampling, and velocity.
Referenced by render_sync().
void blender::eevee::Instance::init | ( | const int2 & | output_res, |
const rcti * | output_rect, | ||
RenderEngine * | render, | ||
Depsgraph * | depsgraph, | ||
const LightProbe * | light_probe_ = nullptr , |
||
Object * | camera_object = nullptr , |
||
const RenderLayer * | render_layer = nullptr , |
||
const DRWView * | drw_view = nullptr , |
||
const View3D * | v3d = nullptr , |
||
const RegionView3D * | rv3d = nullptr |
||
) |
Definition at line 36 of file eevee_instance.cc.
References camera, camera_orig_object, depsgraph, drw_view, film, info, blender::eevee::Camera::init(), blender::eevee::MainView::init(), blender::eevee::Film::init(), blender::eevee::Sampling::init(), main_view, render, render_layer, rv3d, sampling, scene, UNUSED_VARS, and v3d.
Referenced by eevee_engine_init().
|
inline |
Definition at line 107 of file eevee_instance.hh.
References render.
Referenced by blender::eevee::Film::accumulate(), blender::eevee::VelocityModule::begin_sync(), blender::eevee::VelocityModule::bind_resources(), blender::eevee::VelocityModule::camera_has_motion(), blender::eevee::Film::display(), blender::eevee::Sampling::end_sync(), blender::eevee::VelocityModule::end_sync(), blender::eevee::Film::init(), blender::eevee::Sampling::init(), blender::eevee::VelocityModule::step_object_sync(), blender::eevee::VelocityModule::step_swap(), and blender::eevee::Film::sync().
Definition at line 107 of file eevee_instance.cc.
References DRW_context_state_get(), DRW_object_is_renderable(), DRW_object_visibility_in_active_context(), ELEM, eModifierType_ParticleSystem, LISTBASE_FOREACH, Object::modifiers, OB_CURVES, OB_CURVES_LEGACY, OB_FONT, OB_GPENCIL, OB_LAMP, OB_MBALL, OB_MESH, OB_SURF, OB_VISIBLE_PARTICLES, OB_VISIBLE_SELF, OB_VOLUME, DRWContextState::object_edit, blender::eevee::ObjectHandle::reset_recalc_flag(), sync, blender::eevee::SyncModule::sync_curves(), blender::eevee::SyncModule::sync_gpencil(), blender::eevee::SyncModule::sync_mesh(), blender::eevee::SyncModule::sync_object(), and Object::type.
|
inline |
Definition at line 112 of file eevee_instance.hh.
References View3D::flag2, v3d, and V3D_HIDE_OVERLAYS.
Referenced by blender::eevee::Film::init().
void blender::eevee::Instance::render_frame | ( | RenderLayer * | render_layer, |
const char * | view_name | ||
) |
Definition at line 223 of file eevee_instance.cc.
References BLI_mutex_lock(), BLI_mutex_unlock(), EEVEE_RENDER_PASS_MAX_BIT, blender::eevee::Film::enabled_passes_get(), film, blender::eevee::Sampling::finished(), MEM_SAFE_FREE, blender::eevee::Film::pass_to_render_pass_name(), RE_pass_find_by_name(), blender::eevee::Film::read_pass(), RenderPass::rect, render, render_layer, result, sampling, and RenderEngine::update_render_passes_mutex.
void blender::eevee::Instance::render_sync | ( | ) |
Definition at line 176 of file eevee_instance.cc.
References begin_sync(), depsgraph, DRW_cache_restart(), DRW_render_instance_buffer_finish(), DRW_render_object_iter(), end_sync(), and render.
|
inline |
Definition at line 117 of file eevee_instance.hh.
References View3DShading::flag, OB_MATERIAL, OB_RENDER, View3D::shading, View3DShading::type, v3d, V3D_SHADING_SCENE_LIGHTS, and V3D_SHADING_SCENE_LIGHTS_RENDER.
|
inline |
Definition at line 127 of file eevee_instance.hh.
References View3DShading::flag, OB_MATERIAL, OB_RENDER, View3D::shading, View3DShading::type, v3d, V3D_SHADING_SCENE_WORLD, and V3D_SHADING_SCENE_WORLD_RENDER.
Camera blender::eevee::Instance::camera |
Definition at line 45 of file eevee_instance.hh.
Referenced by begin_sync(), blender::eevee::Film::init(), init(), blender::eevee::Film::pixel_jitter_get(), blender::eevee::VelocityModule::step_camera_sync(), and blender::eevee::ShadingView::sync().
Object* blender::eevee::Instance::camera_eval_object |
Definition at line 56 of file eevee_instance.hh.
Referenced by blender::eevee::Camera::init(), and blender::eevee::Camera::sync().
Object* blender::eevee::Instance::camera_orig_object |
Definition at line 57 of file eevee_instance.hh.
Referenced by init().
Depsgraph* blender::eevee::Instance::depsgraph |
Input data.
Definition at line 52 of file eevee_instance.hh.
Referenced by blender::eevee::gpIterData::gpIterData(), init(), render_sync(), and blender::eevee::VelocityModule::step_sync().
const DRWView* blender::eevee::Instance::drw_view |
Only available when rendering for viewport.
Definition at line 62 of file eevee_instance.hh.
Referenced by blender::eevee::Camera::init(), init(), and blender::eevee::Camera::sync().
Film blender::eevee::Instance::film |
Definition at line 46 of file eevee_instance.hh.
Referenced by blender::eevee::RenderBuffers::acquire(), begin_sync(), end_sync(), blender::eevee::VelocityModule::init(), init(), blender::eevee::ForwardPipeline::material_opaque_add(), blender::eevee::ShadingView::render(), render_frame(), blender::eevee::ShadingView::sync(), and blender::eevee::WorldPipeline::sync().
bool blender::eevee::Instance::gpencil_engine_enabled |
True if the grease pencil engine might be running.
Definition at line 67 of file eevee_instance.hh.
Referenced by begin_sync(), blender::eevee::Film::init(), and blender::eevee::SyncModule::sync_gpencil().
std::string blender::eevee::Instance::info = "" |
Definition at line 70 of file eevee_instance.hh.
Referenced by draw_viewport(), eevee_draw_scene(), and init().
MainView blender::eevee::Instance::main_view |
Definition at line 48 of file eevee_instance.hh.
Referenced by begin_sync(), and init().
MaterialModule blender::eevee::Instance::materials |
Definition at line 41 of file eevee_instance.hh.
Referenced by begin_sync(), draw_viewport(), blender::eevee::SyncModule::sync_curves(), and blender::eevee::SyncModule::sync_mesh().
PipelineModule blender::eevee::Instance::pipelines |
Definition at line 42 of file eevee_instance.hh.
Referenced by begin_sync(), blender::eevee::ForwardPipeline::material_opaque_add(), blender::eevee::ShadingView::render(), blender::eevee::World::sync(), and blender::eevee::WorldPipeline::sync().
RenderEngine* blender::eevee::Instance::render |
Definition at line 60 of file eevee_instance.hh.
Referenced by blender::eevee::VelocityModule::init(), init(), is_viewport(), render_frame(), render_sync(), blender::eevee::VelocityModule::step_sync(), and blender::eevee::Camera::sync().
RenderBuffers blender::eevee::Instance::render_buffers |
Definition at line 47 of file eevee_instance.hh.
Referenced by begin_sync(), blender::eevee::Film::display(), blender::eevee::ForwardPipeline::material_opaque_add(), blender::eevee::ShadingView::render(), blender::eevee::Film::sync(), and blender::eevee::WorldPipeline::sync().
const RenderLayer* blender::eevee::Instance::render_layer |
Only available when rendering for final render.
Definition at line 59 of file eevee_instance.hh.
Referenced by init(), and render_frame().
const RegionView3D* blender::eevee::Instance::rv3d |
Definition at line 64 of file eevee_instance.hh.
Referenced by init().
Sampling blender::eevee::Instance::sampling |
Definition at line 44 of file eevee_instance.hh.
Referenced by draw_viewport(), blender::eevee::Film::end_sync(), end_sync(), blender::eevee::VelocityModule::end_sync(), blender::eevee::Film::init(), init(), blender::eevee::Film::pixel_jitter_get(), render_frame(), blender::eevee::VelocityModule::step_object_sync(), blender::eevee::World::sync(), blender::eevee::SyncModule::sync_object(), and blender::eevee::SyncModule::sync_world().
Scene* blender::eevee::Instance::scene |
Evaluated IDs.
Definition at line 54 of file eevee_instance.hh.
Referenced by blender::eevee::Sampling::end_sync(), blender::eevee::VelocityModule::init(), blender::eevee::Film::init(), init(), and blender::eevee::World::sync().
ShaderModule& blender::eevee::Instance::shaders |
Definition at line 39 of file eevee_instance.hh.
Referenced by blender::eevee::Film::sync(), and blender::eevee::World::sync().
SyncModule blender::eevee::Instance::sync |
Definition at line 40 of file eevee_instance.hh.
Referenced by object_sync(), and blender::eevee::World::sync().
const View3D* blender::eevee::Instance::v3d |
Definition at line 63 of file eevee_instance.hh.
Referenced by blender::eevee::Film::init(), init(), overlays_enabled(), use_scene_lights(), and use_studio_light().
VelocityModule blender::eevee::Instance::velocity |
Definition at line 43 of file eevee_instance.hh.
Referenced by begin_sync(), draw_viewport(), end_sync(), blender::eevee::ForwardPipeline::prepass_opaque_add(), blender::eevee::ShadingView::render(), blender::eevee::Film::sync(), blender::eevee::SyncModule::sync_curves(), and blender::eevee::SyncModule::sync_mesh().
ViewLayer* blender::eevee::Instance::view_layer |
Definition at line 55 of file eevee_instance.hh.
Referenced by blender::eevee::Film::init().
World blender::eevee::Instance::world |
Definition at line 49 of file eevee_instance.hh.
Referenced by begin_sync().