def create_textures(self):
        """ Creates all textures required for the scattering """

        tex_format = "RGBA32" if self.use_32_bit else "RGBA16"
        img_2d, img_3d = Image.create_2d, Image.create_3d

        self.textures = {
            "transmittance": img_2d("scat-trans", self.trans_w, self.trans_h, tex_format),
            "irradiance": img_2d("scat-irrad", self.sky_w, self.sky_h, tex_format),
            "inscatter": img_3d("scat-inscat", self.res_mu_s_nu, self.res_mu, self.res_r, tex_format),  # noqa # pylint: disable=line-too-long
            "delta_e": img_2d("scat-dx-e", self.sky_w, self.sky_h, tex_format),
            "delta_sr": img_3d("scat-dx-sr", self.res_mu_s_nu, self.res_mu, self.res_r, tex_format),
            "delta_sm": img_3d("scat-dx-sm", self.res_mu_s_nu, self.res_mu, self.res_r, tex_format),
            "delta_j": img_3d("scat-dx-j", self.res_mu_s_nu, self.res_mu, self.res_r, tex_format),
        }

        for img in itervalues(self.textures):
            img.set_minfilter(SamplerState.FT_linear)
            img.set_magfilter(SamplerState.FT_linear)
            img.set_wrap_u(SamplerState.WM_clamp)
            img.set_wrap_v(SamplerState.WM_clamp)
            img.set_wrap_w(SamplerState.WM_clamp)
 Creates all textures required for the scattering 
metadrive/render_pipeline/rpplugins/scattering/scattering_methods.py