Анизометрический синтез текстуры

Иллюстрации

Показать все

Изобретение относится к синтезу текстуры, включающему автоматической формирование больших текстур из маленького примерного изображения. Технический результат заключается в расширении функциональных возможностей за счет представления нескольких версий образца при множестве изменения ориентации и масштабов. В системе и способе формируют анизометрическую текстуру, имеющую аналогичный заданному образцу внешний вид, но с измененным ориентацией и масштабом. Это изменение достигается посредством модификации процессов повышения дискретизации и коррекции для способа синтеза текстуры, используя область якобиана. Модифицированный процесс коррекции включает в себя обращение только к непосредственным соседним пикселям вместо нелокальных пикселей. Ограничение при использовании только непосредственных соседей позволяет сформировать гладкие анизометрические поверхностные текстуры. При этом используют карты косвенности, содержащие указатели косвенности, которые используют, чтобы перейти от набора пикселей вне границы части в атласе текстуры к другой части. Система и способ также обеспечивают увеличение четкости изображения при анизометрическом синтезе с использованием области якобиана. 8 з.п. ф-лы, 12 ил.

Реферат

Синтез текстуры включает в себя автоматическое формирование больших текстур из маленького примерного изображения (известного как эталон или образец текстуры). Этот основанный на образце текстуры синтез берет образец и генерирует дополнительный контент на основании этого образца, чтобы создать намного больше контента, чем содержится в образце. Основанный на образце синтез текстуры облегчает необходимость хранить в явном виде полный объем контента. Вместо этого контент формируется "на лету" из намного меньшего образца.

Традиционно, основанный на образце синтез текстуры включает в себя процесс коррекции, который сравнивает набор соседей каждого синтезируемого пикселя с наборами соседей образца. Синтезируемые пиксели затем модифицируются, чтобы повторно создать синтезируемые наборы соседей, которые являются совместимыми с контентом образца. Для каждого пикселя находят набор соседей с наилучшим совпадением и затем текущий пиксель заменяют наилучшим образом совпадающим пикселем. Наилучшим образом совпадающий набор соседей определяют посредством сравнения цветов пикселя в маленькой сетке пикселей. Например, для каждого пикселя может быть исследован набор соседей (соседство) из 5×5 пикселей, и ошибка этого набора соседей есть сумма ошибок векторов красного, зеленого и синего (RGB) цвета отдельных пикселей в наборе соседей 5×5.

Синтез текстуры может быть изометрическим или анизометрическим (означает "не изометрический"). Изометрический синтез текстуры генерирует текстуру, имеющую один и тот же образец в одном и том же масштабе и при одной и той же ориентации. С другой стороны, анизометрический синтез текстуры допускает изменение в ориентации и локальном масштабировании особенностей в генерируемой текстуре.

В течение процесса коррекции набор соседей собирается во в настоящее время синтезируемую текстуру и сравнивается с наборами соседей образца. Чтобы выполнить анизометрический синтез, современные способы "деформируют" (искажают) собранный набор соседей. Обратный якобиан есть преобразование, применяемое к координатам набора соседей перед выборкой их цвета. Обратный якобиан есть матрица 2×2, которая преобразовывает набор соседей пикселя, используя афинное преобразование. В частности, при заданной области якобиана набор соседей пикселя преобразуется обратным якобианом. Чтобы компенсировать обратный якобиан, изменяют ориентацию и масштаб набора соседей пикселя. Это означает, что вместо извлечения цветов в первоначальных точках набора соседей цвета извлекаются при новом наборе преобразованных точек набора соседей из-за новой ориентации и масштабирования.

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

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

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

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

Сущность изобретения

Этот раздел обеспечивается, чтобы представить выбор концепций в упрощенной форме, которые далее описаны ниже в Подробном описании. Этот раздел не предназначен, чтобы идентифицировать ключевые особенности или существенные признаки заявленного объекта изобретения, и при этом не предназначен для использования в качестве ограничения объема заявленного объекта изобретения.

Система и способ анизометрического синтеза текстуры, раскрытые в настоящем описании, включают в себя несколько способов, которые допускают формирование высококачественной анизометрической текстуры с высокой эффективностью и минимумом накладных расходов. В целом система и способ анизометрического синтеза текстуры синтезируют новые текстуры с тем же самым визуальным внешним видом, что и заданное примерное изображение или образец, но имеющие отличные ориентацию и масштаб. Эта ориентация и масштаб диктуются областью якобиана. Якобиан есть матрица 2×2, которая представляет линейное преобразование в точке. Система и способ анизометрического синтеза текстуры могут использоваться для формирования синтезируемой текстуры в плоскости и на поверхности.

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

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

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

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

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

