Download third_party/ktx-src/interface/python_binding/pyktx/ktx_astc_params.py from kimjunhan/vkgs-sim: direct link, hf CLI and curl.
- Browser
- Download file 2.22 kB
-
https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/third_party/ktx-src/interface/python_binding/pyktx/ktx_astc_params.py
- Command line
-
hf download hf://kimjunhan/vkgs-sim/third_party/ktx-src/interface/python_binding/pyktx/ktx_astc_params.py
-
curl -L -o ktx_astc_params.py https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/third_party/ktx-src/interface/python_binding/pyktx/ktx_astc_params.py
2.22 kB
| # Copyright (c) 2023, Shukant Pal and Contributors | |
| # SPDX-License-Identifier: Apache-2.0 | |
| import re | |
| from dataclasses import dataclass | |
| from .ktx_pack_astc_block_dimension import KtxPackAstcBlockDimension | |
| from .ktx_pack_astc_encoder_mode import KtxPackAstcEncoderMode | |
| from .ktx_pack_astc_quality_levels import KtxPackAstcQualityLevels | |
| swizzle_regex = re.compile('^[rgba01]{4}$') | |
| class KtxAstcParams: | |
| """Data for passing extended parameters to KtxTexture2.compress_astc().""" | |
| verbose: bool = False | |
| """If true, prints Astc encoder operation details to stdout. Not recommended for GUI apps.""" | |
| thread_count: int = 1 | |
| """Number of threads used for compression. Default is 1.""" | |
| block_dimension: KtxPackAstcBlockDimension = KtxPackAstcBlockDimension.D4x4 | |
| """Combinations of block dimensions that astcenc supports i.e. 6x6, 8x8, 6x5 etc""" | |
| mode: KtxPackAstcEncoderMode = KtxPackAstcEncoderMode.DEFAULT | |
| """Can be {ldr/hdr} from astcenc""" | |
| quality_level: int = KtxPackAstcQualityLevels.FASTEST | |
| """astcenc supports -fastest, -fast, -medium, -thorough, -exhaustive""" | |
| normal_map: bool = False | |
| """ | |
| Tunes codec parameters for better quality on normal maps. | |
| In this mode normals are compressed to X,Y components | |
| Discarding Z component, reader will need to generate Z | |
| component in shaders. | |
| """ | |
| perceptual: bool = False | |
| """ | |
| The codec should optimize for perceptual error, instead of direct RMS error. | |
| This aims to improves perceived image quality, but | |
| typically lowers the measured PSNR score. Perceptual methods are | |
| currently only available for normal maps and RGB color data. | |
| """ | |
| input_swizzle: bytes = bytes([0, 0, 0, 0]) | |
| """ | |
| A swizzle to provide as input to astcenc. | |
| It must match the regular expression /^[rgba01]{4}$/. | |
| """ | |
| def parse_swizzle(self, swizzle: str) -> None: | |
| if not swizzle_regex.match(swizzle): | |
| raise ValueError(swizzle | |
| + " does not match the appropriate format " | |
| + str(swizzle_regex) | |
| + " for a swizzle") | |
| self.input_swizzle = swizzle.encode('ascii') | |