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

«Охота на тайл» — тайлящаяся текстура за 5 минут на базе фотографии (цикл: Работа с текстурами и изображениями)

Время на прочтение8 мин
Количество просмотров44K
Всего голосов 107: ↑95 и ↓12+83
Комментарии62

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

НЛО прилетело и опубликовало эту надпись здесь
Да-да (улыбнулся). Я уже поправил. И вам тоже спасибо. Там ниже в комментариях еще один вопрос.
Вопрос к хабрчанам. Если я, к примеру, презагружаю изображения в статье и меняю их на новые, те старые чистятся с Хабра? Тут как верно подметил Mercury13, вместо Patch я написал Path. И если в текстах я ошибку исправил, то на изображениях эта проблема осталась.
Вы переливаете другие изображения на хабрасторейдж, меняете ссылки в статье и все. Статья больше понятия не имеет о старых картинках.

Автоматом ничего не заменится, если вы об этом.
Я немного не об этом. Просто подумал, что кто-то заливает сотни и тысячи изображений в день. Есть ли фильтр который отсеивает и уничтожает старые не используемые картинки. Т.е. я мыслил с точки зрения засорения ненужным мусором хранилища Хабра.
Вроде как нет. Думаю, при текущих ценах на харды — это не очень актуально. Да и работа адская.
Думаю, это решают стандартным для файловых хостингов методом — если картинку год (например) не запрашивали, то ее страют.
Помимо того что тайл — это плиточная или «кафельная» структура состоящая из повторяющихся фрагментов изображения тайлом же называют швы между текстурой. «Мне не нравится явный тайл» — фраза говорящая о возникновении хорошо читающегося периодического рисунка. Говоря кратко и понятно — «то чертово пятно видно повсюду, когда ты его, наконец, уберешь?».
Не согласен. Тайлом никогда не называют сами швы. А в приведенном вами примере имеется в виду «мне не нравится явная периодичность рисунка». Так же «тайл заметен» следует читать как «заметна периодичность», а совсем не обязательно, что швы.
Вы забываете, что даже в рамках одной конторы возможна разная терминология. Не говоря уже о разных конторах. В индустрии нет единых стандартов описывающих те или иные вещи. Этому до сих пор практически не учат, за редким исключением. Тайл сам по себе есть элемент из которого собирается множество, но многие при этом говоря я вижу тайл — говорят о возникновении периодичного рисунка. Который заметен. Который выдают наличие тайла в массиве. Я был работал в изрядном количестве контор и с еще большым количеством людей, чтобы убедиться в одном — единых стандартов нет.

К примеру сегодня утром я услышал формулировку «солидный интерфейс». Впервые в жизни. За 12 с лишним лет в индустрии я не слышал ничего подобного. Что я услышу завтра? И разве дает мне это право безапелляционно говорить о чем-то «никогда». Есть хорошая фраза — никогда не говори никогда.
Так о том и речь. Когда говорят «вижу тайл» — значит «вижу периодичность». Но вот швы тайлом никогда не слышал, чтобы называли.
Надо бы поправить.
Вообще — имхо, это плохой туториал. Потому что слишком подробный. Иногда излишнее разжовывание приводит только к разрастанию текста, но вообще не нужно. Более того — есть такой эффект, что когда начинаешь объяснять как выполнить какое-то примитивное действие на нескольких абзацах, у читателя может сложиться впечатление, что действие это очень сложное. Простыни текста на скринах тоже — мало того, что выглядят пугающе, так еще и либо не читаются, либо читаются с большим трудом (в т.ч. из-за неудачных пропорций шрифта, вытянутого по вертикали)
Вы знаете… я вообще словоохотлив. И те кто со мной работали эту особенность отмечали. Заказчиков она вообще пугала до одури, каждый второй думал что я обычный сетевой болтун. Но у меня есть привычка подтверждать свою болтовню делом. По крайней мере часть ее. Если из 100 человек урок покажется полезен хотя бы одному — я буду счастлив. Даже из тысячи. Тот кому надо — увидит в нем соль. Тот кому это не надо — не увидит даже если этим мешком с солью шарахнуть хорошенько.

