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)
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)