История изменений
Исправление byko3y, (текущая версия) :
Замечательно, вот тебе функция:
Cможешь объяснить что она делает? Ты же отличный опытный программист че. И код чистый и простой, даже с комментариями.
Нет, не сможешь. Даже с вот этой специальной ссылкой.
Я поделю свое впечатление на чтение одного только теста функции, просмотр всего кода по ссылке, и с попыткой потыкать на сайте в кнопки, меняя текстуры и отключая упомянутую функцию.
Это короткая рекуррентная функция, которая потенциально может быть крайне сложной, как любые рекуррентные функции. Она находит минимум чего-то там, при этом суммирует что-то там еще, делает это до условия t < dist
, и этот чисто рекуррентный цикл плохо параллелизуется, потому что каждая следующая итерация использует результат предыдущей. Функция называется «Shadow» — тень, возвращает какую-то там тень. Функция clamp скорее всего похожа на таковую в JS:
https://developer.mozilla.org/en-US/docs/Web/CSS/clamp
то есть, скорее всего впихивает результат в диапазон 0.2-1.0 — похоже на какой-то коэффициент тени.
Далее, попытка почитать общий код показала, что он не сильно помог в понимании. Всё, что я понял — это что v0 является некой исходной точкой, vd — вектором направления света, dist — расстоянием до света. Однако, магия функции mapDE и самого вычисления 2.*h / t
по прежнему осталась неясной.
Тыкание в кнопки показало, что сей шейдер берет на вход две текстуры и превращает их в фарш, который напоминает то ли скалы, то ли облака. Третья текстура используется для «реки». Скорее всего mapDE
описывает эту самую форму облаков-скал, а функция Shadow
считает по ней тень. Повторный анализ функции Shadow на основе новой инфы показал, что идея может заключаться в подсчете прозрачности «облаков» для определения теней на них, правда, визуально оно на облака не похоже, это просто какая-то всратая мешанина черной и красной краски по холсту.
код сам по себе и вне контекста ни смысла ни ценности не представляет.
И это повод говнокодить на каждом шагу? Этот же код можно было написать хуже, но, подозреваю, можно было и лучше.
Исходная версия byko3y, :
Замечательно, вот тебе функция:
Cможешь объяснить что она делает? Ты же отличный опытный программист че. И код чистый и простой, даже с комментариями.
Нет, не сможешь. Даже с вот этой специальной ссылкой.
Я поделю свое впечатление на чтение одного только теста функции, просмотр всего кода по ссылке, и с попыткой потыкать на сайте в кнопки, меняя текстуры и отключая упомянутую функцию.
Это короткая рекуррентная функция, которая потенциально может быть крайне сложной, как любые рекуррентные функции. Она находит минимум чего-то там, при этом суммирует что-то там еще, делает это до условия t < dist
, а этот чисто рекуррентный цикл плохо параллелизуется, потому что каждая следующая итерация использует результат предыдущей. Функция называется «Shadow» — тень, возвращает какую-то там тень. Функция clamp скорее всего похожа на таковую в JS:
https://developer.mozilla.org/en-US/docs/Web/CSS/clamp
то есть, скорее всего впихивает результат в диапазон 0.2-1.0 — похоже на какой-то коэффициент тени.
Далее, попытка почитать общий код показала, что он не сильно помог в понимании. Всё, что я понял — это что v0 является некой исходной точкой, vd — вектором направления света, dist — расстоянием до света. Однако, магия функции mapDE и самого вычисления 2.*h / t
по прежнему осталась неясной.
Тыкание в кнопки показало, что сей шейдер берет на вход две текстуры и превращает их в фарш, который напоминает то ли скалы, то ли облака. Третья текстура используется для «реки». Скорее всего mapDE
описывает эту самую форму облаков-скал, а функция Shadow
считает по ней тень. Повторный анализ функции на основе новой инфы показал, что идея может заключаться в подсчете прозрачности «облаков» для определения теней на них, правда, визуально оно на облака не похоже, это просто какая-то всратая мешанина черной и красной краски по холсту.
код сам по себе и вне контекста ни смысла ни ценности не представляет.
И это повод говнокодить на каждом шагу? Этот же код можно было написать хуже, но, подозреваю, можно было и лучше.