Главное чтобы он помог. А охватить чем-либо всех — невозможно. Ровно как и осчастливить, тем более против желания, — как говаривал небезызвестный Костик из «Покровских Ворот».
Просто имхо — охват был бы больше, если бы вы не пугали новичков стеной текста там, где можно обойтись 1 предложением ;)
Возможно. Только выражение «Краткость — Сестра таланта» — не обо мне. Один из моих недостатков, я полагаю. Далеко не самый страшный. )
Согласен с вами, тема интересная, но излишняя подробность и тонны воды делают чтение страшной мукой.
Т.е. вас не смутило бы теоретическое описание без конкретных привязок к пакету? Т.е. вас не смутила бы по сути теоретическая статья вместо прикладной?

Надо будет сделать голосование для сбора статистики.
Зато этот туториал легко переносится на другие графические редакторы. А если сократить его фотошоповой терминологией до двух строчек, то это станет туториал по фотошопу.
Можно и так. Но единого туториала, который бы удовлетворил всех быть не может.
Про оффсет в данном ключе спасибо, я как то его руками делал, очень много операций
Но вот разделы «Нормализация текстуры» и «Первые швы» я еле осилил, я перечитал их несколько раз и только сейчас я понимаю, что скорее всего вы сначала несколько раз скопировали кусок текстуры, а затем замазали получившиеся швы. Не очень понятно для чего копировали, ведь можно было просто вырезать кусок земли из оригинала и сразу к нему применить оффсет.
Кстати, да. Я тоже несколько раз перечитал. Понял только по тому, что знал, что там по логике надо сделать. Если бы читал это без знаний, именно как туториал — не уверен, что догадался бы…
Я уже ответил ниже об итерациях процесса.
Итерационность процесса. Сначала нужно было в местах где есть прозрачность и нет текстуры — перенести ее туда. Потом итерация — починить поломанное при переносе. Потом уже оффсет к глобальному изображению.

Сначала я воспользовался Patch чтобы устранить швы, после переноса фрагмента изображение на то место где его вообще не было, потом сделал оффсет и поработал с уже имевшимися швами по бокам. Если бы оффсет был сделан изначально то на бортах текстуры (уже под оффсетом) были бы дыры. Так что я не очень понимаю что вы имеете в виду.
Я имею ввиду, что можно не возится с дырами в оригинале, а просто вырезать квадрат только земли и к нему уже применить оффсет.
Можно. Вполне. Но какие-либо уроки, на мой взгляд, должны максимально описать дискомфортные ситуации с которыми быть может придется столкнуться. И показать, что есть не одно решение, а несколько. Так чтобы при отсутствии GIMP и волшебного фильтра человек смог добиться необходимого результата. Так чтобы из урока было почерпнуто что-то еще помимо какого-либо фильтра. Ход мысли, вариативность решений.
Пока вы будете читать, я уже давно все сделаю.

Новая видовременная форма русского глагола? )
Даже не буду комментировать и оправдываться. И на будущее зарекусь дописывать что-либо на исходе дня. Спасибо за правку.
Это здорово, что есть такие программы. Вообще многообразие программ. Есть и такие которые в один клик из текстуры тайл сделают. Но мне они, к сожалению, не известны.
Хм, а куда надо кликнуть, чтобы он такую текстуру сделал?
фильтры\карта\без швов
А если фотография изначально нуждается в пост-обработке? Где-то небо (как в примере), где-то периодический рисунок вызванный элементом. GIMP тоже сам это в один клик уберет, или все-таки придется поработать руками?
Да. Для автоматической обработки — определенно хороший результат.
Ух ты, здорово. Прямо магия :)
Я всё время пользовался инструментом Clone Stamp при подготовке текстур.
Мне кажется это намного удобнее и быстрее чем выделять и перемещать куски. Любые огрехи зарисовываются за секунды.
Забавно FreeS. Забавно. И вы знаете почему? Ряд людей упрекнул меня в излишней подробности. А у меня была мысль рассказать о том почему лучше именно перемешать куски а не все проходить «штампом». Этот прием, кстати, я увидел у одного ныне, увы, покойного художника. Мишки Сабурова. Потрясающий человек, всего несколько советов которого мне позволили улучшить мою «картинку» на порядки.
Я бы с радостью почитал причину такого выбора, т.к. на мой взгляд оба метода делают одно и то же, переносят одну часть текстуры на другую, но со штампом это сделать гораздо быстрее и, как бы это сказать, гибче.
Выделением удобно переносить очень большие участки текстуры, а потом тем же штампом пройтись по швам.
Ясно. Я попробую воткнуть этот фрагмент в следующую статью о тайлах. Нужно только подумать как это сделать так чтобы упоминание было в контексте.
Очень вас прошу, в следующий раз иллюстрации пережимайте в JPEG.
До того как ответить хочу узнать — почему?
Это уважение к тем вашим читателям, которые не имеют многомегабитных безлимитных каналов.