Система и способ анизометрического синтеза текстуры также включают в себя способ увеличения при анизометрическом синтезе. Увеличение при синтезе включает в себя использование синтезированных координат, чтобы получить версию с более высоким разрешением того же самого образца. Увеличение при синтезе может использоваться, чтобы скрыть неравномерности дискретизации, такие как искажение параметризации. Способ анизометрического синтеза текстуры модифицирует схему увеличения при синтезе для включения области якобиана. Этот якобиан используется для модификации этапа увеличения схемы увеличения при синтезе и принятия во внимание анизометрии.

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

Описание чертежей

Со ссылками на чертежи, на чертежах аналогичные ссылочные позиции представляют соответствующие части на всех чертежах:

Фиг.1 - блок-схема, иллюстрирующая примерное выполнение системы анизометрического синтеза текстуры, раскрытой в настоящем описании.

Фиг.2 - блок-схема последовательности операций, иллюстрирующая в общем работу системы анизометрического синтеза текстуры, показанной на фиг.1.

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

Фиг.4 иллюстрирует соответствующие текстурные изображения (или синтезируемые цветные изображения) индексных карт, показанных на фиг.3.

Фиг.5 - блок-схема, иллюстрирующая пример специального случая процесса анизометрического синтеза текстуры, показанного на фиг.3 и 4.

Фиг.6 иллюстрирует пример первого результата процесса анизометрического синтеза текстуры, раскрытого в настоящем описании.

Фиг.7 иллюстрирует пример второго результата процесса анизометрического синтеза текстуры, раскрытого в настоящем описании.

Фиг.8 иллюстрирует вывод области якобиана для приложения поверхностной текстуры.

Фиг.9 иллюстрирует пример результата, использующего способ анизометрического синтеза текстуры для выполнения синтеза текстуры поверхности.

Фиг.10 - иллюстрация, показывающая множественные уровни пирамиды синтеза с множеством значений разрешения.

Фиг.11 иллюстрирует пример схемы увеличения при анизометрическом синтезе.

Фиг.12 иллюстрирует пример подходящей среды вычислительной системы, в которой система и способ анизометрического синтеза текстуры могут быть реализованы.

Подробное описание

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

I. Обзор системы

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

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

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

Как показано на фиг.1, вычислительное устройство 110 содержит ЦП (ЦП) 120 и память 130 ЦП. ЦП 120 находится в связи с видеоинтерфейсом 140 через шину 150 ускоренной передачи. В качестве примера, а не ограничения, эта шина 150 может быть ускоренным графическим портом (AGP) или PCI Express, которые предназначены, в частности, для удовлетворения требованиям производительности трехмерной (3D) графики.

Видеоинтерфейс 140 включает в себя графический процессор (GPU) 160 и память 170 GPU. GPU 160 предназначен, чтобы ускорить отображение трехмерной графики в реальном масштабе времени. GPU 160 способен передавать данные к ЦП 120 по шине 150. Система 100 анизометрического синтеза текстуры также соединена с GPU 160 и памятью 170 GPU. Система 100 анизометрического синтеза текстуры показана на фиг.1 пунктирными линиями. В варианте выполнения, показанном на фиг.1, система 100 включает в себя программный код 180 системы анизометрического синтеза текстуры, находящийся на GPU 160, и данные анизометрического синтеза текстуры 190, находящиеся в памяти 170 GPU.

II. Краткий обзор работы

Фиг.2 - блок-схема последовательности операций, иллюстрирующая общую работу системы 100 анизометрического синтеза текстуры, показанной на фиг.1. В общем, способ анизометрического синтеза текстуры использует непосредственно соседние пиксели и область якобиана, чтобы сформировать анизометрические синтезируемые текстуры из изображения образца. Способ анизометрического синтеза текстуры может использоваться, чтобы сформировать 2В текстуры как на плоскости, так и на поверхности.

