def METHOD_NAME(self, ray_bundle: RayBundle):
    if self.field is None:
        raise ValueError("populate_fields() must be called before get_outputs")
    # uniform sampling
    ray_samples_uniform = self.sampler_uniform(ray_bundle)
    # First pass:
    field_outputs_coarse = self.field.forward(ray_samples_uniform)
    weights_coarse = ray_samples_uniform.get_weights(field_outputs_coarse[FieldHeadNames.DENSITY])
    rgb_coarse = self.renderer_rgb(
        rgb=field_outputs_coarse[FieldHeadNames.RGB],
        weights=weights_coarse,
    )
    accumulation_coarse = self.renderer_accumulation(weights_coarse)
    depth_coarse = self.renderer_depth(weights_coarse, ray_samples_uniform)
    # pdf sampling
    ray_samples_pdf = self.sampler_pdf(ray_bundle, ray_samples_uniform, weights_coarse)
    # Second pass:
    field_outputs_fine = self.field.forward(ray_samples_pdf)
    weights_fine = ray_samples_pdf.get_weights(field_outputs_fine[FieldHeadNames.DENSITY])
    rgb_fine = self.renderer_rgb(
        rgb=field_outputs_fine[FieldHeadNames.RGB],
        weights=weights_fine,
    )
    accumulation_fine = self.renderer_accumulation(weights_fine)
    depth_fine = self.renderer_depth(weights_fine, ray_samples_pdf)
    outputs = {
        "rgb_coarse": rgb_coarse,
        "rgb_fine": rgb_fine,
        "accumulation_coarse": accumulation_coarse,
        "accumulation_fine": accumulation_fine,
        "depth_coarse": depth_coarse,
        "depth_fine": depth_fine,
    }
    return outputs