2010-10-11 2 views
1

Я работаю над приложением, которое будет работать на разных экранах размеров, и мне нужно создать текстуру (например, пергаментную бумагу), которая будет заполняться по всему доступному пространству экрана.Текстурирование черепицы - избегая облицовки плиткой?

Очень простой подход состоит в том, чтобы включить небольшое растровое изображение (256 x 256?) Образца текстуры и повторить его по всей доступной области, но это в конечном итоге выглядит черепицей и довольно разочаровывает.

Существуют ли какие-либо методы для генерации больших черепичных областей текстуры, которые не выглядят ... черепичными?

Благодаря

ответ

0

Я не пробовал использовать их, но я был впечатлен что некоторые люди сделали с процедурных текстур.

+1

+1 для интересной идеи. Однако, вероятно, это будет слишком сложно/отнимать много времени для реализации OP, учитывая, что их фоновое изображение не похоже на то, что оно должно быть очень примечательным. – AndyG

0

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

Есть несколько хороших образцов вещей онлайн (бесплатно, тоже!), Которые вы можете просмотреть, если вам не хватает художественного таланта, чтобы вытащить что-то подобное.

Другим подходом было бы просто использовать высокоуровневую версию вашего изображения и «растянуть» ее, чтобы она соответствовала экрану. Чем выше разрешение, тем меньше пикселизации вы получите по мере растяжения изображения. (или попытайтесь что-то похожее на mip-mapping, где вы храните несколько разных версий разрешения изображения, а затем выберите лучший вариант на основе размера экрана.)

+0

Я использовал эти методы около ~ 2003 года, задавался вопросом, есть ли какой-либо новый и лучший способ сделать это. Как вы думаете, я мог бы включить что-то вроде Perlin Noise, чтобы получить более естественный вид? Несмотря на то, что бесшовные плитки могут работать, они иногда могут быть обнаружены глазом и заставляют меня грустить. Спасибо – user291701

+0

Некоторые действительно крутые вещи были сделаны с процедурным текстурированием, как вы упомянули, так что да, если вы сможете привлечь его больше энергии для вас! – AndyG

+0

Шум - это ключ, даже при обработке. Пример можно найти в http://picasaweb.google.ca/lh/photo/-innn03C2GuYg0l_AVylX3AtOST9xMzFvd58vLZYzA4?feat=directlink, который является естественным, нейтральным (т. Е. Вы можете его погладить по мере необходимости) и достаточно шумным, чтобы заметные повторы не должны появляются. –

0

Вот рецепт, который я разработал для создания случайных текстур, подходящих для чередования (то есть периодических) в редакторе изображений (Photoshop, Paint.net, GIMP).

Некоторые образцы here - Я сделал все это после этой процедуры, без какого-либо другого редактирования изображений.

Предположим, вы хотите сделать изображение 256x256.

  1. Начать с чистого 256x256 изображения
  2. Добавить случайный шум.
  3. Увеличьте холст, добавив кэш в 256 пикселей в каждом направлении. Теперь у вас есть 768x768 изображение
  4. Скопируйте центр 256x256 изображение восьми окружающих квадратов (этот шаг является наиболее cumbersone, и должно быть сделано именно - вы можете автоматизировать, например, в Paint.NET)
  5. Сделайте некоторые локальные преобразования СИ (объясненные ниже) на полном изображении.
  6. Если не очень, GOTO 5
  7. Обрезать изображение, 256 пикселей на каждое поле. Результат: мозаичное изображение 256x256.

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

  • Любые регулировки цвета (яркость, контрастность, оттенок, насыщенность, кривые уровней, выравнивание, постеризация).
  • Стандартные фильтры с низкой частотой или высокой частотой, заточки и размытия, срединные фильтры.
  • Местные эффекты: обнаружение края, рельеф, рельеф

Это не включает «глобальные» эффекты (текстуры рендеринга, пространственные искажения)

Рецепта может быть применен к различным слоям, которые могут быть объединены в любом «режиме».

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

Это довольно забавно, и некоторые интересные текстуры можно сделать, просто пытаясь и играя с эффектами и слоями.

Смежные вопросы