Более конкретно, способ анизометрического синтеза текстуры инициализируется вводом изображения инициализации (этап 200). Это изображение инициализации содержит координаты синтеза. Оно является результатом синтеза уровня с предыдущим разрешением или самого грубого уровня в подходе с множеством значений разрешения, который обычно содержит только нули. Изображение инициализации находится на предыдущем уровне разрешения, или самом грубом уровне разрешения в подходе с множеством значений разрешения.

Область якобиана также вводится (этап 205). Область якобиана может использоваться, чтобы изменить ориентацию и масштаб изображения. Якобиан, который типично представлен нотацией J, является матрицей 2×2, содержащей два вектора. Эти два вектора диктуют, как векторы входной текстуры должны быть отображены в изображение. Область якобиана записывает (регистрирует) производную информацию относительно того, как первоначальная область (которой в этом случае является текстура) должна быть определена, когда она создается поверх изображения.

Итеративный процесс начинается посредством повышения дискретизации (количества выборок) пиксельных координат изображения на предыдущем уровне разрешения (этап 210). На первой итерации изображение, для которого увеличивают дискретизацию, является изображением инициализации. При последующих итерациях изображение, для которого увеличивают дискретизацию, является выходом от предыдущей итерации. Увеличение дискретизации генерирует текущий уровень разрешения, имеющий более мелкий уровень разрешения, чем предыдущий уровень разрешения. Другими словами, в пирамиде "от грубого к мелкому", используемой в подходе с множеством значений разрешения, уровни разрешения становятся прогрессивно более мелкими на последовательных итерациях.

Затем выбирают пиксель для обработки и обращаются к непосредственным соседям обрабатываемого пикселя (этап 215). Затем координаты синтезируемых пикселей, сохраненные в непосредственных соседях пикселя, преобразуют, используя область якобиана (этап 220). Преобразование означает, что ориентация и масштаб изменяются, как задано областью якобиана.

Как только преобразованные координаты непосредственных соседей были использованы для предсказания набора кандидатов для текущего пикселя, формируется новый набор соседей, и применяется стандартный процесс коррекции синтеза текстуры (этап 225). Образец вводится для этого процесса коррекции (этап 230). Этот процесс коррекции включает в себя сравнение наборов соседей кандидатов с наборами соседей, вычисленными для текущего пикселя. Следует заметить, что все эти наборы соседей находятся в неискаженном пространстве образца.

Результатом каждой итерации является синтезированное изображение, чьи пиксели содержат пиксельные координаты образца при текущем уровне разрешения (этап 240). Затем выполняется определение относительно того, является ли текущее разрешение самым мелким (и, таким образом, окончательным) уровнем разрешения (этап 245). Если текущий уровень разрешения не является самым мелким уровнем разрешения, то выполняется другая итерация. В этом случае текущий уровень разрешения становится предыдущим уровнем разрешения. Это означает, что синтезируемые пиксельные координаты на текущем уровне разрешения теперь обозначаются как синтезированные пиксельные координаты на уровне с предыдущим разрешением (этап 250). Итерация затем продолжается, как описано выше, пока самый мелкий уровень разрешения не будет достигнут (этап 255).

Если текущий уровень разрешения является самым мелким уровнем разрешения, то синтезируемые пиксельные координаты рассматриваются как полученные (этап 260). Эти синтезируемые пиксельные координаты могут быть обработаны другими приложениями, или может быть сгенерирована соответствующая анизометрическая синтезируемая текстура. Чтобы сформировать такую анизометрическую синтезируемую текстуру, сначала координаты синтезируемого пикселя преобразуют в синтезируемые цвета посредством дискретизации образца (этап 265). Наконец, результирующим выходом этого процесса преобразования является анизометрически синтезируемая текстура (этап 270).

III. Подробности работы

Подробности способа анизометрического синтеза текстуры описаны ниже. Фиг.3 иллюстрирует пример изменения индексных карт для прогрессивного изменения уровней с более мелким разрешением специального случая способа анизометрического синтеза текстуры, показанного на фиг.2. Следует заметить, что индексная карта есть изображение координат синтезируемой текстуры. В частности, фиг.3 есть специальный случай анизометрического синтеза текстуры, где якобиан повсюду равен единичной матрице 2×2. Индексная карта есть изображение, чьи значения пикселей содержат координаты, ссылающиеся назад к области изображения-образца. Эти координаты могут быть визуализированы как цвета. Например, со ссылками на фиг.3, координаты (0,0) могут быть визуализированы как черный 301, координаты (1,0) как красный 302, координаты (0,1) как зеленый 303, координаты (1,1) как желтый 304 и интерполированные цвета повсюду между ними. Индексная карта - это цветная карта расположения пикселей, которая использует цвет для указания расположения цвета пикселей в образце. Кроме того, фиг.3 иллюстрирует уровни разрешения для примерной реализации, имеющей шесть уровней разрешения. Как показано длинной стрелкой 300, все более высокие уровни разрешения указывают все более мелкое разрешение.

