Решили: облака строятся процедурно тремя разными способами, и все три живут в стенде под вердикт Макса: доли (полукружия, первый заход), потолок (поле fbm с порогом, перистая пелена над головой) и гряда (кучевые купола на уровне глаз, реф Dead Weight). Ни один пока не принят; рабочий фаворит — гряда, потому что она единственная отвечает замыслу «остров висит среди облаков».
Почему: «мультяшно» жило не в раскраске, а в геометрии. Дуга постоянной кривизны читается
воздушным шаром при любом числе плоских тонов, поэтому ни контур, ни лепка ступенями долей не
спасали. Открытые источники (Book of Shaders §13, статья Килеза про domain warping, двумерные
облака на Shadertoy) строят облако полем: fbm, варп fbm(p+fbm(p)), порог как силуэт, постеризация
на три-четыре тона, свет из градиента поля. Приём переносится в HLSL один в один, и Procedural.hlsl
уже содержит нужный value noise — доли пришлось бы переписывать заново.
Вторая половина решения — про камеру, а не про шум. Потолок из поля выглядит перистым покровом далеко вверху: правильно для «мы под облаками», неверно для острова над бездной. Кучевая гряда требует того, чего порог по 2D-шуму не даёт в принципе: одного общего плоского дна (уровень конденсации в небе один) и профиля высоты, из-за которого между куполами чистое небо видно до самого низа. Порог ставит облака и над куполом, и под ним — небо превращается в покрывало.
Профиль гряды — верхняя огибающая выпуклых клубов: крупные купола, на каждом мелкие по верхней дуге. Круги вернулись как скелет, но не как рисуемая форма: ни один не заливается и не обводится, наружу выходит только огибающая. Этим оно и отличается от первого захода.
Сказано: «зачем нам вообще пиксель арт? Мы же от него уходим… у нас процедурка есть!!!»
(02.08.2026) и по итогам поля: «А более визуальные, более в нашем стиле? А то щас облака будто мы
“не на уровне облаков”, а они сильно выше нас» (03.08.2026, сессия f76789b3).
Грабли: четыре тупика, каждый выглядел правдоподобно и проваливался только на картинке.
- Обводка массы рисовала швы между долями. Путь силуэта строился как дуги долей подряд и самопересекался: заливке всё равно, обводке нет. Починка — верхняя огибающая по столбцам, сглаженная через середины отрезков.
- Сырой fbm по горизонтали даёт горный хребет — острые пики.
- Сглаженный fbm даёт дюны — гладкие холмы без клубов.
- Тон по относительной высоте даёт вертикальные сосульки, потому что высота резко меняется от столбца к столбцу. Ступени обязаны идти вдоль кромки: тон считается от глубины под гребнем в пикселях.
Плюс два числовых: у горизонта шаг сэмпла обгоняет период шума и поле рассыпается в вертикальный штрихкод (дальность нужно ограничивать потолком), а между клубами облако расчёсывается на зубцы до самого дна, если не подложить размытый «пол» под кромку.
Владелец правды: docs/lab/src/sections/gamefeel-floor.ts — cloudBank (гряда), cloudField
(потолок), cloudSilhouette (огибающая долей); стенды раздела #/floor, блок «Чем построено
облако». Дизайн-сторона — Gamefeel - Arena Floor.