СИСТЕМЫ И СПОСОБЫ ДЛЯ СОЗДАНИЯ ТРЕХМЕРНОГО ТЕКСТУРНОГО АТЛАСА
SYSTEMS AND METHODS FOR CREATION OF THREE-DIMENSIONAL TEXTURED SATIN

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится, в общем, к системам и способам для создания трехмерного (3D) текстурного атласа. В частности, настоящее изобретение относится к уменьшению объема кэш-памяти текстур, необходимой для хранения текстурного атласа, с использованием однозначно сгруппированных скорректированных треугольников для создания каждого текстурного атласа.
УРОВЕНЬ ТЕХНИКИ
В некоторых областях полезно моделировать реальные или компьютерно-сгенерированные объекты в трех измерениях. Моделирование таких объектов оказывается полезным во множестве различных областей применения. Например, моделирование строения среды участка земной коры полезно для нахождения нефтяных месторождений, определения местонахождения геологических разломов и в других геологических областях применения. Аналогично, моделирование частей человеческого тела полезно для медицинских практических занятий, диагностики, проведения дистанционной хирургии или для других медицинских областей применения. Моделирование компьютерно-сгенерированных объектов полезно при создании компьютерных игр, проектировании моделей условий полета и в других областях применения. Существуют другие области применения 3D моделирования реальных или компьютерно-сгенерированных объектов.
Некоторые 3D модели представляют объект в виде 3D матрицы точек объемных данных. Данная матрица, известная как объем данных, включает в себя множество точек данных, известных как точки объемных данных. Каждая точка объемных данных может быть названа объемным пикселем, известным также под названием воксель. Воксель является минимальной различимой объемной частью 3D изображения. Воксель подобен пикселю, но представляет 3D объем, а не двумерную (2D) область. Каждый воксель представляет дискретный отсчет 3D участка моделируемого объекта.
После того как объем данных создан, его содержимое может отображаться для пользователей. Пользователь может задавать 3D поверхность, содержащуюся в объеме, и система отображения отображает воксели на упомянутой поверхности на экране или другом средстве отображения. Это дает пользователю возможность наблюдать воксели, которые содержатся внутри объема данных.
Одна система для отображения вокселей на произвольной 3D поверхности известна как 3D текстурное отображение. Данный метод реализуется в блоке обработки растровых данных аппаратного ускорителя компьютерной графики. Данный метод использует особую специализированную память, известную как кэш текстур или память текстур, которая обеспечивается отдельно на интегральной схеме.
Данный метод обладает некоторыми присущими ему свойствами, которые делают его неэффективным для конкретных ситуаций. Например, для объемов данных, которые являются большими в сравнении с размером доступного кэша текстур, объем данных необходимо разбивать на блоки и каждый блок необходимо подкачивать в кэш текстур. Это неэффективно по причине относительно больших издержек, требующихся при определении размера каждого блока и считывании его в кэш текстур.
Кроме того, даже если только те воксели, которые находятся на 3D поверхности, могут требоваться блоку обработки растровых данных при данном методе, каждый воксель в объеме данных считывается в кэш текстур и сохраняется в нем. Таким образом, память в кэше текстур используется неэффективно, потому что в кэше текстур может храниться относительно большое количество ненужных данных. Данная проблема обостряется, когда 3D поверхность является небольшой по сравнению с объемом данных.
Кроме того, поскольку при данной операции используется относительно большой объем кэша текстур, то объем кэша текстур, доступный другим графическим операциям, ограничен. Это ограничивает производительность визуализации объекта и ограничивает производительность других графических операций.
Другие методы, широко известные в технике, включают в себя подразделение полигональной поверхности на несколько многоугольников и создание текстурной мозаики для каждого многоугольника, при этом каждая текстурная мозаика используется для формирования одного или более текстурных атласов. Текстурная мозаика является набором скорректированных треугольников и его ограничивающего объема, который содержит 3D текстурные данные. Текстурный атлас является группой текстурных мозаик, которые обычно располагают так, чтобы текстурный атлас содержал максимальное число текстурных мозаик. Однако данные методы все равно могут оставлять пустым или неиспользуемым пространство в каждом текстурном атласе, которое требует памяти в кэше текстур для хранения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В связи с этим настоящее изобретение удовлетворяет вышеприведенным требованиям и устраняет один или более недостатков известного уровня техники посредством уменьшения объема кэш-памяти текстур, необходимой для хранения текстурного атласа, с использованием однозначно сгруппированных скорректированных треугольников для создания каждого текстурного атласа.
В одном варианте осуществления настоящее изобретение включает в себя способ создания трехмерного текстурного атласа, который содержит следующие этапы: i) подразделяют трехмерную треугольную сетку на множество скорректированных треугольников; ii) группируют множество скорректированных треугольников в одну или более групп скорректированных треугольников с использованием компьютерного процессора; iii) сканируют каждую группу скорректированных треугольников внутри трехмерного ограничивающего объема, чтобы сформировать стандартизованную текстурную мозаику или нестандартизованную текстурную мозаику; и iv) объединяют каждую стандартизованную текстурную мозаику, чтобы сформировать, по меньшей мере, один трехмерный текстурный атлас.
В другом варианте осуществления настоящее изобретение включает в себя устройство долговременного носителя программ, содержащее в материальной форме выполняемые компьютером команды для создания трехмерного текстурного атласа, при этом команды выполняются для осуществления: i) подразделения трехмерной треугольной сетки на множество скорректированных треугольников; ii) группирования множества скорректированных треугольников в одну или более групп скорректированных треугольников; iii) сканирования каждой группы скорректированных треугольников внутри трехмерного ограничивающего объема, чтобы формировать стандартизованную текстурную мозаику или нестандартизованную текстурную мозаику; и iv) объединения каждой стандартизованной текстурной мозаики, чтобы формировать, по меньшей мере, один трехмерный текстурный атлас.
Дополнительные аспекты, преимущества и варианты осуществления изобретения будут понятны специалистам в данной области техники из нижеследующего описания различных вариантов осуществления и соответствующих чертежей.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Настоящее изобретение описано ниже со ссылками на прилагаемые чертежи, на которых одинаковые элементы обозначены одинаковыми позициями и на которых:
Фиг. 1 - блок-схема последовательности операций, иллюстрирующая один вариант осуществления способа для осуществления настоящего изобретения.
Фиг. 2 - графическое представление, иллюстрирующее этап 104 и этап 106, показанные на фиг. 1.
Фиг. 3 - графическое представление, иллюстрирующее этап 108, показанный на фиг. 1.
Фиг. 4 - другое графическое представление, иллюстрирующее этап 108, показанный на фиг. 1.
Фиг. 5 - блок-схема, иллюстрирующая один вариант осуществления компьютерной системы для осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Предмет настоящего изобретения описан с привязкой к конкретной задаче, однако описание само по себе не предполагает ограничения объема изобретения. Следовательно, предмет изобретения можно также осуществлять другими способами, включающим в себя другие этапы или комбинации этапов, сходные с этапами, описанными в настоящей заявке, в сочетании с другими технологиями. Кроме того, хотя термин «этап» может применяться в настоящей заявке для описания разных элементов используемых способов, этот термин нельзя интерпретировать как подразумевающий какой-либо конкретный порядок среди или между различными этапами, раскрытыми в настоящей заявке, если иное прямо не ограничено в описании конкретным порядком. Хотя нижеследующее описание относится к нефтегазовой отрасли, системы и способы согласно настоящему изобретению не ограничены данной отраслью и могут также применяться в других отраслях для получения сходных результатов.
Настоящее изобретение использует октодерево, которое является общеизвестной древовидной структурой данных, в которой каждый внутренний узел имеет точно восемь дочерних элементов, чтобы разделить 3D пространство посредством его рекурсивного подразделения на восемь октантов, называемых также в настоящей заявке листьями. Все листья октодерева в октодереве имеют одинаковый размер, и каждый лист октодерева соответствует конкретному геометрическому местоположению в кэш-памяти текстур. Октодерево является 3D аналогом 2D квадродерева, которое используется в настоящей заявке для иллюстрации настоящего изобретения. Однако настоящее изобретение использует октодерево для пространственного индексирования скорректированных треугольников, чтобы уменьшить объем памяти в кэше текстур, необходимый для каждого текстурного атласа.
ОПИСАНИЕ СПОСОБА
На фиг. 1 изображена блок-схема последовательности операций одного варианта осуществления способа 100 для осуществления настоящего изобретения. Способ 100 уменьшает объем кэш-памяти текстур, который необходим для хранения каждого текстурного атласа.
(3n)
k
k
На этапе 102, 3D треугольная сетка и параметры процедуры вводятся с использованием клиентского интерфейса и/или видеоинтерфейса, описанного со ссылкой на фиг. 5. 3D треугольная сетка может быть исходной сеткой, или данная сетка может быть создана преобразованием из нетреугольной сетки с использованием методов, широко известных в данной области техники. Только одно октодерево требуется для обработки всех 3D треугольных сеток одновременно, но часто имеется только одна 3D треугольная сетка. Параметры процедуры могут включать в себя, но без ограничения: i) максимальный размер скорректированного треугольника, который является предварительно заданной длиной наибольшего ребра для каждого скорректированного треугольника; ii) размер листа октодерева, при этом каждое измерение его объема, по меньшей мере, в три раза больше, чем длина наибольшего ребра, которая задает максимальный размер скорректированного треугольника; iii) число листьев октодерева для каждого октодерева, которое равно 2, и n часто равно, по меньшей мере, 4; iv) размер предпочтительного 3D ограничивающего объема, причем каждое измерение предпочтительного 3D ограничивающего объема меньше или равно 2 и k равно любому положительному целому числу, которое ограничивает размер предпочтительного 3D ограничивающего объема до размера листа октодерева плюс максимальный размер скорректированного треугольника; и v) число текстурных мозаик для каждого измерения 3D текстурного атласа, которое основано на числе полных текстурных мозаик и производительности графического процессора. Следовательно, графический процессор с большой производительностью будет допускать формирование меньшего числа (более крупных) текстурных атласов, а графические процессоры с меньшей производительностью могут потребовать формирования большего числа (меньших) текстурных атласов. Другими словами, меньшее число текстурных атласов будет создавать меньше текстурных объектов и способствовать большей кэш-памяти текстур и более высоким характеристикам. Поскольку k выбирают для размещения размера предпочтительного 3D ограничивающего объема в качестве близкого по размеру к размеру листа октодерева плюс максимальному размеру скорректированного треугольника, то 2 минус измерение размера предпочтительного 3D ограничивающего объема представляет неиспользуемую кэш-память текстур в одном измерении. Таким образом, размер предпочтительного 3D ограничивающего объема способствует сбалансированному подходу к достижению наиболее эффективного размера для каждой текстурной мозаики и каждого текстурного атласа,
На этапе 104 3D треугольная сетка подразделяется на скорректированные треугольники с использованием методов, широко известных в данной области техники, и максимального размера скорректированного треугольника. На фиг. 2, например, графическое представление 2D квадродерева 200 используется для иллюстрации 3D треугольной сетки 210, подразделенной на скорректированные треугольники, каждый из которых нумерован. 2D квадродерево 200 включает в себя четыре листа (октанта) 202, 204, 206 и 208 октодерева. При заданном максимальном размере скорректированного треугольника с этапа 102, 3D треугольная сетка подразделяется многократным делением длины наибольшего ребра каждого треугольника, пока каждый треугольник не становится меньше или равен максимальному скорректированному треугольнику. Таким образом, форма и размер каждого скорректированного треугольника остаются, по существу, одинаковыми.
На этапе 106 скорректированные треугольники группируются в одну или более групп (наборов) скорректированных треугольников в соответствии с их пространственным расположением (геометрическим местоположением) относительно листа октодерева. На фиг. 2, например, скорректированные треугольники пронумерованы в соответствии с их пространственным расположением относительно листа октодерева. Каждому скорректированному треугольнику, по существу: i) внутри листа 202 октодерева присваивается 0; ii) внутри листа 204 октодерева присваивается 1; iii) внутри листа 206 октодерева присваивается 2; и iv) внутри листа 208 октодерева присваивается 3. Каждый скорректированный треугольник может принадлежать только к одному листу октодерева, и, если он перекрывается с двумя или более листами октодерева, то он распределяется листу октодерева, содержащему наибольший участок скорректированного треугольника.
На этапе 108 каждая группа скорректированных треугольников внутри 3D ограничивающего объема сканируется с использованием методов, широко известных в данной области техники, чтобы сформировать стандартизованную текстурную мозаику или нестандартизованную текстурную мозаику, содержащую текстурное изображение и соответствующую группу скорректированных треугольников. Если размер 3D ограничивающего объема для соответствующей группы скорректированных треугольников удовлетворяет размеру предпочтительного 3D ограничивающего объема, то сканированием формируется стандартизованная текстурная мозаика. На фиг. 3, например, графическое представление 300 листа 206 октодерева иллюстрирует группу скорректированных треугольников 302 внутри 3D ограничивающего объема 304, который удовлетворяет размеру предпочтительного 3D ограничивающего объема. Если размер 3D ограничивающего объема для соответствующей группы скорректированных треугольников не удовлетворяет размеру предпочтительного 3D ограничивающего объема, то сканированием формируется нестандартизованная текстурная мозаика. На фиг. 4, например, графическое представление 400 листа 401 октодерева иллюстрирует группу скорректированных треугольников 402 внутри 3D ограничивающего объема 404, который не удовлетворяет размеру предпочтительного 3D ограничивающего объема. Каждая стандартизованная текстурная мозаика имеет, по существу, одинаковые размер и форму. Каждая нестандартизованная текстурная мозаика больше, чем стандартизованная текстурная мозаика. Приведенное разграничение между стандартизованными текстурными мозаиками и нестандартизованными текстурными мозаиками эффективно оптимизирует использование кэш-памяти текстур при формировании каждого текстурного атласа. Другими словами, способ 100 уравновешивает размер каждой группы скорректированных треугольников и размер соответствующего листа октодерева, чтобы приблизить размер 3D ограничивающего объема для соответствующей группы скорректированных треугольников, без превышения, к размеру предпочтительного 3D ограничивающего объема.
На этапе 110 стандартизованные текстурные мозаики объединяют для формирования одного или более текстурных атласов и нестандартизованные текстурные мозаики объединяют отдельно для формирования одного или более текстурных атласов. Таким образом, каждый текстурный атлас, содержащий стандартизованные текстурные мозаики, должен включать в себя одинаковое число текстурных мозаик в каждом измерении текстурного атласа. Это способствует эффективному использованию кэш-памяти текстур посредством уменьшения объем кэш-памяти текстур, необходимого для хранения каждого текстурного атласа. Остающиеся нестандартизованные текстурные мозаики, которые объединяются для формирования одного или более текстурных атласов, потребуют большей кэш-памяти текстур для хранения, чем текстурные атласы, содержащие стандартизованные текстурные мозаики.
ОПИСАНИЕ СИСТЕМЫ
Настоящее изобретение может быть осуществлено посредством компьютерно-выполняемой программы команд, например программных модулей, в общем, называемых программными приложениями или прикладными программами, выполняемыми компьютером. Программное обеспечение может включать в себя, например, подпрограммы, программы, объекты, компоненты и структуры данных, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Программное обеспечение формирует интерфейс для предоставления компьютеру возможности реагировать в соответствии с источником данных. Коммерческое программное приложение DecisionSpace, предлагаемое на рынке компанией Landmark Graphics Corporation, можно использовать как интерфейсное приложение для осуществления настоящего изобретения. Программное обеспечение может также взаимодействовать с другими сегментами кода для инициирования множества задач в ответ на данные, принятые в связи с источником принятых данных. Программное обеспечение может храниться и/или переноситься на любых многочисленных запоминающих средах, например CD-ROM (компакт-диске только для чтения), магнитном диске, в памяти на магнитных доменах и полупроводниковой памяти (например, RAM (оперативной памяти) или ROM (постоянной памяти) различных типов). Кроме того, программное обеспечение и его результаты могут переноситься множеством различных физических каналов передачи данных, например, по оптическому волокну, металлическому проводу, свободному пространству и/или посредством любой из множества различных сетей, например, сети Internet.
Кроме того, специалистам в данной области техники будет очевидно, что изобретение может применяться с множеством различных конфигураций компьютерных систем, включая ручные устройства, микропроцессорные системы, микропроцессорную или программируемую бытовую электронную технику, миникомпьютеры, универсальные вычислительные машины и т.п. Для применения с настоящим изобретением подходит любое число компьютерных систем и компьютерных сетей. Изобретение может применяться в распределенных вычислительных средах, в которых задачи выполняются удаленными устройствами обработки, которые связаны по сети связи. В распределенных вычислительных средах программные модули могут находиться как на локальных, так и на удаленных носителях данных для компьютера, включая запоминающие устройства. Поэтому настоящее изобретение можно осуществить в связи с различным аппаратным обеспечением, программным обеспечением или их сочетанием, в компьютерной системе или другой системе обработки.
На фиг. 5 приведена блок-схема системы для осуществления настоящего изобретения на компьютере. Система содержит вычислительный блок, иногда называемый компьютерной системой, который содержит память, прикладные программы, клиентский интерфейс, видеоинтерфейс и блок обработки, который включает в себя графический процессор или графический адаптер. Вычислительный блок является только одним примером подходящей вычислительной среды и не предназначен для предположения какого-либо ограничения на объем применения или функций изобретения.
Память хранит главным образом прикладные программы, которые можно также описать как программные модули, содержащие компьютерно-выполняемые команды, выполняемые вычислительным блоком для осуществления настоящего изобретения, описанного в настоящей заявке и изображенного на фиг. 1-4. Поэтому память включает в себя модуль создания текстурных атласов, который запускает способы, изображенные и описанные со ссылкой на фиг. 1-4, и объединяет функции из остальных прикладных программ, показанных на фиг. 5. Память содержит также приложение DecisionSpace, которое можно использовать как интерфейсное приложение для подачи входных данных в модуль создания текстурных атласов и/или отображения результирующих данных из модуля создания текстур. Хотя в качестве интерфейсного приложения можно использовать приложение DecisionSpace, вместо него можно использовать другие интерфейсные приложения, или можно использовать модуль создания текстурных атласов в качестве автономного приложения.
Хотя вычислительный блок показан как содержащий обобщенную память, вычислительный блок обычно включает в себя множество различных машиночитаемых носителей. Например, и без ограничения, машиночитаемые носители могут содержать носители данных для компьютера и каналы передачи данных. Память компьютерной системы может включать в себя носители данных для компьютера в форме энергозависимой и/или энергонезависимой памяти, например постоянной памяти (ROM) и оперативной памяти (RAM). Базовая система ввода-вывода (BIOS), содержащая базовые подпрограммы, которые помогают передаче информации между элементами внутри вычислительного блока, например, во время запуска, обычно хранятся в ROM. RAM обычно содержит данные и/или программные модули, которые могут быть немедленно вызваны и/или в настоящий момент выполняются вычислительным блоком. Например, и без ограничения, вычислительный блок содержит оперативную систему, прикладные программы, другие программные модули и данные программы.
Компоненты, показанные в памяти, могут также содержаться на других съемных/несъемных, энергозависимых/энергонезависимых носителях данных для компьютера, или упомянутые компоненты могут быть реализованы в вычислительном блоке посредством интерфейса прикладных программ («API») или облачных вычислений, которые могут постоянно храниться в отдельном вычислительном блоке, подсоединенном посредством компьютерной системы или сети. Исключительно для примера, накопитель на жестких дисках может считывать или записывать с/на несъемные энергонезависимые магнитные носители, накопитель на магнитных дисках может считывать или записывать с/на съемный энергонезависимый магнитный диск, и накопитель на оптических дисках может считывать или записывать с/на съемный энергонезависимый оптический диск, например CD-ROM или другие оптические носители. Другие съемные/несъемные энергозависимые/энергонезависимые носители данных для компьютера, которые можно применять в примерной операционной среде, могут включать в себя, но без ограничения, кассеты с магнитными лентами, карты флэш-памяти, цифровые универсальные диски, цифровую видеоленту, твердотельную RAM, твердотельную ROM и т.п. Вышеупомянутые накопители и связанные с ними носители данных для компьютера обеспечивают хранение машиночитаемых команд, структур данных, программных модулей и других данных для вычислительного блока.
Клиент может вводить команды и информацию в вычислительный блок посредством клиентского интерфейса, который может быть устройствами ввода, например, клавиатурой и указательным устройством, обычно называемым мышью, трекболом или сенсорным планшетом. Устройства ввода могут включать в себя микрофон, джойстик, спутниковую тарелку, сканер и т.п. Упомянутые и другие устройства часто подсоединяются к вычислительному блоку посредством клиентского интерфейса, который связан с системной шиной, но могут быть подсоединены посредством другого интерфейса и шинных структур, например, параллельного порта или универсальной последовательной шины (USB).
Монитор или другой тип устройства отображения может подсоединяться к системной шине посредством интерфейса, например видеоинтерфейса. Графический пользовательский интерфейс («GUI») также можно использовать с видеоинтерфейсом, чтобы принимать команды из клиентского интерфейса и передавать команды в вычислительный блок. В дополнение к монитору компьютеры могут также включать в себя другие периферийные устройства вывода, например динамики и принтер, которые могут подсоединяться посредством интерфейса периферийных устройств вывода.
Хотя многие другие внутренние компоненты вычислительного блока не показаны, специалисты со средним уровнем компетенции в данной области техники примут во внимание, что данные компоненты и межсоединения широко известны.
Хотя настоящее изобретение описано в связи с вариантами осуществления, предпочтительными в настоящее время, специалистам в данной области техники будет понятно, что изобретение не предполагается ограничить данными вариантами осуществления. Поэтому предполагается, что различные альтернативные варианты осуществления и модификации раскрытых вариантов осуществления могут быть созданы без выхода за пределы существа и объема изобретения, определенных прилагаемой формулой изобретения и ее эквивалентами.