def _make_maps(self):
        """ Internal method to create the cubemap storage """

        # Create the cubemaps for the diffuse and specular components
        self._prefilter_map = Image.create_cube(
            self._name + "IBLPrefDiff", CubemapFilter.PREFILTER_CUBEMAP_SIZE,
            "R11G11B10")
        self._diffuse_map = Image.create_cube(
            self._name + "IBLDiff", CubemapFilter.DIFFUSE_CUBEMAP_SIZE,
            "R11G11B10")
        self._spec_pref_map = Image.create_cube(self._name + "IBLPrefSpec",
                                                self._size, "R11G11B10")
        self._specular_map = Image.create_cube(self._name + "IBLSpec",
                                               self._size, "R11G11B10")

        # Set the correct filtering modes
        for tex in [
                self._diffuse_map, self._specular_map, self._prefilter_map,
                self._spec_pref_map
        ]:
            tex.set_minfilter(SamplerState.FT_linear)
            tex.set_magfilter(SamplerState.FT_linear)
            tex.set_clear_color(Vec4(0))
            tex.clear_image()

        # Use mipmaps for the specular cubemap
        self._spec_pref_map.set_minfilter(SamplerState.FT_linear_mipmap_linear)
        self._specular_map.set_minfilter(SamplerState.FT_linear_mipmap_linear)
    def _make_maps(self):
        """ Internal method to create the cubemap storage """

        # Create the cubemaps for the diffuse and specular components
        self._prefilter_map = Image.create_cube(
            self._name + "IBLPrefDiff", CubemapFilter.PREFILTER_CUBEMAP_SIZE, "R11G11B10")
        self._diffuse_map = Image.create_cube(
            self._name + "IBLDiff", CubemapFilter.DIFFUSE_CUBEMAP_SIZE, "R11G11B10")
        self._spec_pref_map = Image.create_cube(
            self._name + "IBLPrefSpec", self._size, "R11G11B10")
        self._specular_map = Image.create_cube(
            self._name + "IBLSpec", self._size, "R11G11B10")

        # Set the correct filtering modes
        for tex in [self._diffuse_map, self._specular_map, self._prefilter_map, self._spec_pref_map]:
            tex.set_minfilter(SamplerState.FT_linear)
            tex.set_magfilter(SamplerState.FT_linear)
            tex.set_clear_color(Vec4(0))
            tex.clear_image()



        # Use mipmaps for the specular cubemap
        self._spec_pref_map.set_minfilter(SamplerState.FT_linear_mipmap_linear)
        self._specular_map.set_minfilter(SamplerState.FT_linear_mipmap_linear)
    def _create_store_targets(self):
        """ Creates the targets which copy the result texture into the actual storage """
        self.target_store = self.create_target("StoreCubemap")
        self.target_store.size = self.resolution * 6, self.resolution
        self.target_store.prepare_buffer()
        self.target_store.set_shader_input("SourceTex", self.target.color_tex)
        self.target_store.set_shader_input("DestTex", self.storage_tex)
        self.target_store.set_shader_input("currentIndex", self.pta_index)

        self.temporary_diffuse_map = Image.create_cube("DiffuseTemp", self.resolution, "RGBA16")
        self.target_store_diff = self.create_target("StoreCubemapDiffuse")
        self.target_store_diff.size = self.resolution * 6, self.resolution
        self.target_store_diff.prepare_buffer()
        self.target_store_diff.set_shader_input("SourceTex", self.target.color_tex)
        self.target_store_diff.set_shader_input("DestTex", self.temporary_diffuse_map)
        self.target_store_diff.set_shader_input("currentIndex", self.pta_index)
Example #4
0
    def _create_store_targets(self):
        """ Creates the targets which copy the result texture into the actual storage """
        self.target_store = self.create_target("StoreCubemap")
        self.target_store.size = self.resolution * 6, self.resolution
        self.target_store.prepare_buffer()
        self.target_store.set_shader_inputs(
            SourceTex=self.target.color_tex,
            DestTex=self.storage_tex,
            currentIndex=self.pta_index)

        self.temporary_diffuse_map = Image.create_cube("DiffuseTemp", self.resolution, "RGBA16")
        self.target_store_diff = self.create_target("StoreCubemapDiffuse")
        self.target_store_diff.size = self.resolution * 6, self.resolution
        self.target_store_diff.prepare_buffer()
        self.target_store_diff.set_shader_inputs(
            SourceTex=self.target.color_tex,
            DestTex=self.temporary_diffuse_map,
            currentIndex=self.pta_index)