Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/eevee/eevee_volumes.c
| Show First 20 Lines • Show All 366 Lines • ▼ Show 20 Lines | if (grp) { | ||||
| effects->enabled_effects |= (EFFECT_VOLUMETRIC | EFFECT_POST_BUFFER); | effects->enabled_effects |= (EFFECT_VOLUMETRIC | EFFECT_POST_BUFFER); | ||||
| } | } | ||||
| } | } | ||||
| if (grp == NULL) { | if (grp == NULL) { | ||||
| /* If no world or volume material is present just clear the buffer with this drawcall */ | /* If no world or volume material is present just clear the buffer with this drawcall */ | ||||
| grp = DRW_shgroup_create(e_data.volumetric_clear_sh, psl->volumetric_world_ps); | grp = DRW_shgroup_create(e_data.volumetric_clear_sh, psl->volumetric_world_ps); | ||||
| DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo); | DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo); | ||||
| DRW_shgroup_uniform_block(grp, "probe_block", sldata->probe_ubo); | |||||
| DRW_shgroup_uniform_block(grp, "light_block", sldata->light_ubo); | |||||
| DRW_shgroup_uniform_block(grp, "renderpass_block", sldata->renderpass_ubo.combined); | DRW_shgroup_uniform_block(grp, "renderpass_block", sldata->renderpass_ubo.combined); | ||||
| DRW_shgroup_call_procedural_triangles(grp, NULL, common_data->vol_tex_size[2]); | DRW_shgroup_call_procedural_triangles(grp, NULL, common_data->vol_tex_size[2]); | ||||
| } | } | ||||
| } | } | ||||
| static bool eevee_volume_object_grids_init(Object *ob, ListBase *gpu_grids, DRWShadingGroup *grp) | static bool eevee_volume_object_grids_init(Object *ob, ListBase *gpu_grids, DRWShadingGroup *grp) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 268 Lines • ▼ Show 20 Lines | DRW_shgroup_call_procedural_triangles( | ||||
| grp, NULL, USE_VOLUME_OPTI ? 1 : common_data->vol_tex_size[2]); | grp, NULL, USE_VOLUME_OPTI ? 1 : common_data->vol_tex_size[2]); | ||||
| DRW_PASS_CREATE(psl->volumetric_resolve_ps, DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND_CUSTOM); | DRW_PASS_CREATE(psl->volumetric_resolve_ps, DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND_CUSTOM); | ||||
| grp = DRW_shgroup_create(e_data.volumetric_resolve_sh, psl->volumetric_resolve_ps); | grp = DRW_shgroup_create(e_data.volumetric_resolve_sh, psl->volumetric_resolve_ps); | ||||
| DRW_shgroup_uniform_texture_ref(grp, "inScattering", &txl->volume_scatter); | DRW_shgroup_uniform_texture_ref(grp, "inScattering", &txl->volume_scatter); | ||||
| DRW_shgroup_uniform_texture_ref(grp, "inTransmittance", &txl->volume_transmit); | DRW_shgroup_uniform_texture_ref(grp, "inTransmittance", &txl->volume_transmit); | ||||
| DRW_shgroup_uniform_texture_ref(grp, "inSceneDepth", &e_data.depth_src); | DRW_shgroup_uniform_texture_ref(grp, "inSceneDepth", &e_data.depth_src); | ||||
| DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo); | DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo); | ||||
| DRW_shgroup_uniform_block(grp, "probe_block", sldata->probe_ubo); | |||||
| DRW_shgroup_uniform_block(grp, "renderpass_block", sldata->renderpass_ubo.combined); | DRW_shgroup_uniform_block(grp, "renderpass_block", sldata->renderpass_ubo.combined); | ||||
| DRW_shgroup_call_procedural_triangles(grp, NULL, 1); | DRW_shgroup_call_procedural_triangles(grp, NULL, 1); | ||||
| } | } | ||||
| } | } | ||||
| void EEVEE_volumes_draw_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) | void EEVEE_volumes_draw_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 248 Lines • Show Last 20 Lines | |||||