#genuary21
Collision detection system (no libs).
Использовал простейшее квадро-дерево (quad-tree). Если использовать элементы с постоянной шириной, то оно вполне решает задачу поиска ближайших соседей, с которыми уже нужно считать пересечение. Достаточно использовать для запроса регион поиска размером с ширину элемента + зазор (если он необходим). Коллизии тут ищутся между кругами, радиусом с ширину линии.
Не обошлось и без ошибки (вторая картинка), но это не ошибка с коллизиями и я даже не стал её искать - с ней даже лучше 🙃
Collision detection system (no libs).
Использовал простейшее квадро-дерево (quad-tree). Если использовать элементы с постоянной шириной, то оно вполне решает задачу поиска ближайших соседей, с которыми уже нужно считать пересечение. Достаточно использовать для запроса регион поиска размером с ширину элемента + зазор (если он необходим). Коллизии тут ищутся между кругами, радиусом с ширину линии.
Не обошлось и без ошибки (вторая картинка), но это не ошибка с коллизиями и я даже не стал её искать - с ней даже лучше 🙃
🔥19
Gradients only.
Примитивный шейдер, смешано 5 цветов, при помощи smoothstep от uv.y (текстурные координаты предварительно повернуты на небольшой случайный для каждого шага угол), вторая граница интервала имеет примерно такой вид:
Шум тут определен в интервале от -1 до 1, таким образом все выражение меняется от 0 до 0.2, все это дает такой вот прикольный неравномерный градиент.
В финале поверх всего добавлен еще один градиент слева-направо.
😵💫Если долго рассматривать переходы мне кажется что картинка шевелится.
#genuary22
Примитивный шейдер, смешано 5 цветов, при помощи smoothstep от uv.y (текстурные координаты предварительно повернуты на небольшой случайный для каждого шага угол), вторая граница интервала имеет примерно такой вид:
0.1+noise(uv)*0.1
Шум тут определен в интервале от -1 до 1, таким образом все выражение меняется от 0 до 0.2, все это дает такой вот прикольный неравномерный градиент.
В финале поверх всего добавлен еще один градиент слева-направо.
😵💫Если долго рассматривать переходы мне кажется что картинка шевелится.
#genuary22
😍25👍7🔥6🥰3🕊1
Gradients only. Vol 2.
Частичный градиент меджу градиентами, шейдер, еще проще чем из прошлого сообщения, меньше сила эффекта, меньше градиента, 7 секций, 5 цветов.
#genuary22
Частичный градиент меджу градиентами, шейдер, еще проще чем из прошлого сообщения, меньше сила эффекта, меньше градиента, 7 секций, 5 цветов.
#genuary22
🔥15❤4👍3
Inspired by brutalism.
Это вольная интерпретация здания ЦНИИ РТК («Центральный научно-исследовательский и опытно-конструкторский институт робототехники и технической кибернетики»). Некоторые детали не точны, пропорции не совпадают.
Отрендерено при помощи старого доброго реймаршинга, из эффектов тут только ambient occlusion и освещение точечным источником, теней нет.
Формулу SDF для этой сцены собрал по фото, чтобы не запутаться пришлось выделять отдельные элементы в функции, получилось примерно 140 строчек glsl.
Из примитивов тут нет ничего кроме коробок, цилиндров и плоскостей (ну и булевых операций над ними). Для башни декартовы координаты преобразованы в полярные, которые по окружности повторяются при помощи остатка от деления, это позволяет вот так по окружности повторить элементы.
#genuary23
Это вольная интерпретация здания ЦНИИ РТК («Центральный научно-исследовательский и опытно-конструкторский институт робототехники и технической кибернетики»). Некоторые детали не точны, пропорции не совпадают.
Отрендерено при помощи старого доброго реймаршинга, из эффектов тут только ambient occlusion и освещение точечным источником, теней нет.
Формулу SDF для этой сцены собрал по фото, чтобы не запутаться пришлось выделять отдельные элементы в функции, получилось примерно 140 строчек glsl.
Из примитивов тут нет ничего кроме коробок, цилиндров и плоскостей (ну и булевых операций над ними). Для башни декартовы координаты преобразованы в полярные, которые по окружности повторяются при помощи остатка от деления, это позволяет вот так по окружности повторить элементы.
#genuary23
❤🔥17👍4❤1
One line that may or may not intersect itself
Одна линия, точки в ней смещаются по вертикальной оси на случайное число умноженное на обратную яркость в этой точке.
Яркость считается при помощи реймаршинга, на этот раз на CPU, хотя все то же самое можно было бы и на gpu посчитать 🤔 тогда скорость появления картинки сильно увеличится, сейчас это 3-6 секунд на м1, в зависимости от сложности сцены и примененных эффектов(тут это AO и освещение и попытка сделать тени).
Тени так и не доделал, зато получил веселые ошибки с их подсчетом (последние 2 картинки)
#genuary25
Одна линия, точки в ней смещаются по вертикальной оси на случайное число умноженное на обратную яркость в этой точке.
Яркость считается при помощи реймаршинга, на этот раз на CPU, хотя все то же самое можно было бы и на gpu посчитать 🤔 тогда скорость появления картинки сильно увеличится, сейчас это 3-6 секунд на м1, в зависимости от сложности сцены и примененных эффектов(тут это AO и освещение и попытка сделать тени).
Тени так и не доделал, зато получил веселые ошибки с их подсчетом (последние 2 картинки)
#genuary25
❤🔥19❤5🥰2