61 GPUTexture *combined_final_tx_ =
nullptr;
81 PassSimple accumulate_ps_ = {
"Film.Accumulate"};
83 PassSimple cryptomatte_post_ps_ = {
"Film.Cryptomatte.Post"};
93 bool use_reprojection_ =
false;
99 void init(
const int2 &full_extent,
const rcti *output_rect);
131 return data_.render_extent;
147 return display_extent;
153 return data_.overscan;
164 return data_.scaling_factor;
171 return data_.background_opacity;
208 return data_.combined_id;
210 return data_.depth_id;
212 return data_.mist_id;
214 return data_.normal_id;
216 return data_.position_id;
218 return data_.vector_id;
220 return data_.diffuse_light_id;
222 return data_.diffuse_color_id;
224 return data_.specular_light_id;
226 return data_.specular_color_id;
228 return data_.volume_light_id;
230 return data_.emission_id;
232 return data_.environment_id;
234 return data_.shadow_id;
236 return data_.ambient_occlusion_id;
238 return data_.transparent_id;
240 return data_.cryptomatte_object_id;
242 return data_.cryptomatte_asset_id;
244 return data_.cryptomatte_material_id;
255 auto build_cryptomatte_passes = [&](
const char *pass_name) {
257 for (
int pass = 0; pass < num_cryptomatte_passes; pass++) {
258 std::stringstream ss;
263 result.append(ss.str());
339 void update_sample_table();
MINLINE float max_ff(float a, float b)
@ EEVEE_RENDER_PASS_CRYPTOMATTE_MATERIAL
@ EEVEE_RENDER_PASS_NORMAL
@ EEVEE_RENDER_PASS_CRYPTOMATTE_OBJECT
@ EEVEE_RENDER_PASS_DIFFUSE_LIGHT
@ EEVEE_RENDER_PASS_VOLUME_LIGHT
@ EEVEE_RENDER_PASS_DIFFUSE_COLOR
@ EEVEE_RENDER_PASS_CRYPTOMATTE_ASSET
@ EEVEE_RENDER_PASS_ENVIRONMENT
@ EEVEE_RENDER_PASS_COMBINED
@ EEVEE_RENDER_PASS_SPECULAR_LIGHT
@ EEVEE_RENDER_PASS_VECTOR
@ EEVEE_RENDER_PASS_SPECULAR_COLOR
@ EEVEE_RENDER_PASS_TRANSPARENT
@ EEVEE_RENDER_PASS_SHADOW
@ EEVEE_RENDER_PASS_POSITION
#define RE_PASSNAME_COMBINED
#define RE_PASSNAME_CRYPTOMATTE_MATERIAL
#define RE_PASSNAME_NORMAL
#define RE_PASSNAME_CRYPTOMATTE_ASSET
#define RE_PASSNAME_VECTOR
#define RE_PASSNAME_GLOSSY_COLOR
#define RE_PASSNAME_GLOSSY_DIRECT
#define RE_PASSNAME_SHADOW
#define RE_PASSNAME_ENVIRONMENT
#define RE_PASSNAME_POSITION
#define RE_PASSNAME_DIFFUSE_COLOR
#define RE_PASSNAME_VOLUME_LIGHT
#define RE_PASSNAME_CRYPTOMATTE_OBJECT
#define RE_PASSNAME_TRANSPARENT
#define RE_PASSNAME_DIFFUSE_DIRECT
struct GPUShader GPUShader
void fill(const T &value) const
float2 pixel_jitter_get() const
int2 film_offset_get() const
int2 display_extent_get() const
int render_overscan_get() const
int pass_id_get(eViewLayerEEVEEPassType pass_type) const
static bool pass_is_float3(eViewLayerEEVEEPassType pass_type)
GPUTexture * get_aov_texture(ViewLayerAOV *aov)
int scaling_factor_get() const
void accumulate(View &view, GPUTexture *combined_final_tx)
static const Vector< std::string > pass_to_render_pass_names(eViewLayerEEVEEPassType pass_type, const ViewLayer *view_layer)
int cryptomatte_layer_max_get() const
int cryptomatte_layer_len_get() const
static ePassStorageType pass_storage_type(eViewLayerEEVEEPassType pass_type)
float * read_pass(eViewLayerEEVEEPassType pass_type, int layer_offset)
int2 film_extent_get() const
void write_viewport_compositor_passes()
static int overscan_pixels_get(float overscan, int2 extent)
const FilmData & get_data()
int2 render_extent_get() const
bool is_viewport_compositor_enabled() const
AOVsInfoDataBuf aovs_info
float * read_aov(ViewLayerAOV *aov)
GPUTexture * get_pass_texture(eViewLayerEEVEEPassType pass_type, int layer_offset)
eViewLayerEEVEEPassType enabled_passes_get() const
Film(Instance &inst, FilmData &data)
float background_opacity_get() const
static constexpr bool use_box_filter
A running instance of the engine.
detail::Pass< command::DrawCommandBuf > PassSimple
@ PASS_STORAGE_CRYPTOMATTE
T reduce_max(const VecBase< T, Size > &a)