viscosity/engine/servers/rendering/storage/make_ltc_lut.py

25 lines
1,009 B
Python

def write_bytes(file, source):
with open(source.path, mode="rb") as binary:
buffer = binary.read()
buffer = buffer[148:] # skip .dds header
file.write("0x{:02x}".format(buffer[0]))
for byte in range(1, len(buffer)):
file.write(",0x{:02x}".format(buffer[byte]))
def run(target, source, env):
with open(str(target[0]), "w", encoding="utf-8", newline="\n") as file:
file.write('/* WARNING, THIS FILE WAS GENERATED BY THE "{}" SCRIPT, DO NOT EDIT */ \n\n'.format(source[0].name))
file.write(
"// LTC Lookup table for BRDF fitting by Eric Heitz (https://eheitzresearch.wordpress.com/415-2/) \n"
)
file.write("static const int LTC_LUT_DIMENSIONS = 64; // 64x64\n")
file.write("static const uint8_t LTC_LUT1[] = {")
write_bytes(file, source[1])
file.write("};\n\n")
file.write("static const uint8_t LTC_LUT2[] = {")
write_bytes(file, source[2])
file.write("};\n\n")