Как показано на фиг.3, способ анизометрического синтеза текстуры начинается, используя изображение, содержащее нули (все черное изображение) 305 на уровне разрешения 0. Выполняется итерационный процесс согласно фиг.2, и результирующая первая индексная карта 310 получается на уровне разрешения 1. Следует заметить, что каждая маленькая стрелка между индексными картами указывает один итеративный процесс, как описано на фиг.2. Например, маленькая стрелка 315 между изображением, содержащим нули 305, и первой индексной картой 310 указывает, что был выполнен один итеративный процесс способа анизометрического синтеза текстуры.

На прогрессивно уровнях более мелкого разрешения итеративный процесс повторяют, чтобы получить дополнительные уровни разрешения и индексные карты. В частности, итерацию выполняют на уровне 1, чтобы сформировать вторую индексную карту 320 на уровне 2, другая итерация выполняется на уровне 2, чтобы сформировать третью индексную карту 325 на уровне 3, и другую итерацию выполняют на уровне 3, чтобы сформировать четвертую индексную карту 330 на уровне 4. Пятая индексная карта 335 на уровне 5, и шестая индексная карта 340 на уровне 6 формируются таким же образом.

Фиг.4 иллюстрирует соответствующие текстурные изображения (или синтезированные цветные изображения) индексных карт, показанных на фиг.3. Цвета текстурного изображения получены посредством обращения к цветам образца в координатах, указанных в синтезированной индексной карте. Первое текстурное изображение 400 соответствует первой индексной карте 310. Точно так же второе текстурное изображение 405 соответствует второй индексной карте 320, третье текстурное изображение 410 соответствует третьей индексной карте 325, четвертое текстурное изображение 415 соответствует четвертой индексной карте 330, пятое текстурное изображение 420 соответствует пятой индексной карте 335, и шестое текстурное изображение 425 (или заключительная синтезируемая текстура) соответствует шестой индексной карте 340.

Фиг.5 изображает блок-схему, иллюстрирующую пример процесса анизометрического синтеза текстуры, показанного на фиг.2, 3 и 4, идущий от предыдущего уровня разрешения (Уровень l-1) к текущему уровню разрешения (Уровень l) в подходе с множеством разрешений. Фиг.5 иллюстрирует два основных процесса, используемых на каждом уровне (и в каждой итерации) при подходе с множеством разрешений. Например, со ссылками на фиг.3, фиг.5 иллюстрирует то, что происходит при продвижении от первой индексной карты 310 ко второй индексной карте 320.

Первая индексная карта 500 показана математически членом Sl-1, где Sl-1 - результат синтезированных координат на уровне l-1 разрешения (или предыдущем уровне разрешения). Образец 510 показан математически членом Е[Sl-1], где Е[Sl-1] есть образец 510 как функция первой индексной карты 500 на уровне l-1 разрешения. Результат синтеза - это индексы, и член Е[Sl-1] представляет улучшение цвета в образце, E, при заданных координатах S. Таким образом, процесс синтеза формирует индексные карты, и они соответствуют цветам, Е[Sl-1]. Другими словами, S являются синтезируемыми индексными картами, и Е[Sl-1] - цветами, соответствующими этим индексам.

Как показано на фиг.5, на каждом уровне разрешения пиксельные координаты, представленные первой индексной картой 500, подвергают увеличению дискретизации, чтобы сформировать вторую индексную карту 520, представляющую пиксельные координаты с увеличенной дискретизацией. Это увеличение дискретизации изменяет уровень разрешения от уровня l-1 (предыдущий уровень разрешения) к уровню l (текущий уровень разрешения). Затем координаты с увеличенной дискретизацией корректируют, чтобы сформировать третью индексную карту 530, представляющую скорректированные пиксельные координаты на уровне l разрешения.

