EEVEE-Next: Add Film and RenderBuffers module
This modules handles renderpasses allocation and filling. Also handles blitting to viewport framebuffer and render result reading. Changes against the old implementation: - the filling of the renderpasses happens all at once requiring only 1 geometry pass. - The filtering is optimized with weights precomputed on CPU and reuse of neighboor pixels. - Only one accumulation buffer for renderpasses (no ping-pong). - Accumulation happens in one pass for every passes using a single dispatch or fullscreen triangle pass. TAA and history reprojection is not yet implemented. AOVs support is present but with a 16 AOV limit for now. Cryptomatte is not yet implemented.
This commit is contained in:
@@ -78,6 +78,10 @@ ShaderModule::~ShaderModule()
|
||||
const char *ShaderModule::static_shader_create_info_name_get(eShaderType shader_type)
|
||||
{
|
||||
switch (shader_type) {
|
||||
case FILM_FRAG:
|
||||
return "eevee_film_frag";
|
||||
case FILM_COMP:
|
||||
return "eevee_film_comp";
|
||||
case VELOCITY_RESOLVE:
|
||||
return "eevee_velocity_resolve";
|
||||
/* To avoid compiler warning about missing case. */
|
||||
@@ -161,7 +165,6 @@ void ShaderModule::material_create_info_ammend(GPUMaterial *gpumat, GPUCodegenOu
|
||||
}
|
||||
}
|
||||
info.vertex_inputs_.clear();
|
||||
info.additional_info("draw_curves_infos");
|
||||
break;
|
||||
case MAT_GEOM_WORLD:
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user