1
0

Compare commits

...

3 Commits

Author SHA1 Message Date
dd5ebb7941 add BC4 images
nb: the bc4/ati1 dds files are actually slightly wrong, seems like nvtt has a bug and endpoints are off by 1 sometimes
2021-04-07 01:08:11 -07:00
31c8cebdc5 remove unused import 2021-04-06 23:41:13 -07:00
1023b49344 More test images 2021-04-05 23:05:36 -07:00
17 changed files with 58 additions and 10 deletions

1
.gitattributes vendored
View File

@ -1,2 +1,3 @@
*.png filter=lfs diff=lfs merge=lfs -text
*.afdesign filter=lfs diff=lfs merge=lfs -text
*.dds filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
__pycache__

View File

@ -1,17 +1,33 @@
from PIL import Image
import os
from quicktex.s3tc.bc1 import BC1Block
from quicktex.s3tc.bc4 import BC4Block
from quicktex import RawTexture
import os.path
image_path = os.path.dirname(os.path.realpath(__file__))
class Blocks:
# A block that should always encode greyscale, where every row of pixels is identical, and the left side is lighter than the right side
greyscale = Image.open(image_path + "/blocks/greyscale.png").tobytes("raw", "RGBX")
class BC1Blocks:
class Entry:
def __init__(self, filename, block):
path = os.path.join(image_path, 'bc1', filename)
self.image = Image.open(path).convert('RGBA')
self.texture = RawTexture.frombytes(self.image.tobytes('raw', 'RGBA'), *self.image.size)
self.block = block
# A block that should always encode 3-color when available.
# from left to right: red, yellow, yellow, green
three_color = Image.open(image_path + "/blocks/3color.png").tobytes("raw", "RGBX")
greyscale = Entry('greyscale_unpacked.png', BC1Block.frombytes(b'\xFF\xFF\x49\x4A\x78\x78\x78\x78'))
three_color = Entry('3color_unpacked.png', BC1Block.frombytes(b'\xE0\x07\x00\xF8\x29\x29\x29\x29'))
three_color_black = Entry('3color_black_unpacked.png', BC1Block.frombytes(b'\xE0\x07\x00\xF8\x27\x27\x27\x27'))
class BC4Blocks:
class Entry:
def __init__(self, filename, block):
path = os.path.join(image_path, 'bc4', filename)
self.image = Image.open(path).convert('RGBA')
self.texture = RawTexture.frombytes(self.image.tobytes('raw', 'RGBA'), *self.image.size)
self.block = block
six_value = Entry('6value.png', BC4Block(8, 248, [[0, 1, 2, 3]] * 2 + [[4, 5, 6, 7]] * 2))
eight_value = Entry('8value.png', BC4Block(240, 16, [[0, 1, 2, 3]] * 2 + [[4, 5, 6, 7]] * 2))
# A block that should always encode 3-color with black when available
# from left to right: black, red, yellow, green
three_color_black = Image.open(image_path + "/blocks/3color black.png").tobytes("raw", "RGBX")

BIN
bc1/3color.dds (Stored with Git LFS) Normal file

Binary file not shown.

BIN
bc1/3color_black.dds (Stored with Git LFS) Normal file

Binary file not shown.

BIN
bc1/3color_black_unpacked.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
bc1/3color_unpacked.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
bc1/greyscale.dds (Stored with Git LFS) Normal file

Binary file not shown.

BIN
bc1/greyscale_unpacked.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
bc4/6value.dds (Stored with Git LFS) Normal file

Binary file not shown.

BIN
bc4/6value.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
bc4/8value.dds (Stored with Git LFS) Normal file

Binary file not shown.

BIN
bc4/8value.png (Stored with Git LFS) Normal file

Binary file not shown.