Текстурные изображения, соответствующие индексным картам, также показаны на фиг.5. Конкретнее, первая текстурная карта 540 соответствует второй индексной карте 520, и вторая текстурная карта 550 соответствует третьей индексной карте 530. Индексные карты представлены математически членом Sl, и каждая текстурная карта представлена как функция ее соответствующей индексной карты, а именно как Е[Sl].

Процесс коррекции анизометрического синтеза

В этом разделе описаны дополнительные подробности способа анизометрического синтеза текстуры. Как отмечено выше, область якобиана используется, чтобы обеспечить локальное вращение и масштабирование текстуры согласно области якобиана, J. Область якобиана используется для модификации как повышения дискретизации, так и процессов коррекции способа анизометрического синтеза текстуры.

Вместо определения множества версий текстуры образца при различных искажениях, как делается другими способами, способ анизометрического синтеза текстуры анизометрически искажает синтезируемый набор соседей, Ns, прежде согласования с набором соседей. Другими словами, синтезируемый набор соседей вращается и масштабируется согласно области якобиана.

Кроме того, как объяснено ниже, используются только непосредственные соседи пикселя, таким образом улучшая связность памяти и текстур. Лежащий в основе процесс синтеза полагается на координаты пикселей образца вместо цвета. Это означает, что синтезируемая текстура непосредственно не содержит цвета, но вместо этого содержит координаты, где в образце должен быть выбран цвет пикселей. Каждый непосредственный сосед заданного пикселя имеет координату в пределах образца. Каждый сосед используется для предсказания кандидата на замену текущему пикселю. Вместо применения анизометрического преобразования перед обращением к соседям система и способ анизометрического синтеза текстуры обращаются к непосредственным соседям и затем применяют это преобразование, чтобы предсказать хорошего кандидата на замену текущему пикселю. Таким образом, обращаются только к непосредственным соседям, но преобразование эквивалентным образом применяется в течение процесса коррекции.

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

При изометрическом синтезе текстуры этот набор соседей создается просто выполнением цикла по наборам соседей во всех направлениях, извлекая синтезируемые координаты этих местоположений и затем отыскивая цвета образца. Это формирует набор соседей пикселя p. Современные анизометрические подходы модифицируют доступ к соседям посредством учета обратного якобиана. Это растягивает обращения посредством вращения и масштабирования их и имеет ряд недостатков, описанных выше.

Способ анизометрического синтеза текстуры, раскрытый в настоящем описании, обращается только к непосредственным соседям пикселя p, где непосредственных соседей получают, используя компонент направления. Таким образом, согласно способу перемещаются в один из восьми непосредственных соседей p, но только ближайший в направлении, которое было выбрано. Способ не позволяет переходить к далеким нелокальным местоположениям (не локальным к пикселю p). Извлекая синтезируемую координату в непосредственном соседе, применяется смещение для извлечения того, какой синтезируемая координата, предсказанная способом, должна быть непосредственно в p. Это смещение преобразуют с помощью якобиана, чтобы принять во внимание анизометрическое исажение.

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

E[S[p+ϕ(hat)]-J(p)ϕ(hat)+Δ] (1),

где:

ϕ(hat)=ϕ/norm(ϕ) (2)

и ϕ=J-1(p)Δ.

Непосредственных соседей задают посредством смещения соседей пространства образца, которым в Уравнении (1) является Δ. Кроме того, ϕ - смещение соседа, преобразованного обратным якобианом, в пространстве синтеза. Вместо использования нелокальных пикселей способ анизометрического синтеза текстуры смотрит на направление вектора и нормализует этот вектор к нормализованному расстоянию в единицу. Способ затем определяет, какой из восьми непосредственных соседей в наборе соседей 3×3 имеет направление, которое способ хотел бы проверить. Член S[p+ϕ(hat)] в Уравнении (1) является этим соседом, и член ϕ(hat) является компонентом направления преобразованного якобианом местоположения соседа. Это дает местоположение - к какому из 8 соседей обращаться.

Затем к синтезируемой текстуре обращаются в непосредственном соседе, который находится в направлении того, где желательно осуществить выборку. Следующий член в Уравнении (1) - это J(p)φ(hat), который является якобианом в пикселе, умноженным на компонент направления преобразованного якобианом местоположения соседа. Вычитание этого члена из синтезируемой координаты текстуры, извлеченной из непосредственного соседа p, дает предсказанную синтезируемую координату непосредственно в p. Наконец, смещение соседа в пространстве образца, Δ, добавляется в Уравнении (1), чтобы предсказать синтезируемую координату при смещении Δ соседа в пространстве образца p.

