From f44404ce29a3b82b45045ef0e95bdf08dac2510e Mon Sep 17 00:00:00 2001 From: Sean Lilley Date: Mon, 16 Dec 2024 17:17:46 -0500 Subject: [PATCH] Fix K-bits range for meshopt octahedral filter --- extensions/2.0/Vendor/EXT_meshopt_compression/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/2.0/Vendor/EXT_meshopt_compression/README.md b/extensions/2.0/Vendor/EXT_meshopt_compression/README.md index 153a413ba8..b086b58066 100644 --- a/extensions/2.0/Vendor/EXT_meshopt_compression/README.md +++ b/extensions/2.0/Vendor/EXT_meshopt_compression/README.md @@ -441,7 +441,7 @@ Octahedral filter allows to encode unit length 3D vectors (normals/tangents) usi This filter is only valid if `byteStride` is 4 or 8. When `byteStride` is 4, then the input and output of this filter are four 8-bit components, and when `byteStride` is 8, the input and output of this filter are four 16-bit signed components. -The input to the filter is four 8-bit or 16-bit components, where the first two specify the X and Y components in octahedral encoding encoded as signed normalized K-bit integers (4 <= K <= 16, integers are stored in two's complement format), the third component explicitly encodes 1.0 as a signed normalized K-bit integer. The last component may contain arbitrary data which is passed through unfiltered (this can be useful for tangents). +The input to the filter is four 8-bit or 16-bit components, where the first two specify the X and Y components in octahedral encoding encoded as signed normalized K-bit integers (1 <= K <= 16, integers are stored in two's complement format), the third component explicitly encodes 1.0 as a signed normalized K-bit integer. The last component may contain arbitrary data which is passed through unfiltered (this can be useful for tangents). The encoding of the third component allows to compute K for each vector independently from the bit representation, and must encode 1.0 precisely which is equivalent to `(1 << (K - 1)) - 1` as an integer; values of the third component that aren't equal to `(1 << (K - 1)) - 1` for a valid `K` are invalid and the result of decoding such vectors is unspecified.