Разъяснение по внедрению цвета в Fractal Flame IFS
Я наткнулся на этот файл PDF и хотел написать свой собственный генератор Fractal Flame. Я пытаюсь понять, что пытаются сказать в разделах "Отображение плотности журнала", "Цвет" и "Гамма-фактор". На данный момент я думаю, что он говорит об использовании этого алгоритма для определения значения [0-255] каждого цветового канала для непрозрачного изображения:
var log_log = log(pixel_counter)/log(max_counter),
alpha_gamma_factor = color_channel*log_log^(1/gamma),
color_gamma_factor = log_log*color_channel^(1/gamma),
vibrant_color = vibrancy*alpha_gamma_factor+(1-vibrancy)*color_gamma_factor,
corrected_color_channel = floor(256*vibrant_color);
куда vibrancy
а также color_channel
равны [0, 1), счетчики являются целыми числами, и gamma
это значение между sqrt(5)
а также sqrt(16)
(или ~2,2 и 4).
Пожалуйста, дайте мне знать, если это правильно, а если нет, как мне изменить алгоритм. Я также хотел бы сделать вариант алгоритма, который поддерживает полупрозрачность, поскольку на выходе будут файлы PNG. Каким будет алгоритм наивысшего качества для альфа-канала для [0, 255] (от прозрачного до непрозрачного соответственно) в этом случае?