def fixGrayscaleTextures(np): for tex in np.findAllTextures(): if (tex.getFormat() == Texture.F_luminance): print "Fixing grayscale texture", tex.getName() img = PNMImage() tex.store(img) img.makeRgb() tex.load(img)
emissive_srgb = bool(int(raw_input("sRGB (Edited in image program)? [1/0]: "))) size = [1024, 1024] fImgs = [[ao, ao_srgb], [roughness, roughness_srgb], [metallic, metallic_srgb], [emissive, emissive_srgb]] imgs = {} foundSize = False for i in range(len(fImgs)): fImg, is_sRGB = fImgs[i] if fImg.exists(): img = PNMImage() img.read(fImg) img.makeRgb() if is_sRGB: # Convert to linear print("Converting", getChannelName(i), "to linear") img.applyExponent(2.2) if not foundSize: size = [img.getReadXSize(), img.getReadYSize()] foundSize = True imgs[i] = img else: # assume it is a constant value val = float(fImg.getFullpath()) if is_sRGB: print("Converting", getChannelName(i), "to linear") # Convert to linear val = math.pow(val, 2.2)