Add Ktx2Reader and BasisEncoder and use them in samples.
mipgen can now emit basis-encoded KTX2 files. Both the desktop and
web "suzanne" samples use this as a test for compressed textures.
This PR does not add KTX2 support to glTF, but it's on the way.
`BasisEncoder` has a builder style API that calls the basis encoder to
create KTX2 files. This hides some low-level BasisU features that we are
not using, like file I/O and mipmap generation.
`Ktx2Reader` is an easy-to-use API for creating Filament textures from
KTX2 files. Its API primarily consists of these two methods:
bool requestFormat(Texture::InternalFormat format);
Filament::Texture* load(const uint8_t* data, size_t size);
The first method is used to build an ordered list of formats that are
supported by your hardware. The second method consumes the contents of a
basis-encoded KTX2 file and attempts to produce a Filament texture with
a preferred format.
IMPORTANT: Our tools still let you use KTX1 for non-compressed images
because it is useful for HDR, but you can no longer use KTX1 for
block-compressed data.
Partial fix for #4771.
This commit is contained in:
@@ -335,6 +335,7 @@ void computeSingleSample(const LinearImage& source, float x, float y, SingleSamp
|
||||
}
|
||||
}
|
||||
|
||||
// Generates the given number of mipmaps (not including the base level) using the given filter.
|
||||
// Unlike traditional mipmap generation, our implementation generates all levels from the original
|
||||
// image, under the premise that this produces a higher quality result.
|
||||
void generateMipmaps(const LinearImage& source, Filter filter, LinearImage* result, uint32_t mips) {
|
||||
|
||||
Reference in New Issue
Block a user