Во-вторую очередь, это уменьшает бессмысленную трату ресурсов. Мне кажется, вам как разработчику и как ценителю старых игр и консолей это должно быть понятно. Когда я вижу код программиста, забивающего на оптимизацию по соображениям «память больше не ресурс» и «мегагерцев теперь всем хватает», у меня возникает примерно такое же чувство, как когда я вижу на сйтах картинки типа текстур в PNG.

P.S. Хорошим тоном считаются png версии по ссылкам.
Посыл понял.

Объясню почему я делаю это так, а не иначе. При использовании jpg теряется тоно-передача, даже при максимальном уровне сжатия, как программист художника вы должны меня понять, мы в этом деле… словно больные. В туториале где вес идет на «микро-пиксели» и где нужно показать микроскопические изменения даже в цвето-передаче лучше использовать форматы не имеющие сжатия. Я предполагаю также, что это еще одна болезнь (может быть и такое) художников, которым кажется что это донесет материал более полно. И даже могу предположить что никто из зрителей этого не заметил. Однако…

… повторюсь, ваш посыл был услышан. Мне казалось что наступила эра высокоскоростного и безлимитного интернета. И в определенное время я просто перестал следовать стандартам экономии. В своей следующей статье, и других подобных статьях я постараюсь удовлетворить вашу просьбу и буду надеться что это не приведет к комментариям что со ссылками под изображением материал стало трудно читать.

P.S.
«Негодяям» наставшим минусы этому человеку должно быть стыдно (смеется). Ведь со своей точки зрения он говорит дело, а мы не имеем права говорить ему «подключи нормальный интернет», т.к. нам не известны причины его остутствия. Это как с игроками, если можно удовлетворить кого-то малой кровью, почему бы это не сделать? Ну потратиться на каждую статью на 20 минут больше времени, на дубликаты файлов и на прописывание ссылок.
Мне казалось что наступила эра высокоскоростного и безлимитного интернета.

Далеко не везде. Собственно, такой интернет в России только в мегаполисах.
Были неправы, были одернуты, и обязательно исправимся. :)
При использовании jpg теряется тоно-передача, даже при максимальном уровне сжатия
С чего это вдруг?
Что именно вы хотите услышать в ответ?
Ну что-нибудь вроде «хаха, да, действительно я какой-то бред написал»
Под максимальным уровнем сжатия я имел максимальное значение 12, которое можно выставить при сохранении файла. Вы очень убедительно подчеркнули мою стилистическую ошибку, и тот факт что нужно было написать минимальном уровне сжатия. С этим словом выражение приобретает смысл. Вы об этой ошибке говорите?
На самом деле нет.
12 — это вы об алгоритме в Save As..., его вообще не имеет смысла использовать никогда, кроме как случаев, когда необходимо, чтобы в файле сохранился Exif. Иначе используется save for web, позволяющий задать степень сжатия от 0 до 100 и сразу увидеть превью.
Единственная истуация, когда при сохранении в жпег может изменится тон изображения — если у вас проблемы с настройкой цветовых профилей и цветовой профиль в ФШ не совпадает с цветовым профилем системы.
Почему полиграфии используют форматы без сжатия: ну может потому что есть много идиотов, сохраняющих CMYK в JPG, может потому что из JPG профили неудобно выковыривать: не знаю, и на самом деле мне неинтересно, потому что тут не о полиграфии речь.
Я привязался именно к этой фразе, «при использовании jpg теряется тоно-передача», потому что это не так.

Можно даже провести небольшой эксперимент: взять пнг-картинку, сохранить в жпг с 95% и сделать дифференс:
image

Если бы жпг хоть немного отличался по тону картинка выглядела бы иначе:
image
Почему полиграфии используют форматы без сжатия: ну может потому что есть много идиотов, сохраняющих CMYK в JPG, может потому что из JPG профили неудобно выковыривать: не знаю, и на самом деле мне неинтересно, потому что тут не о полиграфии речь.

Дело не совсем в идиотах. Вернее совсем не в них. Любой формат с сжатием «пожиратель» и «усреднитель». Save for web предлагает широчайший спектр механизмов усреднения. В большей степени они работают за счет ограниченной палитры. Именно поэтому он и называется «for web».

Полиграфия в данном (нашем) случае выбрана как отрасль которая работает с изображением. Там точное изображение крайне важно. Там ориентируются не на человеческий глаз, а на технику.

В полиграфии JPG не используется потому, что использует алгоритмы сжатия. Которые разрушают цвет, тон, микро-детали. В полиграфии используются «чистые» форматы. Человеческий глаз очень разный. Он индивидуален для каждого человека. Человек не варящийся в теме одинаково хорошо воспримет рисунок и в JPG и в TIF. Тот кто постоянно работает с изображением может это заметить. Точно также ювелир замечает проблемы с камнем, там где мы не видим ничего.
Ориентироваться на ваши глаза — я не могу. Скажу даже более, к примеру, в случае «кривого» монитора я также не могу ориентироваться на свои глаза, ни на ваши. Насчет монитора — просто пример. В различии наших зрительных анализаторов (глаз). Если нужно достичь чистого результата используется калибровщик. Результат его работы может мне не понравится, но это не будет означать, что он «соврал».

Да и пример, в моем понимании, не очень хорош. Использовать любой «шум» (noise) в качестве примера… по меньшей мере странно.
Это не любой шум. Это ваша же картинка (вот эта habrastorage.org/storage2/a68/88d/0b2/a6888d0b29311135ee82bea215776266.png ), сохранённая в jpg, наложенаня в режиме difference на png. Получивлееся изображение показывается разницу, там где разницы нет — оно чёрное, где есть — белое. Шум — результат Levels с очень сильно задраной вверх левой стороной. Если просто пипеткой пройтись по чёрной картинке, смещение максимум будет на 1 оттенок из 255 — это значит разница си ни маль на. Ни о какой «потере тоно-передачи» речи не идёт.

Или вот тот же 95% jpg поверх png с отрезаной половиной: найдёте границу среза?
image

Или вот 70% jpg: найдёте границу?
image
Вы отдаете себе отчет что в качестве примера вы используете текстуру созданную на базе изображения вытянутого из фото с сильным сжатием? Что данная текстура уже прошла операцию сжатия на этапе исходника? Что в данной текстуре используется ограниченная палитра уже изначально? Что данная текстура была усреднена вторично, уже мною при создании текстуры?
Стоп-стоп. Так вас-то спросили про эти конкретные картинки в статье. И вы говорите «потеря тоно-передачи, предпочитаю png». И я именно эти же картинки привожу в пример. А теперь выясняется, что их в качестве примера нельзя использовать, потому что они уже были пожаты. Так зачем вы тогда в статье-то использовали png?
Если мои примеры вам не подходят, вас не затруднит собрать для меня пример, в котором 95-100% jpg теряет в тонах?
. Так вас-то спросили про эти конкретные картинки в статье. И вы говорите «потеря тоно-передачи, предпочитаю png».

Совершенно верно. Я предпочитаю PNG формат. Не могу и не хочу проверять перед публикацией каждую картинку чтобы выяснить «сожрал» JPG что-либо или нет, и по умолчанию использую PNG чтобы в случае чего этого не допустить.

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

Я говорил ранее:
В туториале где вес идет на «микро-пиксели» и где нужно показать микроскопические изменения даже в цвето-передаче лучше использовать форматы не имеющие сжатия. Я предполагаю также, что это еще одна болезнь (может быть и такое) художников, которым кажется что это донесет материал более полно. И даже могу предположить что никто из зрителей этого не заметил.

Эта фраза предусматривает некую предвзятость с моей стороны, и даже может-быть чрезмерную предосторожность. О которой я отдельно предупреждаю. Тем не менее зная, что JPG сжимает и искажает я в любом случае стараюсь использовать формат без сжатия. О чем тоже говорю. Также я утверждаю что JPG вносит изменение в картинку, в принципе.

Что именно вы хотите оспорить? Факт того, что JPG вносит свои «коррективы» в абстрактное изображение? Или что я не должен быть использовать PNG в данной публикации? Или что я должен был сказать, что да, JPG вносит коррективы в изображение, но в данной публикации он этого не может сделать потому, что я усреднил изображение, но я будучи верен своим принципам изложения графической информации в туториале, принял излишние предосторожности? Что конкретно вы хотите услышать?

Я говорю фразу, вы меня цитируете:

При использовании jpg теряется тоно-передача, даже при максимальном уровне сжатия

С чего это вдруг?


В этом определении и в такой трактовке видно, что речь идет о формате, который искажает графические данные. Вы высказываете сомнение. Я популярно объясняю свою точку зрения. Вы приводите мне в пример мои изображения. Я говорю что они уже усреднены. Вы говорите «э… так не пойдет», а я отвечаю «пойдет», потому что я заранее предупредил, что это моя излишняя предосторожность.

Все вышесказанное не отрицает того факта что JPG корежит изображения. В моем понимании вы просто «докопались» до меня. Это выглядит именно так. Какой вам в этом смысл? Не знаю.
Уличить меня в невежестве относительное моего высказывания о JPG не получиться. Потому, что так есть. Он не используется там где нужна тонопередача, цветопередача, и сохранение исходной детализации. Не является форматом который используется там где нужна точность в передаче изображения. Таким образом я могу его использовать в туториалах, и даже буду это делать — не проверяя изображения. И так делается большое количество работы, которое я бы не хотел увеличивать чтобы еще один человек не смог до меня докопаться. ;)



А вот и ваш пример. На мой взгляд проблема обозначена достаточно хорошо. Это фрагмент плаката в JPG и PNG. Я предупреждал, о некоей сумасшедшинке со стороны художников насчет тонопередачи и цветопередачи. Это ее хороший пример. В качественную полиграфию такой постер не пойдет. Но далеко не каждый заметит разницу. И это не отрицает того факта что JPG тут поработал. PNG шел без сжатия, JPG с минимальным сжатием, т.е. тот максмум что формат может «спасти». Я таки потратил свое время на эту очевидность. Вам стало легче?
Могу чуть более развёрнуто: потому что если взять пнг и жпеги 90-100%, положить их дифференсом на png, то нужно будет довольно долго крутить левелы, чтобы этот самый дифференс начал появляться. И шум будет однородный, никаких потерь тона.
По этому комментарию я вижу, что вы имели в виду даже не мою стилистическую ошибку, а нечто большее. Давайте я задам вам вопрос. Почему полиграфия использует форматы без алгоритмов сжатия?
Смахнул скупую мужскую слезу. Подобная технология была описана в книге Секреты программирования игр (95 год). Конечно, ни о каком фотошопе и Path tool там и речи не было, все ручками :)
— Помню-помню, — закуривая папироску и подсаживаясь на скамейку, произнес он. — Если бы я стал описывать все способы через которые нам пришлось пройти это был бы настоящий археологический экскурс. Одно время текстуры со швами были бичом. И там где запад уже справился мы только начинали изобретать кустарные приемы софта не ведая. Помню как один раз было извлечено на божий свет гениальное решение — не делать объекты на которых могут быть видны швы. Т.е. не делать людей, а делать роботов. Чего только не придумывали.
Чуть грустно становится при осознании того что то на что ты мог потратить день, сейчас, к примеру, делается за час. И временные разрывы могут быть даже большими. Грустно конечно не от того, что это старческое брюзжание. Но из-за того что тогда ты «заплатил» днем жизни за то, что сегодня «стоит» час. Прогресс. Мужик валивший лес топором небось тоже огорчился бы посмотрев на бензопилу в действии.
>Все в этом мире состоит из мелочей

Когда дошел своими мозгами до этого то сразу стал большего добиваться. Во всём.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории