Как стать автором
Обновить

Комментарии 42

Мне и оригинал вполне себе.

Но я не хотел, чтобы у людей возникали проблемы, которые должны были бы возникнуть, так что их стоило устранить.
Не решал ли он 100 часов проблему, которая проблемой не являлась? Может, стоило спросить других? Странно.
Я сначала не понял какую он проблему решал. Но по конечному результату понял. Есть такое ание «Граф Монте-Кристо» и там похожая ситуация. Большинство моих знакомых его хвалят, а я дольше 5 минут просто не могу смотреть у меня начинают глаза отваливаться. В чём же дело? А дело в том что часть движущихся персонажей представлено статическими задниками, т.е. персонаж перемещается, и допустим на поделадке его плаща так же перемещается узор. С одной стороны это очень интересный эффект, с другой для некоторых людей он является вырвиглазным. В изначальном варианте дизеринг очень похож на этот эффект, только если в аниме это фича, то тут это баг.
Раз уж нет аналога на русском, почему бы не использовать dithering не пытаясь его транслитерировать?
Да если бы его и не было, стоило бы вписать.

Если игрок не движется, а только вращает камерой, то можно было бы просто отрендерить один раз сферическую панораму, а потом просто двигать окно по ней. Или я что-то упустил?

По-моему, дизеринг и близко не подходит для имитации иллюстраций из старых книг. Если я правильно понял, имелось в виду нечто вроде:
image
Там совершенно другой тип искажения. С дизерингом ничего общего не имеет.
Это гравюра. Её автоматом пока делать никто не умеет.
Есть только полуручной инструмент Strokes Maker, который плотность штриха уменьшает/увеличивает относительно яркости подложки. И то большое достижение.
Не соглашусь, вообще, то о чём говориться в статье, больше походит на элементарную пастеризацию, то есть уменьшение цветов, при этом её можно сдлеать чанками и вместо оттенков применять шаблоны разреженных точек (нечто вроде jpeg), при этом разрешение катастрофически падает. А под дизерингом всегда понимался алгоритм, переноса ошибки (в процессе пастеризации) на соседние пиксели. Так вот, переносить ошибку можно только на чётные/нечётные строки, что даст эффект полосатости, как черезстрочная развёртка телевизора. Вроде бы, этот эффект можно было наблюдать в формате видео под DOS smk с маленькой палитрой, который позже стал bik но уже полноцветный. А автору, я думаю, подошла бы элементарная заливка поверхностей по патерну, без учёта глубины, о чём он, в общем-то упоминает:

Sentinel ZX Spectrum



Не навязываю своё мнение.

Постеризация, от слова "постер", т.е. плакат. Пастеризация — это процесс обеззараживания пищевых продуктов, названный в честь Луи Пастера.

Примеры в интернете найти тяжело, но выглядело это вроде такого:
неудачный пример, просто что бы было понятно как это выглядело
типа черезстрочный дизеринг
типа черезстрочный дизеринг

чанки
чанки
А может быть имелся в виду en.wikipedia.org/wiki/Stippling
Хотя, если бы автор не фокусировался так на дизеринге и low-res, а именно пытался сделать хороший стиплинг, то результат мог бы быть лучше.

Какие-то работы по теме: www.computer.org/csdl/mags/cg/2003/04/mcg2003040062.html — 2003, real time 3d, не знаю, есть ли что-то такое в открытом доступе и с примерами — просто первое что в гугле попалось.
community.wolfram.com/groups/-/m/t/759091 — алгоритм для статической картинки.
По поводу гравюр уже написали выше, хочу добавить чуть-чуть, как интересующийся рисованием.

Правила рисования:
1. Штрих по форме. Внезапно, 3D модели знают свою форму, так что мы можем для любого ракурса реконструировать штрих по форме.
2. Линия должна быть живой — её толщина должна показывать «энергичность» движения в данном месте. «Движение» в рисовании — направление изгиба основной оси объекта, игнорируя мелкие детали. В первом приближении — изгиб центра симметрии. Чем сильнее изгиб, тем больше движение. Энергичность движения — его значимость для зрителя (художника). Машинно определить это сложно, но довольно просто разметить на 3D-модели.
3. Штрихи могут менять яркость (нажим), толщину, расстояние между ними, количество слоёв (в контексте гравюры — не больше двух).
4. Если у художника mad skill, то он может использовать штрихи для передачи характерных элементов текстуры (волос, ткани, волокон дерева).
5. При переломе формы лучше менять направление штриха. Перелом формы — это место, где резко уменьшается радиус кривизны. Вычисляется на 3д-модели в пол-пинка.

Это всё вполне в рамках машины. Даже если пренебречь «энергичностью» движения, всё остальное вычисляется. Неужели никто не пробовал?
НЛО прилетело и опубликовало эту надпись здесь
Я быстро набросал с вакомом (я им хуже владею, чем карандашом). Слева — штрих без формы, в центре — по форме, справа — рисунок по форме.


(https://snag.gy/wMZpXL.jpg)

Показать вопросы с движением и т.д. будет много сложнее, т.к. это уже потребует настоящего рисунка.
НЛО прилетело и опубликовало эту надпись здесь
А, движение — это сложно.

Олег хорошо объясняет. Это видео и остальные смежные:

www.youtube.com/watch?v=BRW9rUTnSa8
На эту тему есть несколько диссертаций, но результаты очень убогие.
то есть вы хотите сказать, что если сделать что-то такое — это будет новое и неизведанное, а не изобретение велосипеда?
Будет новое и неизведанное. Пока никто ничего толкового не сделал по этой теме.
Самое первое приближение из коммерческих 3D рендеров это Modo NPR Kit.
Скорее всего будет и то и другое. То есть с одной стороны вы сможете опубликоваться в престижном журнале, с другой стороны — через NNN лет обнаржится что кто-то эту проблему уже давно решил в какой-нибудь трешовой игре. Как в XKCD.
Это вряд-ли.
Дело в том, что проблема гравюрного NPR и правильной штриховки лежит рядышком с честным рейтрейсом поверхностей (без триангуляции). Ни в каких трешовых играх это не применяется.

А с анимацией всё будет значительно хуже — будет конкретное мельтешение штриховки, мельтешение дизеринга и мельтешение вообще всего вокруг.
Ещё вот такую штуку нашел
Хм… Этой не видел… Хотя, вроде 2001 год, а я бросил этим заниматься в районе 2004.
А вторая — забавная штукенция.

Вообще, статья рассматривает только стабильность паттерна.
Даже если у вас будет какойнибудь способ генерироовать гравюры на основании сцены, кадры не будут волшебным образом связаны друг с другом. Ведь придется на каком-то основании выбрать какие пиксели будут штрихами, а какие — фоном, когда выбор равнозначен. Так в одном кадре стул будет раскрашен в черно-белую полоску, а в следущем в бело-черную, всё будет нещадно мерцать.
Для того чтобы избежать этого, должна быть некая текстура — паттерн с опорными точками, который хорошо бы двигать от кадра к кадру совместно с объектами сцены.
Вам не придётся выкинуть эту часть, если вы выберите (реализуете) более умный и красивый метод дизеринга.

Почему не пробовали? 2001 год вроде бы.
Ну и ещё куча примеров по запросам типа «real-time hatching shader»
Божественно. Это как раз то, про что я говорил. Дальше вопрос только файнтюнинга, а принцип — именно он.
Хотелось бы попробовать поиграть например в третьего ведьмака с таким эффектом как на образце А
Еще бы кода автор занес бы…

Там, по ссылке на оригинал статьи, можно найти и остальные статьи о напилинге игры. Из них следует что одного кода было недостаточно для достижения этого обалденного эффекта. Там ещё изрядно дизайна уровней — светильники слои сцены и всё такое. Впрочем можно код из демки наковырять. Оно же C# и Unity. Ну, или автору написать, ежели языками иноземными владеешь.

А разве из юнити можно достать код?
[злобно ухмыляется] ото-ж. Но лучше всё-таки с автором пообщаться. Мало ли чего он за это время ещё напридумывал в области NPR?
А чем достать код? Мне не в данном конкретном случае )
Мнда… Движущийся паттерн убивает всю идею дизеринга как ретроизврата. При статичном паттерне мельтешение пикселей происходит потому, что синий шум — это хлам. Оттенок изменился незначительно, а паттерн — до мерцания. Целлшейдинг врежьте в середину, чтоли — сразу поприятнее станет.
напомнило игры времен ZX Spectrum
Этой статье не помешали бы ссылки на собственно проект или ютубчик.
Например https://youtu.be/ElrXAHogqBM
Впрочем, как и комментаторам навык беглого гугления по картинке хотя-бы.
Игра шикарная получилась — 3d c эффектом книжной иллюстрации. Спасибо переводчику!
Возможно проблема в том что человеческий глаз резко реагирует на искажение горизонтальных линий между кадрами (прямая линия при повороте камеры становиться ступенчатой), если уменьшить ступенчатость при смене кадров возможно станет лучше. Гравюры делались на основе оттисков, в которых иглой соскребалось наиболее тёмная часть, так что реализовать алгоритм тоже можно, сложность только в том, что каждый художник использовал свой стиль.
Мне оригинал все-таки больше нравится, но учитывая цели, которые разработчик ставил, результат конечно отличный.
Эстетически, первый вариант выглядит лучше, на мой взгляд. Статичная, по отношению к зрителю, «сетка» дизеринга — это, на мой взгляд, то, что ожидает сознание от такого рода картинки. В этом смысле, первый вариант выигрышнее, как мне видится.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории