Quantcast
Channel: Richard Geldreich's Blog
Browsing all 302 articles
Browse latest View live
↧

Image may be NSFW.
Clik here to view.

Basis universal GPU texture format examples

The .basis format is a lossy texture compression format roughly comparable to JPEG in size but designed specifically for GPU texture data. The format's main feature is that it can be efficiently...

View Article


Image may be NSFW.
Clik here to view.

xmen_1024 encoded to .basis at various bitrates

Here's xmen_1024 compressed at various bitrates to .basis. I show the output of two transcodes: ETC1 (which is the highest quality format in baseline .basis) and PVRTC (with clamp...

View Article


Image may be NSFW.
Clik here to view.

Better PVRTC encoding

I'm taking a quick break from RDO BC7. I've been working on it for too long and I need to mix things up.I've been experimenting with high-quality PVRTC encoding for several years, off and on. I've...

View Article

Image may be NSFW.
Clik here to view.

How to improve crunch's codebook generators

While writing Basis ETC I sat down and started to study the codebook generation process I used on crunch. crunch would create candidate representational vectors (for endpoints or selectors), clusterize...

View Article

ETC1S texture format encoding and how it's transcoded to BC1

I developed the ETC1S encoding method back in late 2016, and we talked about it publicly in our CppCon '16 presentation. It's good to see that this encoding is working well in crunch too (better...

View Article


Image may be NSFW.
Clik here to view.

Lookup table based real-time PVRTC encoding

I've found a table-based method of improving the output from a real-time PVRTC encoder. Fast real-time encoders first find the RGB(A) bounds of each 4x4 block to determine the block endpoints, then...

View Article

Real-time PVRTC encoding for a universal GPU texture format system

Here's one way to support PVRTC in a universal GPU texture format system that transcodes from a block based format like ETC1S.First, study this PVRTC...

View Article

Image may be NSFW.
Clik here to view.

PVRTC encoding examples

This is "testpat.png", which I got somewhere on the web. It's a surprisingly tricky image to encode to PVRTC. The gradients, various patterns, the transitions between these regions and even the...

View Article


Basis status update

I sent this as a reply to someone by email, but it makes a good blog post too. Here's what Basis does today right now (i.e. this is what we ship for OSX/Windows/Linux):1. RDO BC1-5: Like crunch's,...

View Article


A little ETC1S history

I've been talking about ETC1S for several years. I removed some of my earlier posts (to prevent others from stealing our work - which does happen) but they are...

View Article

Image may be NSFW.
Clik here to view.

This is why we're working on Basis.

Here's a very interesting graph of game install/on-device sizes from The Cost of Games:This is a *log* graph. Notice the overall trend. Most of this data is texture data.And so this is why our product...

View Article

Types of tech companies

Some tech company types I've encountered in the past. A company can be a blend of multiple types.1. Famous companies Massive subsidies from digital distributionLet them call you - *always*. Can be...

View Article

Image may be NSFW.
Clik here to view.

Existing BC7 codecs don't handle textures with decorrelated alpha channels well

Developers aren't getting the alpha quality they could be getting if they had better BC7 codecs. I noticed while working on our new non-RDO BC7 codec that existing BC7 codecs don't handle textures with...

View Article


Image may be NSFW.
Clik here to view.

Direct conversion of ETC1 to DXT1 texture data (originally published 9/11/16)

In this experiment, I limited my ETC1 encoder to only use a subset of the full format: differential mode, no flipping, with the diff color always set to (0,0,0). So all we use in the ETC1 format is the...

View Article

Image may be NSFW.
Clik here to view.

Direct conversion of ETC1 to DXT1 texture data: 2nd experiment (originally...

I lowered the ETC1 encoder's quality setting, so it doesn't try varying the block color so much during endpoint optimization. The DXT1 artifacts in my first experiment are definitely improved, although...

View Article


Image may be NSFW.
Clik here to view.

Direct conversion of ETC1 to DXT1 texture data: 3rd experiment (originally...

I've changed the lookup table used to convert to DXT1. Each cell in the 256K entry table (32*32*32*8, for each 5:5:5 base color and 3-bit intensity table entry in my ETC1 subset format) now contains 10...

View Article

Image may be NSFW.
Clik here to view.

Direct conversion of ETC1 to DXT1 texture data: 4th experiment (originally...

In this experiment, I've worked on reducing the size of the lookup table used to quickly convert a subset of ETC1 texture data (using only a single 5:5:5 base color, one 3-bit intensity table index,...

View Article


Image may be NSFW.
Clik here to view.

Universal texture compression: 5th experiment (originally published 9/15/16)

I outlined a plan for my next texture compression experiment in a previous post, here. I modified my ETC1 packer so it accepts an optional parameter which forces the encoder to use a set of...

View Article

Few more random thoughts on a "universal" GPU texture format (originally...

In my experiments, a simple but usable subset of ETC1 can be easily converted to DXT1, BC7, and ATC. And after studying the standard, it very much looks like the full ETC1 format can be converted into...

View Article

More universal GPU texture format stuff (originally published 9/9/16)

Some BC7 format references:https://msdn.microsoft.com/en-us/library/hh308954(v=vs.85).aspxhttps://msdn.microsoft.com/en-us/library/hh308953.aspxSource to CPU and shader BC7 (and other format)...

View Article
Browsing all 302 articles
Browse latest View live