Обращаются к синтезируемым координатам непосредственного соседа, S[p+ϕ(hat)]. Они используются для предсказания синтезируемых координат в точке p посредством вычитания J(p)ϕ(hat). Затем, имея предсказанные синтезируемые координаты в p, используя этого непосредственного соседа, дельту смещения, Δ, в пространстве образца прибавляют к этой синтезируемой координате, чтобы предсказать правильную соседнюю координату.

Дельта, Δ, относится к смещениям набора соседей. В некоторых вариантах осуществления набором соседей является окрестность 5×5, в то время как в других вариантах осуществления набором соседей является окрестность 3×3 или даже 4 диагональных точки вокруг точки p. В качестве примера для набора соседей 3×3 Δ=(-1, -1), (-1,0), (-1, 1), (0, -1), (0,0), (0,1), (1, -1), (1,0), (1, 1). В качестве другого примера набор соседей, состоящий из 4 диагональных точек, может состоять из соседей Δ=(1, -1) (-1, 1) (-1, -1) (1,1).

Способ анизометрического синтеза текстуры предсказывает координаты в p+Δ. Набор соседей с 4 пикселями строится для Δ=(1, -1) (-1,1) (-1, -1) (1,1). Ключевая идея состоит в том, что как только кандидат получен для p в пространстве образца, любая дельта смещения, Δ, может применяться, чтобы иметь кандидата в другом местоположении в пространстве образца. Таким образом, получают четыре кандидата, одного для каждой дельты, Δ, в пространстве образца.

Кроме того, значение некоторого количества пикселей усредняют для каждой дельты, Δ, чтобы иметь лучшее предсказание появления пикселя в p+Δ. Это улучшает качество набора соседей посредством усреднения вклада количества пикселей для каждой дельты, Δ. В некоторых вариантах осуществления количество пикселей равно трем. В других вариантах осуществления количество пикселей может быть равно более или менее чем трем пикселям.

Процесс повышения дискретизации анизометрического синтеза

Процесс повышения дискретизации способа анизометрического синтеза текстуры также модифицируется, используя область якобиана. Это поддерживает связность текстуры в течение синтеза "от грубого к мелкому" посредством модификации каждого прохода повышения дискретизации, чтобы принять во внимание анизометрию. Каждый дочерний пиксель наследует синтезируемую координату родителя, смещенную посредством якобиана, умноженного на относительное местоположение потомка. Математически, эта концепция выражена уравнением:

Sl[p]:=Sl-1[p-Δ]+J(p)Δ, Δ=(±1/2±1/2)T (3)

Уравнение (3) говорит, что результат синтеза Sl для p (или синтезируемой координаты потомка) равен синтезируемой координате родителя, где Sl-1 - родитель, плюс относительное местоположение потомка относительно родителя (Δ), преобразованного якобианом. Каждая координата 2D вектора Δ равно +1/2 или -1/2, что означает, что имеется пирамидальная структура, так что каждый родитель имеет двух потомков. Таким образом, относительное местоположение каждого потомка относительно родителя есть +1/2 или -1/2 по каждой координате.

Фиг.6 иллюстрирует пример первого результата процесса анизометрического синтеза текстуры, раскрытого в настоящем описании. В частности, анизометрическая синтезируемая текстура 600 формируется, используя процесс анизометрического синтеза текстуры и образец 610. Неоднородная (непостоянная) область якобиана была задана по анизометрической синтезируемой текстуре 600. Можно видеть, отмечая, как клетки становятся больше в центре анизометрической синтезируемой текстуры 600 и меньшими по краям.

Фиг.7 иллюстрирует пример второго результата процесса анизометрического синтеза текстуры, раскрытого в настоящем описании. Анизометрическая синтезируемая текстура 700 формируется, используя процесс анизометрического синтеза текстуры и образец 710. Снова непостоянная область якобиана была определена по анизометрической синтезируемой текстуре 700. Может быть замечено, как полосы зебры являются прямыми и почти вертикальными в образце 710, но являются искаженными и вращаются в пределах анизометрической синтезируемой текстуры 700.

Синтез текстуры поверхности

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

Область якобиана задает, как исказить синтезируемую текстуру. Для случая поверхности желательно исказить текстуру таким образом, что, когда текстура появляется на поверхности, это выглядит корректным. Фиг.8 иллюстриру