СПОСОБ И СИСТЕМА ХРАНЕНИЯ ДАННЫХ ДЛЯ ОТРИСОВКИ ТРЕХМЕРНЫХ ГРАФИЧЕСКИХ ОБЪЕКТОВ
METHOD AND SYSTEM OF STORAGE OF DATA FOR DRAWING THREE-DIMENSIONAL GRAPHIC OBJECTS

Область техники
[0001] Настоящее техническое решение относится к способу и системе хранения данных для отрисовки трехмерных графических объектов.
Уровень техники
[0002] В компьютерных технологиях широко распространено использование трехмерных графических объектов. Они используются в графическом дизайне, картографических сервисах и во многих других областях. Машиночитаемые хранилища вычислительных устройств могут хранить информацию, представляющую множество трехмерных графических объектов, причем эта информация может быть использована для создания визуального представления трехмерных графических объектов. Информация, представляющая множество трехмерных графических объектов, может включать в себя стандартные координаты трехмерных графических объектов.
[0003] Стандартные координаты дают возможность размещения трехмерных графических объектов в пространстве с помощью выбора набора чисел или букв, определяющих конкретное положение в пространстве. Координаты часто выбираются таким образом, что одно из чисел представляет вертикальное положение, а два числа представляют горизонтальное положение. Обычно используются следующие координаты: широта, долгота и высота. Другим примером стандартных координат являются полярные координаты относительно расположения наблюдателя.
[0004] Сохранение координат трехмерных графических объектов требует значительных объемов машиночитаемых носителей. Поэтому решение проблемы экономного хранения координат объектов становится важной задачей. Одним из возможных решений является сохранение поверхностей трехмерных графических объектов как карт высот. Технология карт высот позволяет сохранить трехмерные графические объекты с помощью сохранения одной базовой поверхности и указания «высот» (отклонений) относительно базы, что определяет координаты искривленной поверхности, идущей вдоль базы.
[0005] Более конкретно, в патенте США, озаглавленном «Способ моделирования и отрисовки сложных поверхностей с использованием локальных карт высот» (US 6441816 В1) раскрыт способ моделирования и отрисовки трехмерной сложной поверхности с использованием треугольных ячеек. Способ может уменьшить объем необходимой памяти и время отрисовки с помощью локальных карт высот и присвоения соседних координат любой точке на поверхности возле треугольной ячейки, присвоенной этой поверхности. Барицентрические координаты используются для идентификации точек в треугольном полигоне для работы с данными высот на локальной карте высот, связанной с этим треугольным полигоном. Локальные карты высот дают возможность выявлять пересечения луча с трехмерной поверхностью. Константы Липшица, связанные с трехмерными поверхностями, используются для обнаружения точки на следующем луче, ближайшем к трехмерной поверхности, чтобы перейти на эту точку, что делает поиск таких точек пересечения эффективным.
[0006] Резюмируя, сохранение поверхностей монотонных трехмерных графических объектов возможно с использованием технологий карт высот, на что может тратиться меньше памяти по сравнению с сохранением их в декартовых координатах или в иной стандартной системе координат. Хотя технологии карт высот подходят для сохранения поверхностей монотонных трехмерных графических объектов, они не подходят для сохранения немонотонных поверхностей.
Раскрытие
[0007] Поверхности трехмерных графических объектов могут храниться в стандартной системе координат, но способы хранения, требующие меньших затрат памяти, дают техническое преимущество. Задачей предлагаемого технического решения является минимизация по меньшей мере некоторых недостатков, присущих известному уровню техники.
[0008] Одним объектом настоящего технического решения является компьютерный способ создания данных карт высот для отрисовки на вычислительном устройстве трехмерного графического объекта. Трехмерный графический объект имеет немонотонную поверхность. Способ создания данных карт высот использует стандартные координаты. Стандартные координаты хранятся на носителе информации. Стандартные координаты определяют поверхность трехмерных графических объектов. Способ включает в себя: (i) на основе стандартных координат трехмерного графического объекта создание поверхности трехмерного графического объекта; (ii) создание первой эталонной петли, расположенной на поверхности трехмерного графического объекта таким образом, что первая эталонная петля полностью расположена в первой воображаемой эталонной плоскости, пересекающей трехмерный графический объект; (iii) применение к поверхности трехмерного графического объекта первого набора пересекающих элементов, таким образом, что: (а) пересекающие элементы из первого набора пересекающих элементов пересекают первую эталонную петлю в соответствующих точках пересечения в предварительно определенных интервалах, (b) каждый пересекающий элемент из первого набора пересекающих элементов пересекает первую эталонную петлю в каждой соответствующей точке пересечения под одинаковым углом пересечения, и (с) каждый пересекающий элемент из первого набора пересекающих элементов перпендикулярен первой воображаемой эталонной плоскости; (iv) измерение множества углов между пересекающими элементами из первого набора пересекающих элементов и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными пересекающими элементами из первого набора пересекающих элементов превышает предварительно определенный порог, создание первого набора разделительных линий, причем первый набор разделительных линий включает в себя по меньшей мере одну разделительную линию, и каждая разделительная линия из первого набора разделительных линий расположена в пределах соответствующего интервала, определенного указанными двумя частными пересекающими элементами, чтобы разделить поверхность трехмерного графического объекта на фрагменты поверхности; (v) определение среди созданных фрагментов поверхности (созданные фрагменты поверхности определяются разделительными линиями) монотонных фрагментов поверхности; (vi) в ответ на определение по меньшей мере одного монотонного фрагмента поверхности, создание карты высот для определенного по меньшей мере одного монотонного фрагмента поверхности.
[0009] В некоторых вариантах осуществления настоящего технического решения пересекающие элементы являются пересекающими плоскостями, а измерение множества углов между пересекающими элементами является измерением углов между нормалями соответствующих пересекающих плоскостей.
[0010] В некоторых вариантах осуществления настоящего технического решения измерение множества углов между пересекающими элементами из первого набора пересекающих элементов и создание по меньшей мере одной разделительной линии из первого набора разделительных линий осуществляется последовательно и периодически.
[0011] В некоторых вариантах осуществления настоящего технического решения указанные два частных пересекающих элемента из первого набора пересекающих элементов, образующие угол, превышающий предварительно определенный порог, являются последовательными пересекающими элементами, а указанная по меньшей мере одна разделительная линия из первого набора разделительных линий является по меньшей мере одной исходной разделительной линией из первого набора разделительных линий, и способ дополнительно включает в себя: измерение множества углов между не являющимися последовательными пересекающими элементами из первого набора пересекающих элементов в пределах фрагментов поверхности, определенных исходными разделительными линиями, и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными не являющимися последовательными пересекающими элементами в пределах фрагмента поверхности, определенного исходными пересекающими линиями, превышает предварительно определенный порог, создание по меньшей мере одной дополнительной разделительной линии из первого набора разделительных линий, причем каждая дополнительная разделительная линия из первого набора разделительных линий расположена в пределах соответствующего интервала, определенного указанными двумя частными не являющимися последовательными пересекающими элементами, для разделения поверхности трехмерного графического объекта на более мелкие фрагменты поверхности.
[0012] В некоторых вариантах осуществления настоящего технического решения каждый угол пересечения между каждым пересекающим элементом и поверхностью трехмерного графического объекта в каждой соответствующей точке пересечения равен 90 градусов.
[0013] В некоторых вариантах осуществления настоящего технического решения указанное определение монотонных фрагментов поверхности дополнительно включает в себя определения немонотонных фрагментов поверхности и, в ответ на то, что по меньшей мере один созданный фрагмент поверхности не является монотонным, способ дополнительно включает в себя: (i) создание второй эталонной петли, расположенной на поверхности трехмерного графического объекта таким образом, что вторая эталонная петля полностью расположена во второй воображаемой эталонной плоскости, пересекающей трехмерный графический объект; (ii) применение к поверхности трехмерного графического объекта второго набора пересекающих элементов, таким образом, что: (а) пересекающие элементы из второго набора пересекающих элементов пересекают вторую эталонную петлю в соответствующих точках пересечения в предварительно определенных интервалах, (b) каждый пересекающий элемент из второго набора пересекающих элементов пересекает вторую эталонную петлю в каждой соответствующей точке пересечения под одинаковым углом пересечения, и (с) каждый пересекающий элемент из второго набора пересекающих элементов перпендикулярен второй воображаемой эталонной плоскости; (iii) измерение множества углов между пересекающими элементами из второго набора пересекающих элементов и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными пересекающими элементами из второго набора пересекающих элементов превышает предварительно определенный порог, создание второго набора разделительных линий, причем второй набор разделительных линий включает в себя по меньшей мере одну раздельную линию, и каждая разделительная линия из второго набора разделительных линий расположена в пределах соответствующего интервала, определенного указанными двумя частными пересекающими элементами, чтобы разделить поверхность трехмерного графического объекта на фрагменты поверхности; (iv) определение монотонных фрагментов поверхности среди заново созданных более мелких фрагментов поверхностей, образованных из немонотонных фрагментов; (v) в ответ на определение по меньшей мере одного заново созданного более мелкого монотонного фрагмента поверхности, создание карты высот для определенного по меньшей мере одного заново созданного более мелкого монотонного фрагмента поверхности.
[0014] В некоторых вариантах осуществления настоящего технического решения создание карты высот для каждого монотонного фрагмента поверхности дополнительно включает в себя: (i) создание баз для каждого из по меньшей мере одного созданного монотонного фрагмента поверхности для того, чтобы были проекции на каждую базу от каждого фрагмента поверхности соответственно, и сохранение координат баз; (ii) проецирование высот с каждого из по меньшей мере одного фрагмента поверхности на его соответствующую базу, причем указанное проецирование выполняется с предварительно определенным шагом высот, в предварительно определенном порядке проецирования высот; (iii) определение значений высот, причем каждое значение высоты представляет расстояние между соответствующей базой и соответствующей точкой на соответствующем монотонном фрагменте поверхности, и значения высот нужны для создания карт высот монотонных фрагментов поверхности; (iv) сохранение данных для отрисовки монотонного фрагмента поверхности как совокупности: координат баз, шага высот, предварительно определенного порядка проецирования высот, и последовательности значений высот в связи с соответствующей базой.
[0015] В некоторых вариантах осуществления настоящего технического решения создание базы выполняется проведением проекции к плоской поверхности, и база является частью плоской поверхности, определенной указанной проекцией.
[0016] В некоторых вариантах осуществления настоящего технического решения значения высот являются по меньшей мере либо положительным значением, либо нулевым значением, либо отрицательным значением.
[0017] Другим объектом настоящего технического решения является вычислительное устройство для создания данных карт высот для отрисовки трехмерного графического объекта, причем трехмерный графический объект имеет немонотонную поверхность. Немонотонная поверхность определяется стандартными координатами. Вычислительное устройство включает в себя процессор. Вычислительное устройство включает в себя носитель информации. Носитель информации хранит программные инструкции, которые, при их исполнении, инициируют выполнение процессором: (i) на основе стандартных координат трехмерного графического объекта создание поверхности трехмерного графического объекта; (ii) создание первой эталонной петли, расположенной на поверхности трехмерного графического объекта таким образом, что первая эталонная петля полностью расположена в первой воображаемой эталонной плоскости, пересекающей трехмерный графический объект; (iii) применение к поверхности трехмерного графического объекта первого набора пересекающих элементов, таким образом, что: (а) пересекающие элементы из первого набора пересекающих элементов пересекают первую эталонную петлю в соответствующих точках пересечения в предварительно определенных интервалах, (b) каждый пересекающий элемент из первого набора пересекающих элементов пересекает первую эталонную петлю в каждой соответствующей точке пересечения под одинаковым углом пересечения, и (с) каждый пересекающий элемент из первого набора пересекающих элементов перпендикулярен первой воображаемой эталонной плоскости; (iv) измерение множества углов между пересекающими элементами из первого набора пересекающих элементов и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными пересекающими элементами из первого набора пересекающих элементов превышает предварительно определенный порог, создание первого набора разделительных линий, причем первый набор разделительных линий включает в себя по меньшей мере одну разделительную линию, и каждая разделительная линия из первого набора разделительных линий расположена в пределах соответствующего интервала, определенного указанными двумя частными пересекающими элементами, чтобы разделить поверхность трехмерного графического объекта на фрагменты поверхности; (v) определение среди созданных фрагментов поверхности (созданные фрагменты поверхности определяются разделительными линиями) монотонных фрагментов поверхности; (vi) в ответ на определение по меньшей мере одного монотонного фрагмента поверхности, создание карты высот для определенного по меньшей мере одного монотонного фрагмента поверхности.
[0018] В некоторых вариантах осуществления настоящего технического решения пересекающие элементы являются пересекающими плоскостями, а измерение множества углов между пересекающими элементами является измерением углов между нормалями соответствующих пересекающих плоскостей.
[0019] В некоторых вариантах осуществления настоящего технического решения измерение множества углов между пересекающими элементами из первого набора пересекающих элементов и создание по меньшей мере одной разделительной линии из первого набора разделительных линий осуществляется последовательно и периодически.
[0020] В некоторых вариантах осуществления настоящего технического решения указанные два частных пересекающих элемента из первого набора пересекающих элементов, образующие угол, превышающий предварительно определенный порог, являются последовательными пересекающими элементами, а указанная по меньшей мере одна разделительная линия из первого набора разделительных линий является по меньшей мере одной исходной разделительной линией из первого набора разделительных линий, и способ дополнительно включает в себя: измерение множества углов между не являющимися последовательными пересекающими элементами из первого набора пересекающих элементов в пределах фрагментов поверхности, определенных исходными разделительными линиями, и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными не являющимися последовательными пересекающими элементами в пределах фрагмента поверхности, определенного исходными пересекающими линиями, превышает предварительно определенный порог, создание по меньшей мере одной дополнительной разделительной линии из первого набора разделительных линий, причем каждая дополнительная разделительная линия из первого набора разделительных линий расположена в пределах соответствующего интервала, определенного указанными двумя частными не являющимися последовательными пересекающими элементами, для разделения поверхности трехмерного графического объекта на более мелкие фрагменты поверхности.
[0021] В некоторых вариантах осуществления настоящего технического решения каждый угол пересечения между каждым пересекающим элементом и поверхностью трехмерного графического объекта в каждой соответствующей точке пересечения равен 90 градусов.
[0022] В некоторых вариантах осуществления настоящего технического решения указанное определение монотонных фрагментов поверхности дополнительно включает в себя определения немонотонных фрагментов поверхности и, в ответ на то, что по меньшей мере один созданный фрагмент поверхности не является монотонным, процессор дополнительно осуществляет: (i) создание второй эталонной петли, расположенной на поверхности трехмерного графического объекта таким образом, что вторая эталонная петля полностью расположена во второй воображаемой эталонной плоскости, пересекающей трехмерный графический объект; (ii) применение к поверхности трехмерного графического объекта второго набора пересекающих элементов, таким образом, что: (а) пересекающие элементы из второго набора пересекающих элементов пересекают вторую эталонную петлю в соответствующих точках пересечения в предварительно определенных интервалах, (b) каждый пересекающий элемент из второго набора пересекающих элементов пересекает вторую эталонную петлю в каждой соответствующей точке пересечения под одинаковым углом пересечения, и (с) каждый пересекающий элемент из второго набора пересекающих элементов перпендикулярен второй воображаемой эталонной плоскости; (iii) измерение множества углов между пересекающими элементами из второго набора пересекающих элементов и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными пересекающими элементами из второго набора пересекающих элементов превышает предварительно определенный порог, создание второго набора разделительных линий, причем второй набор разделительных линий включает в себя по меньшей мере одну разделительную линию, и каждая разделительная линия из второго набора разделительных линий расположена в пределах соответствующего интервала, определенного указанными двумя частными пересекающими элементами, чтобы разделить поверхность трехмерного графического объекта на фрагменты поверхности; (iv) определение монотонных фрагментов поверхности среди заново созданных более мелких фрагментов поверхностей, образованных из немонотонных фрагментов; (v) в ответ на определение по меньшей мере одного заново созданного более мелкого монотонного фрагмента поверхности, создание карты высот для определенного по меньшей мере одного заново созданного более мелкого монотонного фрагмента поверхности.
[0023] В некоторых вариантах осуществления настоящего технического решения создание карты высот для каждого монотонного фрагмента поверхности дополнительно включает в себя: (i) создание баз для каждого из по меньшей мере одного созданного монотонного фрагмента поверхности для того, чтобы были проекции на каждую базу от каждого фрагмента поверхности соответственно, и сохранение координат баз; (ii) проецирование высот с каждого из по меньшей мере одного фрагмента поверхности на его соответствующую базу, причем указанное проецирование выполняется с предварительно определенным шагом высот, в предварительно определенном порядке проецирования высот; (iii) определение значений высот, причем каждое значение высоты представляет расстояние между соответствующей базой и соответствующей точкой на соответствующем монотонном фрагменте поверхности, и значения высот нужны для создания карт высот монотонных фрагментов поверхности; (iv) сохранение данных для отрисовки монотонного фрагмента поверхности как совокупности: координат баз, шага высот, предварительно определенного порядка проецирования высот, и последовательности значений высот в связи с соответствующей базой.
[0024] В некоторых вариантах осуществления настоящего технического решения создание базы выполняется проведением проекции к плоской поверхности, и база является частью плоской поверхности, определенной указанной проекцией.
[0025] В некоторых вариантах осуществления настоящего технического решения значения высот являются по меньшей мере либо положительным значением, либо нулевым значением, либо отрицательным значением.
[0026] В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данного технического решения. В контексте настоящего технического решения использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами; оба варианта включены в выражение «по меньшей мере один сервер».
[0027] В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, на котором хранится или используется информация, хранящаяся в базе данных, или же база данных может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
[0028] В контексте настоящего описания, если конкретно не указано иное, выражение «трехмерный графический объект» подразумевает под собой любой трехмерный графический объект, который может быть отображен на экране компьютера (или другими средствами визуального вывода). Трехмерные графические объекты могут быть любыми трехмерными графическими объектами, включая плоские объекты, линейные объекты и другие объекты. Трехмерные графические объекты могут иметь любую форму. Поверхности трехмерных графических объектов могут быть плоскими или искривленными поверхностями, или их комбинацией, в зависимости от трехмерного графического объекта.
[0029] В контексте настоящего описания, если конкретно не указано иное, термин «координаты» подразумевает под собой любые системы координат, подходящие для определения положения в пространстве. Координаты могут определять положение точек, линий, поверхностей с помощью подходящих систем координат. Системы отсчета могут являться, например, числами и/или любыми другими символами, которые используются для определения расположения точки, линии, поверхности в пространстве данного измерения относительно системы линий (осей) или в других неподвижных системах отсчета.
[0030] В контексте настоящего описания, если конкретно не указано иное, выражение «стандартные координаты» подразумевает любые стандартные координаты - например, декартовы координаты, полярные координаты относительно расположения наблюдателя, и другие координаты, известные в данной области техники, кроме координат, сохраненных как карта высот. Координаты карт высот, даже те, что известны в данной области техники, конкретно упоминаются как карты высот.
[0031] В контексте настоящего описания, если конкретно не указано иное, поверхность трехмерного графического объекта называется «монотонной» по отношению к плоской поверхности («базе»), если каждая воображаемая линия («высота»), спроецированная с плоской поверхности («базы») на поверхность трехмерного графического объекта, пересекающая поверхность трехмерного графического объекта, и являющаяся ортогональной к базе, пересекает поверхность трехмерного графического объекта только один раз. «Монотонная поверхность» может быть искривленной или плоской поверхностью. Например, любая плоская поверхность, не являющаяся перпендикулярной базе, является монотонной поверхностью по отношению к этой базе. В качестве другого примера, не ограничивающего объем настоящего технического решения, северная или южная полусферическая оболочка, не обладающая толщиной, является монотонной по отношению к расположенной горизонтально базе.
[0032] В контексте настоящего описания, если конкретно не указано иное, поверхность называется «монотонной» по отношению к базе, если по меньшей мере одна высота, спроецированная с плоской поверхности («базы») на поверхность трехмерного графического объекта, являющаяся ортогональной к базе, пересекает поверхность трехмерного графического объекта больше, чем один раз. «Немонотонная поверхность» может быть искривленной или плоской поверхностью. В качестве примера, не ограничивающего объем настоящего технического решения, поверхность шара является немонотонной по отношению к любой базе. В качестве другого примера, не ограничивающего объем настоящего технического решения, северная или южная полусферическая оболочка, не обладающая толщиной, является немонотонной по отношению к расположенной вертикально базе. В качестве другого примера, не ограничивающего объем настоящего технического решения, любая плоская поверхность, перпендикулярная базе, является немонотонной поверхностью по отношению к этой базе.
[0033] В контексте настоящего описания, если конкретно не указано иное, термин «пересекающий элемент» подразумевает плоскую поверхность, которая пересекает поверхность трехмерного графического объекта.
[0034] В контексте настоящего описания, если конкретно не указано иное, термин «угол» означает угол наклона между двумя линиями и плоскостями, или между их воображаемыми продолжениями. В контексте настоящего описания некоторые линии или плоскости могут быть параллельными, и, следовательно, угол наклона между ними может быть нулевым. Принимая это во внимание, в контексте настоящего описания, когда две линии или плоскости параллельны, угол рассматривается как существующий и равный нулю градусов. Термин «угол» включает в себя также криволинейные углы.
[0035] В контексте настоящего описания выражение «криволинейный угол» означает, если конкретно не указано иное, угол между плоской поверхностью и искривленной поверхностью, который определяется как угол между векторами, пересекающими плоскую поверхность и искривленную поверхность в конкретной точке, причем конкретная точка выбирается в пределах линии пересечения, а линия пересечения является линией, по которой пересекаются две поверхности (плоская и искривленная). «Криволинейный угол» также может быть углом между прямой линией и кривой линией, который определяется как угол между этой прямой линией и касательной к кривой линии в точке пересечения.
[0036] В контексте настоящего описания, если конкретно не указано иное, термин «градус» означает 1/360 оборота, и один оборот равен 360 градусов (360°).
[0037] В контексте настоящего описания, если конкретно не указано иное, «информация» включает в себя любую информацию любого типа, включая информацию, которую можно хранить в базе данных. Таким образом, информация включает в себя, среди прочего, данные (картографические данные, данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
[0038] В контексте настоящего описания, если конкретно не указано иное, слово «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
[0039] В контексте настоящего описания, если конкретно не указано иное, термин «носитель информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
[0040] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной взаимосвязи между этими существительными. Так, например, следует иметь в виду, что использование терминов «первая поверхность» и «третья поверхность» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) поверхностей/между поверхностями, равно как и их использование (само по себе) не предполагает, что некая «вторая поверхность» обязательно должна существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» элемент и «второй» элемент могут являться одним и тем же элементом, а в других случаях они могут являться разными элементами.
[0041] Каждый вариант осуществления настоящего технического решения преследует по меньшей мере одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты данного технического решения, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять и другим целям, отдельно не указанным здесь.
[0042] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящего технического решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
Краткое описание чертежей
[0043] Для лучшего понимания настоящего технического решения, а также других его аспектов и характерных черт, сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[0044] На Фиг. 1 представлена принципиальная схема системы, выполненной в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0045] На Фиг. 2 представлен не ограничивающий объем настоящего технического решения пример первой эталонной петли, причем первая эталонная петля была создана вокруг поверхности трехмерного графического объекта, и первая эталонная петля была создана в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0046] На Фиг. 3 представлен не ограничивающий объем настоящего технического решения пример вида сверху трехмерного графического объекта, изображенного на Фиг. 2.
[0047] На Фиг. 4 представлен альтернативный пример трехмерного графического объекта, координатных осей и первой эталонной петли, реализованных в соответствии с вариантами осуществления настоящего технического решения и, не ограничивающими его объем.
[0048] На Фиг. 5 представлен трехмерный графический объект, изображенный на Фиг. 4, и первая воображаемая эталонная плоскость, реализованные в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0049] На Фиг. 6 представлены видимые и невидимые части трехмерного графического объекта, изображенного на Фиг. 4, трех пересекающих элементов из первого набора пересекающих элементов, и углы между каждым пересекающим элементом из первого набора пересекающих элементов и поверхностью трехмерного графического объекта, изображенного на Фиг. 4, реализованные в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0050] На Фиг. 7 представлены видимые части трехмерного графического объекта, изображенный на Фиг. 4, и три пересекающих элемента из первого набора пересекающих элементов, реализованные в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0051] На Фиг. 8 представлены видимые части трехмерного графического объекта, изображенный на Фиг. 4, три пересекающих элемента из первого набора пересекающих элементов, и углы между пересекающими элементами из первого набора пересекающих элементов, реализованные в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0052] На Фиг. 9 представлены видимые части трехмерного графического объекта, изображенный на Фиг. 4, три пересекающих элемента из первого набора пересекающих элементов, вторая эталонная петля, и три пересекающих элемента из второго набора пересекающих элементов, реализованные в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0053] На Фиг. 10 представлен способ измерения углов между двумя пересекающими элементами, не ограничивающий объем настоящего технического решения, причем измерения проводятся в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0054] На Фиг. 11 представлена блок-схема способа сохранения данных для отрисовки трехмерного графического объекта с Фиг. 4, причем трехмерный графический объект имеет немонотонную поверхность, определенную своими стандартными координатами, и способ является примером настоящего технического решения, не ограничивающим его объем.
Осуществление
Технический обзор
[0055] Поверхности трехмерных графических объектов могут храниться в стандартной системе координат, но способы хранения, требующие меньших затрат памяти, дают различные технические преимущества. Среди таких преимуществ может быть упомянуто, например, снижение количества транзакций машиночитаемого носителя информации, снижение трафика в сети передачи данных, и другие. Задачей предлагаемого технического решения является минимизация по меньшей мере некоторых недостатков, присущих известному уровню техники.
[0056] Для быстрого ввода в курс предлагаемого технического решения будут описаны Фиг. 2 и Фиг. 3. На Фиг. 2 показан вертикальный боковой вид поверхности трехмерного графического объекта 200, в этом примере являющегося яблоком. На Фиг. 3 представлен вид сверху трехмерного графического объекта 200, изображенного на Фиг. 2.
[0057] В некоторых вариантах осуществления настоящего технического решения предлагается способ сохранения координат как карт высот для отрисовки трехмерного графического объекта 200, причем трехмерный графический объект 200 имеет немонотонную поверхность. Машиночитаемые инструкции, сохраненные на носителе информации компьютерного устройства, могут инициировать создание процессором электронного устройства на основе стандартных координат, поверхности трехмерного графического объекта 200. Для сохранения с использованием системы хранения карт высот поверхность трехмерного графического объекта 200 должна быть монотонной, или должен быть найдет способ разделения немонотонной поверхности на монотонные фрагменты. В этом примере трехмерный графический объект 200 (яблоко) имеет немонотонную поверхность. Следовательно, компьютерное устройство должно разделить немонотонную поверхность на множество монотонных фрагментов.
[0058] В общем случае, поверхность, имеющая ряд крутых изгибов, скорее всего, является немонотонной. Напротив, относительно плоский фрагмент без крутых изгибов, скорее всего, является монотонным. Определяются области поверхности, имеющие крутые изгибы, чтобы разделить поверхность на эти области вдоль «разделительных линий». Следует иметь в виду, что поверхность трехмерного графического объекта может искривляться в различных направлениях. Например, поверхность черенка яблока (не изображена) искривляется в одном направлении (вокруг оси), но может быть относительно прямой в другом направлении (идет прямо вверх). Следовательно, проведение разделительных линий в одном направлении (первого набора разделительных линий) может быть недостаточным для некоторых трехмерных графических объектов, и, дополнительно, может существовать необходимость провести разделительные линии в другом направлении (второй набор разделительных линий). Возможно и то, что будет необходимость в проведении третьего, четвертого и т.д. наборов разделительных линий.
[0059] Для определения областей, имеющих крутые изгибы и для создания первого набора разделительных линий, на поверхность в определенном порядке могут быть применены несколько разделительных элементов (первый набор разделительных элементов). Перед применением первого набора разделительных элементов может быть необходимо осуществление нескольких процедур.
[0060] Сначала может быть создана первая эталонная петля 202, изображенная на Фиг. 2 и Фиг. 3, таким образом, что трехмерный графический объект 200 как бы рассекается плоской поверхностью («первая воображаемая эталонная плоскость») и первая эталонная петля 202 как бы принимает вид «секущей» линии на поверхности трехмерного графического объекта 200, будто яблоко было разрезано ножом (или первой воображаемой эталонной плоскостью). Затем поверхность трехмерного графического объекта 200 может быть пересечена первым набором пересекающих элементов (например, пересекающими плоскими поверхностями) таким образом, что каждый пересекающий элемент пересекает линию, причем линия является касательной к первой эталонной петле 202, под одинаковыми углами (например, под углами 90 градусов), и таким образом, что расстояние между точками пересечения пересекающих элементов и первой эталонной петли 202 одинаково или в основном одинаково. Такое пересечение имеет по меньшей мере два результата. Первый результат: когда пересекающий элемент 204 пересекает поверхность трехмерного графического объекта 200, создаются пересекающие линии 206 на поверхности трехмерного графического объекта 200. Пересекающие линии 206 могут в некоторых вариантах осуществления настоящего технического решения совпадать с разделительными линиями, которые будут описаны позже. Второй результат: пересекающие элементы 204 могут пересекаться друг с другом, образуя углы 208 между пересекающими элементами. Эти углы 208 являются указателями характера поверхности (прямая поверхность, поверхность с крутыми изгибами, поверхность с небольшими изгибами).
[0061] Затем углы между этими пересекающими элементами 204 могут быть измерены.
[0062] Сначала могут быть измерены углы 208 между последовательными пересекающими элементами 204. Когда угол между последовательными пересекающими элементами 204 является нулевым углом, последовательные пересекающие элементы 204 параллельны. Когда последовательные пересекающие элементы 204 параллельны, поверхность не искривляется в направлении первой эталонной петли 202. Если поверхность не искривляется в направлении первой эталонной петли 202, нет необходимости в разделении между соответствующими последовательными пересекающими линиями 206.
[0063] Когда угол не является крутым, этот факт становится указателем того, что поверхность слегка искривляется в направлении первой эталонной петли 202. В этом случае процессор не будет создавать разделительные линии между соответствующими последовательными пересекающими линиями 206. Угол не является крутым, когда он не превышает предварительно определенный порог (например, 32 градуса).
[0064] Например, когда угол становится больше (более конкретно, когда он превышает предварительно определенное пороговое значение), этот факт указывает, что поверхность круто искривляется вдоль первой эталонной петли 202, и, следовательно, поверхность в этой области должна быть разделена таким образом, что разделительная линия проходит где-то в пределах интервала, определенного двумя соответствующими пересекающими линиями 206 и пересекает первую эталонную петлю 202. Точное положение разделительной линии в пределах интервала не является важным и может быть выбрано произвольно. В итоге может быть создана разделительная линия. В некоторых вариантах осуществления настоящего технического решения разделительная линия может совпадать с одной их этих двух соответствующих пересекающих линий 206, а в других вариантах осуществления настоящего технического решения она может быть расположена где-то между этими соответствующими пересекающими линиями 206.
[0065] Способ может повторять измерение углов 208 между последовательными пересекающими элементами 204, раз за разом, создавая дополнительные разделительные линии. Далее, способ может измерять углы между не являющимися последовательными пересекающими элементами 204, но в пределах интервалов, определенных ранее созданными разделительными линиями, пока не останется углов (не пронумерованы), превышающих предварительно определенное пороговое значение в пределах любой области, расположенной между каждыми двумя последовательными разделительными линиями.
[0066] Вычислительное устройство может затем проверить, являются ли все созданные фрагменты, разделенные разделительными линиями, монотонными. Если да, то вычислительное устройство может создать карты высот для всех созданных сегментов, как будет описано подробнее ниже. Если нет, то вычислительное устройство может создать карты высот только для каждого монотонного фрагмента, а затем продолжить способ следующим образом.
[0067] Далее может быть создана вторая эталонная петля (не изображена) таким образом, как будто трехмерный графический объект 200 был рассечен второй воображаемой эталонной плоскостью (не изображена), перпендикулярной первой воображаемой эталонной плоскостью, и вторая эталонная петля принимает вид второй секущей линии. Следует отметить, что вторая воображаемая эталонная плоскость не обязательно должна быть перпендикулярной первой воображаемой эталонной петле: первая и вторая воображаемая эталонные плоскости могут пересекаться под разными углами.
[0068] Затем, когда создана вторая эталонная петля, поверхность трехмерного графического объекта 200 может быть пересечена вторым набором пересекающих элементов (не изображены) таким образом, что каждый пересекающий элемент пересекает линию, причем линия является касательной ко второй эталонной петле, под одинаковыми углами, и таким образом, что расстояние между точками пересечения пересекающих элементов и второй эталонной петли одинаково или в основном одинаково. Затем углы между этими пересекающими элементами могут быть измерены. Аналогично описанному выше, когда углы между этими пересекающими элементами превышают предварительно определенное пороговое значение, поверхность между этими пересекающими элементами должна быть разделена. В итоге для создания монотонных фрагментов поверхности может быть создан второй набор разделительных линий. Фрагменты могут быть определены разделительными линиями, созданными в течение любой стадии этого способа (т.е. пересечением разделительных линий и первого и второго наборов разделительных линий). Вычислительное устройство может затем проверить, являются ли монотонными заново созданные более мелкие фрагменты, определенные этими разделительными линиями и образованные из немонотонных фрагментов. Если да, то вычислительное устройство может создавать карты высот для всех этих заново созданных более мелких монотонных сегментов. Если нет, то вычислительное устройство может создать карты высот только для каждого монотонного фрагмента.
Система
[0069] На Фиг. 1 представлена схема системы 100, выполненная в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем. Важно иметь в виду, что нижеследующее описание системы 100 представляет собой описание показательных вариантов осуществления настоящего технического решения. Таким образом, все последующее описание представлено только как описание показательного примера настоящего технического решения. Это описание не предназначено для определения объема или установления границ настоящего технического решения. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящего технического решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящего технического решения. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящего технического решения, и в подобных случаях этот вариант представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящего технического решения будут обладать гораздо большей сложностью.
[0070] Система 100 включает в себя компьютерное устройство 102, являющееся сервером 102. Сервер 102 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящего технического решения, сервер 102 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 102 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящего технического решения, не ограничивающем его объем, сервер 102 является одиночным сервером. В других вариантах осуществления настоящего технического решения, не ограничивающих его объем, функциональность сервера 102 может быть разделена и может выполняться с помощью нескольких серверов.
[0071] В некоторых вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением поставщика картографических сервисов, такого, например, как поставщик сервиса Яндекс.Карты (Yandex.Maps™). В альтернативных вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением поставщика таких сервисов, как сервисы компьютерных игр, сервисы графического дизайна и других сервисов, имеющих отношение к компьютерной графике.
[0072] Сервер 102 включает в себя носитель 104 информации, который может использоваться сервером 102. В общем случае носитель 104 информации может быть выполнен как носитель любого характера и вида, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д. а также их комбинацию.
[0073] Варианты осуществления сервера 102 хорошо известны. Таким образом, достаточно отметить, что сервер 102 включает в себя, среди прочего, интерфейс сетевой передачи данных (например, модем, сетевую карту и тому подобное) для двусторонней связи по сети передачи данных (не изображена); и процессор 108, соединенный с интерфейсом сетевой передачи данных и носителем 104 информации, причем процессор 108 выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор 108 может иметь доступ к машиночитаемым инструкциям, хранящимся на носителе 104 информации, выполнение которых инициирует реализацию процессором 108 различных описанных здесь процедур.
[0074] В некоторых вариантах осуществления настоящего технического решения, не ограничивающих его объем, сеть передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения сеть передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.
[0075] Носитель 104 информации выполнен с возможностью хранить данные, включая машиночитаемые инструкции и другие данные, включая любого типа координаты поверхностей графических объектов. В некоторых вариантах осуществления настоящего технического решения носитель 104 информации может хранить по меньшей мере часть данных в базе данных 106. В других вариантах осуществления настоящего технического решения носитель 104 информации может хранить по меньшей мере часть данных в любом наборе данных, который отличается от базы данных.
[0076] Данные, сохраненные на носителе 104 информации (и, более конкретно, по меньшей мере частично, в некоторых вариантах осуществления настоящего технического решения, в базе данных 106) могут включать в себя стандартные координаты для отрисовки трехмерных графических объектов. Трехмерные графические объекты могут быть трехмерными графическими объектами любого типа.
[0077] Поверхности трехмерных графических объектов определяют их контуры. Поверхности трехмерных пространственных объектов могут быть плоскими и/или искривленными поверхностями. Искривленные поверхности могут быть правильной геометрической формы (например, куб, шар) и/или неправильной геометрической формы (яблоко).
[0078] Поверхности трехмерных графических объектов могут быть определены стандартными координатами. Примером стандартной системы координат является декартова система координат. Другим примером стандартной системы координат, не ограничивающим объем настоящего технического решения, являются, например, полярные координаты относительно расположения наблюдателя.
[0079] Трехмерные графические объекты могут быть монотонными или немонотонными. Трехмерный графический объект является монотонным по отношению к прямой плоскости (базе), если каждая линия («высота»), ортогональная к базе, пересекает поверхность трехмерного графического объекта только один раз. Трехмерный графический объект является немонотонным по отношению к прямой плоскости (базе), если по меньшей мере одна линия, ортогональная к базе, пересекает поверхность трехмерного графического объекта по меньшей мере два раза.
[0080] На Фиг. 4 изображен неограничивающий пример трехмерного графического объекта 200. Трехмерный графический объект 200 является трехмерным графическим объектом неправильной формы. Координаты поверхностей трехмерного графического объекта 200 могут быть определены на основе декартовой системы координат. Декартова система координат является системой координат, которая определяет каждую точку в трехмерном пространстве с помощью трех численных координат, которые являются расстояниями знаковой величины от точки до трех фиксированных перпендикулярных направленных линий, Y-оси (не пронумерована), Х-оси (не пронумерована), и Z-оси (не пронумерована), причем это расстояние измеряется в одинаковых единицах длины. Термин «расстояния знаковой величины» означает, что каждое ненулевое вещественное число может быть либо положительным, либо отрицательным. Оси называются координатными осями или просто осями в системе, и точка 408, где все оси сходятся, может быть указана как обладающая следующими координатами: (0;0;0).
[0081] Трехмерный графический объект 200, изображенный на Фиг. 4, является немонотонным по отношению к поверхности, определенной осями YZ: если спроецировать высоту от поверхности, определенной осями YZ, в точку 402 на поверхности трехмерного графического объекта 200, высота также пересечет поверхность трехмерного графического объекта 200 в точке 404.
[0082] Трехмерный графический объект 200 является немонотонным по отношению к любой другой поверхности, включая поверхности, определенные осями XY и XZ, по той же самой причине: как можно видеть на Фиг. 4, по меньшей мере некоторые высоты (не изображены), которые могут быть спроецированы с любой плоской поверхности, включая поверхности, определенные осями XY и XZ, могут пересекать поверхность трехмерного графического объекта 200 более чем в одной точке.
[0083] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют извлечение процессором 108 стандартных координат трехмерного графического объекта и, на основе этих координат, создание поверхности трехмерного графического объекта. Например, процессор 108 может извлекать стандартные координаты трехмерного графического объекта 200 и, на основе координат, создавать поверхность трехмерного графического объекта 200, как показано на Фиг. 4.
[0084] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют создание процессором 108 воображаемой первой эталонной плоскости 502, изображенной на Фиг. 5, которая, в свою очередь, определяет первую эталонную петлю 410, изображенную на Фиг. 4, на которой воображаемая первая эталонная плоскость 502 пересекается с поверхностью трехмерного графического объекта 200. Другими словами, процессор 108 создает первую эталонную петлю 410 таким образом, что она полностью расположена на поверхности трехмерного графического объекта 200 в пределах воображаемой первой эталонной плоскости 502, как изображено на Фиг. 5.
[0085] В некоторых вариантах осуществления настоящего технического решения для создания первой эталонной петли 410 процессор 108 может определить две наиболее удаленные точки 402, 404 на поверхности трехмерного графического объекта 200, а затем создать первую воображаемую эталонную плоскость 502, которая включает в себя воображаемую первую осевую линию 406, соединяющую эти две наиболее удаленные точки 402, 404. Линия пересечения между поверхностью трехмерного объекта 200 и первой воображаемой эталонной плоскостью 502 является первой эталонной петлей 410.
[0086] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют создание процессором 108 второй эталонной петли 902, изображенной на Фиг. 9. Вторая эталонная петля 902 также является линией, которая расположена на поверхности трехмерного графического объекта 200. Процессор 108 создает вторую эталонную петлю 902 таким образом, что она полностью расположена в пределах второй воображаемой эталонной плоскости (не изображена), которая не совпадает с первой воображаемой эталонной плоскостью 502.
[0087] В некоторых вариантах осуществления настоящего технического решения, не ограничивающих его объем, для создания второй эталонной петли 902 процессор 108 может создавать вторую воображаемую эталонную плоскость, которая включает в себя первую осевую линию 406, и является ортогональной к первой воображаемой эталонной плоскости 502. Затем линия пересечения между поверхностью трехмерного объекта 200 и второй воображаемой эталонной плоскостью может быть выбрана как вторая эталонная петля 902.
[0088] В других вариантах осуществления настоящего технического решения, не ограничивающих его объем, для создания второй эталонной петли 902 процессор 108 может определить точку (не изображена), расположенную в середине первой осевой линии 406 между точками 402 и 404. Затем процессор может создавать воображаемую вторую осевую линию (не изображена) как линию, перпендикулярную первой осевой линии 406 в этой точке. Затем процессор может создавать вторую воображаемую плоскость, которая включает в себя вторую осевую линию, и которая является ортогональной первой воображаемой эталонной плоскости 502. Затем линия пересечения между поверхностью трехмерного объекта 200 и второй воображаемой эталонной плоскостью может быть выбрана как вторая эталонная петля 902.
[0089] В других альтернативных вариантах осуществления настоящего технического решения, не ограничивающих его объем, процессор 108 может создать вторую эталонную петлю 902 любым другим способом, при условии, что первая эталонная петля 410 и вторая эталонная петля 902 пересекают друг друга.
[0090] В других альтернативных вариантах осуществления настоящего технического решения процессор 108 может создать вторую эталонную петлю 902 любым другим способом, при условии, что первая эталонная петля 410 и вторая эталонная петля 902 не совпадают.
[0091] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют применение процессором 108 к поверхности трехмерного графического объекта 200 первого набора пересекающих элементов 610, 620, 630 таким образом, что пересекающие элемента 610, 620, 630 из первого набора пересекающих элементов пересекают первую эталонную петлю 410 в соответствующих точках 612, 622, 632 пересечения в предварительно определенных интервалах, как изображено на Фиг. 6. Предварительно определенный интервал может выражаться в пикселях (например, 4 пикселя). Однако предварительно определенный интервал может выражаться в любой другой подходящей системе мер.
[0092] Пересекающие элементы могут быть пересекающими плоскостями. На Фиг. 6 пересекающие элементы 610, 620, 630 являются пересекающими плоскостями 610, 620, 630. Как изображено на Фиг. 6, в результате пересечения поверхности трехмерного цифрового объекта 200 пересекающими плоскостями 610, 620, 630, создаются пересекающие линии 616, 626, 636.
[0093] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют применение процессором 108 к поверхности трехмерного графического объекта 200 второго набора пересекающих элементов 910, 920, 930 таким образом, что пересекающие элементы 910, 920, 930 из второго набора пересекающих элементов пересекают вторую эталонную петлю 902 в соответствующих точках 912, 922, 932 пересечения в предварительно определенных интервалах, как изображено на Фиг. 9. Предварительно определенный интервал может выражаться в пикселях (например, пикселя). Однако предварительно определенный интервал может выражаться в любой другой подходящей системе мер.
[0094] Интервал может быть предварительно определен процессором 108. В некоторых вариантах осуществления настоящего технического решения интервалы могут быть предварительно определены отдельно для различных типов трехмерных графических объектов. В некоторых вариантах осуществления настоящего технического решения интервалы могут быть предварительно определены отдельно для различных наборов пересекающих элементов, пересекающих различные эталонные петли того же самого трехмерного графического объекта. В некоторых вариантах осуществления настоящего технического решения интервалы могут быть предварительно определены с учетом одного или нескольких фактов, например, длины соответствующей эталонной петли, природы трехмерного графического объекта 200 и других.
[0095] Например, процессор 108 может определить интервалы отдельно для первого набора пересекающих элементов 610, 620, 630, и отдельно для второго набора пересекающих элементов 910, 920, 930 для того, чтобы сделать интервалы равными 1/400 длины соответствующей эталонной петли соответствующего трехмерного графического объекта 200.
[0096] В некоторых вариантах осуществления настоящего технического решения предварительно определенные интервалы могут быть настроены в зависимости от характеристик поверхности используемого трехмерного графического объекта. Например, некоторые вычислительные устройства 102 могут быть специализированы на обработке конкретного типа трехмерных графических объектов, например, больших трехмерных графических объектов, обладающих, в основном, правильной геометрической формой. В таком случае может быть установлен более крупный предварительно определенный интервал, чем в случае, когда вычислительное устройство 102 специализировано на работе с менее крупными трехмерными объектами неправильной формы.
[0097] Процессор 108 может применять к поверхности трехмерного графического объекта 200 один или несколько наборов пересекающих элементов таким образом, что каждый пересекающий элемент из частного набора пересекающих элементов пересекает свою эталонную петлю в каждой соответствующей точке пересечения под одинаковым углом пересечения. Например, процессор 108 может применить к поверхности трехмерного графического объекта 200 первый набор пересекающих элементов 610, 620, 630 таким образом, что каждый пересекающий элемент 610, 620, 630 из первого набора пересекающих элементов пересекает первую эталонную петлю 410 в каждой соответствующей точке 612, 622, 632 пересечения под одинаковым углом 614, 624, 634 пересечения. Углы 614, 624, 634 пересечения могут быть в диапазоне между нулем градусов и 180 градусами. На Фиг. 6 каждый из углов 614, 624, 634 пересечения составляет 90 градусов. Аналогично, процессор 108 может применить к поверхности трехмерного графического объекта 200 второй набор пересекающих элементов 910, 920, 930 таким образом, что каждый пересекающий элемент 910, 920, 930 из второго набора пересекающих элементов пересекает первую эталонную петлю 902 в каждой соответствующей точке 912, 922, 932 пересечения под одинаковым углом пересечения (не пронумеровано). Углы пересечения могут быть в диапазоне между нулем градусов и 180 градусами. На Фиг. 9 каждый из углов пересечения составляет 90 градусов.
[0098] Процессор 108 может применить каждый пересекающий элемент таким образом, что пересекающий элемент из соответствующего набора пересекающих элементов пересекает соответствующую эталонную петлю в каждой соответствующей точке пересечения под одинаковым углом пересечения, причем каждый пересекающий элемент из этого соответствующего набора пересекающих элементов является перпендикулярным соответствующей воображаемой эталонной плоскости. Например, процессор 108 может применить к поверхности трехмерного графического объекта 200 первый набор пересекающих элементов 610, 620, 630 таким образом, что каждый пересекающий элемент 610, 620, 630 из первого набора пересекающих элементов пересекает первую эталонную петлю 410 в каждой соответствующей точке 612, 622, 632 пересечения под одинаковым углом 614, 624, 634 пересечения, который составляет 90 градусов, причем каждый пересекающий элемент 610, 620, 630 из первого набора пересекающих элементов является перпендикулярным первой воображаемой эталонной плоскости 502 (т.е. пересекает ее также под углом 90 градусов). Кроме того, процессор 108 может применить к поверхности трехмерного графического объекта 200 второй набор пересекающих элементов 910, 920, 930 таким образом, что каждый пересекающий элемент 910, 920, 930 из второго набора пересекающих элементов пересекает вторую эталонную петлю 902 под одинаковым углом в 90 градусов, и является перпендикулярным второй воображаемой эталонной плоскости, которая включает в себя вторую эталонную петлю 902, изображенную на Фиг. 9.
[0099] Углы между пересекающими элементами могут различаться из-за того факта, что каждый пересекающий элемент из частного набора пересекающих элементов пересекает соответствующую эталонную петлю (т.е. поверхность трехмерного графического объекта 200) под одинаковым углом (например, 90 градусов), но соответствующая эталонная петля искривляется (т.е. сама поверхность вдоль соответствующей эталонной петли искривляется). Вследствие этого угол является острым в случае, когда поверхность слегка искривлена, и угол становится больше в областях, где поверхность искривляется более круто. На плоских фрагментах (если они присутствуют) поверхности, пересекающие элементы, будут параллельными (нулевой угол между пересекающими элементами). Таким образом, если любые два данных пересекающих элемента параллельны, это дает указание на то, что фрагмент поверхности между этими двумя пересекающими элементами является плоской поверхностью (в направлении вдоль соответствующей эталонной петли). Угол в один градус между пересекающими элементами указывает на то, что фрагмент поверхности между этими двумя пересекающими элементами искривляется слегка, так, что это почти незаметно. Угол в 90 градусов между пересекающими элементами указывает на то, что фрагмент поверхности между этими двумя пересекающими элементами поворачивает на 90 градусов.
[00100] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют измерение процессором 108 множества углов между пересекающими элементами из частного набора пересекающих элементов. Процессор 108 может измерить все углы между каждыми двумя последовательными пересекающими элементами из соответствующего набора пересекающих элементов, т.е. между соответствующими парами пересекающих элементов. Процессор 108 может измерить углы между не являющимися последовательными пересекающими элементами. В некоторых вариантах осуществления настоящего технического решения пересекающие элементы являются пересекающими плоскостями, а измерение углов между пересекающими элементами является измерением углов между нормалями (векторами нормалей) соответствующих пересекающих плоскостей.
[00101] Например, носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют измерение процессором 108 множества углов между пересекающими элементами 610, 620, 630 из первого набора пересекающих элементов, причем все пересекающие элементы 610, 620, 630 из первого набора пересекающих элементов являются пересекающими плоскостями 610, 620, 630. Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, дополнительно инициируют измерение процессором 108 угла 802 между парой последовательных пересекающих элементов 610 и 620 и измерение угла 804 между парой последовательных пересекающих элементов 620 и 630. Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, дополнительно инициируют измерение процессором 108 угла 806 между парой не являющихся последовательными пересекающих элементов 610 и 630. Измерение углов между пересекающими элементами 610 и 620 может быть осуществлено, например, с помощью измерения угла между вектором 1002 нормали («нормалью») к пересекающему элементу 610 и вектором 1004 нормали («нормалью») к пересекающему элементу 620, как изображено на Фиг. 10.
[00102] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют создание процессором 108 одной разделительной линии в ответ на то, что один угол из множества углов между двумя частными пересекающими элементами из этого частного набора пересекающих элементов превышает предварительно определенный порог. Аналогично, процессор 108 может, в ответ на то, что два или несколько из множества углов между соответствующими пересекающими элементами из этого частного набора пересекающих элементов превышают предварительно определенный порог, создать две или несколько разделительных линий. Разделительные линии, созданные в результате измерения углов между пересекающими элементами из частного набора пересекающих элементов, составляют частный набор разделительных линий (первый набор разделительных линий, второй набор разделительных линий, и т.д.).
[00103] Как было упомянуто выше, набор разделительных линий может включать в себя одну или несколько разделительных линий. Разделительные линии являются линиями, созданными для того, чтобы служить границами фрагментов поверхности трехмерного графического объекта 200. Разделительные линии могут быть созданы следующим образом. Сначала разделительные линии из частного набора разделительных линий могут быть созданы таким образом, что каждая разделительная линия расположена в пределах интервалов, определенных соответствующими двумя последовательными пересекающими элементами, угол между которыми превышает предварительно определенный порог. Таким образом созданные разделительные линии разделяют поверхность трехмерного графического объекта на пространственные сегменты. Затем углы между не являющимися последовательными элементами, размещенными между созданными последовательными разделительными линиями, могут быть измерены и, в ответ на то, что угол между соответствующими двумя не являющимися последовательными пересекающими элементами превышает предварительно определенное значение, может быть создана дополнительная разделительная линия в том же наборе разделительных линий. В результате создания дополнительных разделительных линий из одного и того же набора разделительных линий, может быть создано еще два фрагмента поверхности (два «дочерних» фрагмента поверхности «родительского» фрагмента поверхности). Затем измерение углов между не являющимися последовательными элементами, размещенными между последовательными разделительными линиями из того же набора разделительных линий, и создание новых разделительных линий в том же наборе разделительных линий может быть повторено снова и снова, пока не останется углов, превышающих предварительно определенный порог между любыми двумя пересекающими элементами из одного и того же набора пересекающих элементов, причем два пересекающих элемента расположены в пространстве между любыми двумя последовательными разделительными линиями из одного и того же набора разделительных линий. Другими словами, измерение множества углов между пересекающими элементами из первого набора пересекающих элементов и создание по меньшей мере одной разделительной линии из первого набора разделительных линий может быть осуществлено последовательно и периодически.
[00104] Создание разделительных линий может быть продемонстрировано с использованием примера измерения угла между двумя последовательными пересекающими элементами, причем угол превышает предварительно определенный порог. Например, предварительно определенный порог установлен как 32 градуса. В ответ на то, что угол 802 между пересекающими элементами 610, 620 из первого набора пересекающих элементов превышает предварительно определенный порог в 32 градуса, процессор 108 создает разделительную линию 820. В этом примере разделительная линия 820 совпадает с пересекающей линией 626. Однако разделительная линия не обязательно должна совпадать с пересекающей линией. Разделительная линия может быть расположена между соответствующими двумя пересекающими линиями, созданными углом двух пересекающихся плоскостей, который превышает предварительно определенный порог. Первый набор разделительных линий включает в себя на этот момент одну разделительную линию 820, которая расположена в пределах соответствующего интервала, определенного двумя частными пересекающими элементами 610, 620 для разделения поверхности трехмерного графического объекта 200 на фрагменты поверхности. Аналогично могут быть созданы другие разделительные линии, если будут определены углы между последовательными пересекающими элементами, превышающие предварительно определенный порог. Затем, в пределах каждого фрагмента поверхности, могут быть измерены углы между не являющимися последовательными пересекающими элементами, и, в ответ на то, что углы между двумя не являющимися последовательными пересекающими элементами превышают предварительно определенный порог в 32 градуса, процессор 108 создает дополнительную разделительную линию. Процессор 108 может повторять этот этап до тех пор, пока все углы не станут меньше, чем 32 градуса.
[00105] Разделение поверхности трехмерного графического объекта 200 может привести к созданию монотонных фрагментов поверхности, поскольку искривленные части поверхности могут быть определены с помощью определения крутых углов, и поверхность может быть затем разделена на ряд монотонных фрагментов, пока в каждом фрагменте не будут отсутствовать пересекающие элементы, образующие превышающий порог угол. В итоге полученные фрагменты могут не включать в себя искривления, которые делают фрагмент немонотонным. Однако некоторые из фрагментов поверхности или даже все фрагменты поверхности могут оставаться немонотонными, если поверхность искривляется в другом направлении, не в том, в котором проходит соответствующая эталонная петля (в примере выше это первая эталонная петля 410). Монотонные фрагменты поверхности могут быть сохранены как карта высот, а немонотонные фрагменты поверхности не могут. Следовательно, может существовать необходимость в определении того, привело ли разделение поверхности трехмерного объекта 200 разделительными линиями из первого набора разделительных линий к созданию монотонных фрагментов.
[00106] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют определение процессором 108 (после создания набора разделительных линий) среди созданных фрагментов поверхности (причем созданные фрагменты поверхности определяются разделительными линиями) монотонных фрагментов поверхности и немонотонных. Определение может быть осуществлено любым подходящим способом, например, анализом декартовых координат соответствующего фрагмента поверхности. Созданные фрагменты поверхности могут быть определены либо: (1) одной разделительной линией, либо (2) несколькими разделительными линиями из частного набора разделительных линий, либо (3) несколькими разделительными линиями из различных наборов разделительных линий.
[00107] В качестве иллюстративного примера, не ограничивающего объем настоящего технического решения, созданные фрагменты поверхности могут быть определены одной разделительной линией, когда разделительная линия проходит вокруг поверхности трехмерного графического объекта 200, и таким образом разделят поверхность на две части, как экватор делит поверхность Земли на северное полушарие и южное полушарие. В других иллюстративных примерах, не ограничивающих объем настоящего технического решения, созданные фрагменты поверхности могут быть определены несколькими разделительными линиями из частного набора разделительных линий, например, как в случае, изображенном на Фиг. 3: поверхность яблока может быть разделена на радиальные сегменты. Таким образом, если поверхность яблока была бы разделена разделительными линиями, которые (исключительно с иллюстративными целями) совпадали бы с пересекающими линиями 206, фрагменты поверхности определялись бы этими разделительными линиями 206. В других иллюстративных примерах, не ограничивающих объем настоящего технического решения, созданные фрагменты поверхности могут быть определены несколькими разделительными линиями из разных наборов разделительных линий, например, как в случае, изображенном на Фиг. 9.
[00108] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют создание процессором 108 карты высот, в ответ на определение по меньшей мере одного монотонного фрагмента поверхности, для этого определенного по меньшей мере одного монотонного фрагмента поверхности. Создание карт высот может включать в себя: (i) создание баз для каждого из по меньшей мере одного созданного монотонного фрагмента поверхности для того, чтобы были проекции на каждую базу от каждого фрагмента поверхности соответственно, и сохранение координат баз; (ii) проецирование высот с каждого из по меньшей мере одного фрагмента поверхности на его соответствующую базу, причем указанное проецирование выполняется с предварительно определенным шагом высот, в предварительно определенном порядке проецирования высот; (iii) определение значений высот, причем каждое значение высоты представляет расстояние между соответствующей базой и соответствующей точкой на соответствующем монотонном фрагменте поверхности, и значения высот нужны для создания карт высот монотонных фрагментов поверхности; (iv) сохранение данных для отрисовки монотонного фрагмента поверхности как совокупности: координат баз, шага высот, предварительно определенного порядка проецирования высот, и последовательности значений высот в связи с соответствующей базой.
[00109] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют создание процессором 108 после того, как был создан монотонный фрагмент поверхности, базы для монотонного фрагмента поверхности. В некоторых вариантах осуществления настоящего технического решения машиночитаемые инструкции могут инициировать создание процессором 108 для каждого монотонного фрагмента поверхности его соответствующей базы.
[00110] Создание базы может быть выполнено проведением проекции к плоской поверхности таким образом, что база является частью плоской поверхности, определенной проекцией. Другими словами, база является частью плоской поверхности, определенной проекцией к этой плоской поверхности разделительных линий, причем разделительные линии определяют соответствующий монотонный фрагмент поверхности. Исключительно с целью иллюстрации, затемнение монотонного фрагмента поверхности на плоской поверхности может показать форму потенциальной базы этого монотонного фрагмента поверхности, при условии, что каждый луч пересекает монотонный фрагмент поверхности только один раз.
[00111] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их выполнении, инициируют сохранение процессором 108 координат созданных баз. Координаты баз могут быть сохранены в любой подходящей системе координат.
[00112] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют проецирование процессором 108 с предварительно определенным шагом, начиная от начала соответствующего фрагмента поверхности и заканчивая концом фрагмента поверхности, высот с фрагмента поверхности на базу. Интервалы между высотами предварительно определены таким образом, что интервалы между высотами меньше, чем интервалы между пересекающими элементами. Например, интервалы между высотами могут быть предварительно определены таким образом, что каждый интервал между двумя последовательными высотами равен 1/10 интервала между двумя последовательными пересекающими элементами. Чем меньше предварительно определенный интервал между последовательными высотами, тем более точны координаты соответствующий части поверхности.
[00113] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют определение процессором 108 значений высот. Значения высот являются расстояниями между базой и соответствующими координатами фрагмента поверхности. Задачей определения является создание карты высот фрагмента поверхности.
[00114] Чтобы проиллюстрировать описанное выше, приведем другой пример и представим, что на столе лежит зубная щетка, причем щетинки перпендикулярны плоской поверхности основания щетки, параллельны друг другу, направлены вверх, но обладают разной длиной. Щетинки расположены рядами. Расстояние между каждыми двумя щетинками в ряду одинаково, а также расстояние между рядами является одинаковым. Затем расположим на концах совокупности щетинок тонкую пленку. Из-за различной длины щетинок поверхность зубной щетки, представленная пленкой и определенная кончиками совокупности щетинок, является волнистой. Можно сказать, что координаты пленки могут быть представлены картой высот, где плоская поверхность основания щетки является базой монотонного фрагмента поверхности, который является пленкой, щетинки являются спроецированными высотами, а длины щетинок являются значениями высот. Обладая всеми этими данными и зная координаты плоской поверхности основания щетки, расстояния между щетинками в рядах и расстояние между рядами, процессор 108 может сохранить: 1) стандартные координаты базы, 2) шаг высот (расстояния между каждыми двумя щетинками в ряду и расстояние между рядами), 3) высоты порядка проецирования (например, начиная с верхней левой щетинки, проходя по каждому последующему ряду слева направо, и заканчивая нижней правой щетинкой), и 4) последовательность значений высот, например, +8, +9, +10, +11, +10, +9, +8, +9, +10, +11, +10, и так далее. Следовательно, каждая соответствующая точка на поверхности объекта будет определена не двумя координатами, как в декартовой системе координат, а только одной координатой (значениями высот), и справочной информацией, которая по многим пунктам является общей: координаты базы, шаг высот, предварительно определенный порядок проецирования высот. В этом примере все значения высот являются положительными значениями. Однако в других вариантах осуществления настоящего технического решения значения высот могут быть положительными значениями, нулевыми значениями, отрицательными значениями, или их комбинацией. Значения высот могут быть положительными и отрицательными в случаях, когда база пересекает свой соответствующий фрагмент поверхности.
[00115] В некоторых вариантах осуществления настоящего технического решения некоторая справочная информация, например, шаг высот и предварительно определенный порядок проецирования высот, может быть общей для всех точек на любой поверхности, в то время как координаты базы и значения высот будут различаться.
[00116] Вычислительное устройство 102 системы 100 было описано выше как сервер 102. Однако это не является необходимым условием в каждом варианте осуществления настоящего технического решения. В альтернативном варианте осуществления настоящего технического решения вычислительное устройство 102 может быть альтернативно осуществлено как клиентское устройство 102.
[00117] Клиентское устройство 102 обычно связано с пользователем (не изображен). Следует отметить, что тот факт, что клиентское устройство 102 связано с пользователем, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, регистрации, или чего-либо подобного.
[00118] Клиентское устройство 102 может быть, например, реализовано как Dell™ Precision Т1700 МТ CA033PT170011RUWS PC с процессором 108 Intel Xeon™ с частотой 3300 МГц, видеокартой nVIDIA Quadro K2000 (не изображена) и с установленной и действующей операционной системой Windows 7 Pro 64-bit. Клиентское устройство 102, среди прочего, включает в себя интерфейс связи (не изображен), например, модем, сетевую карту и так далее для двусторонней связи по сети передачи данных (не изображена) с другими вычислительными устройствами. Как будет понятно специалисту в данной области техники, реализация клиентского устройства 102 никак конкретно не ограничена. Клиентское устройство 102 может быть реализовано в виде персонального компьютера (настольного компьютера, ноутбука, нетбука и т.п.), беспроводного устройства передачи данных (мобильного телефона, смартфона, планшета и т.п.), а также другого оборудования. Клиентское устройство 102 может осуществлять те же самые функции, что и сервер 102.
[00119] На Фиг. 11 изображен компьютерный способ 1100 сохранения данных для отрисовки трехмерного графического объекта 200, причем трехмерный графический объект 200 обладает немонотонной поверхностью, определяемой своими стандартными координатами.
[00120] Сохранение трехмерных графических объектов в стандартной системе координат, например, в декартовой системе координат, может потребовать значительных ресурсов от вычислительного устройства. Координаты поверхностей трехмерных объектов, сохраненные на картах высот, могут занимать меньше пространства на машиночитаемом носителе информации и дают возможность уменьшить сетевой трафик при передаче координат с одного вычислительного устройства на другое.
[00121] В общем случае этапы способа 1100 предполагают разделение немонотонных поверхностей трехмерного графического объекта 200 на монотонные фрагменты поверхностей. Чтобы быть монотонной, поверхность должна быть плоской или искривляться слегка. Анализ взаимного расположения пересекающих элементов дает возможность определить подходящее расположение разделительных линий, в которых процессор 108 может разделить поверхность на фрагменты для создания монотонных фрагментов поверхности. После создания монотонных фрагментов поверхностей процессор 108 может создать соответствующие базы для соответствующих монотонных фрагментов поверхности, и создать карту высот для фрагментов поверхностей.
[00122] Этап 1102 - на основе стандартных координат трехмерного графического объекта 200 создание поверхности трехмерного графического объекта 200
[00123] Способ 1100 начинается на этапе 1102, на котором процессор 108 извлекает из носителя 104 информации стандартные координаты поверхности трехмерного графического объекта 200, изображенного на Фиг. 4, и на основе извлеченных стандартных координат создает поверхность трехмерного графического объекта 200.
[00124] Затем способ 1100 переходит к этапу 1104.
[00125] Этап 1104 - создание первой эталонной петли 410, расположенной на поверхности трехмерного графического объекта 200 таким образом, что первая эталонная петля 410 полностью расположена в первой воображаемой эталонной плоскости 502, пересекающей трехмерный графический объект 200
[00126] Далее, на этапе 1104 процессор 108 создает первую эталонную петлю 410, расположенную на поверхности трехмерного графического объекта 200 таким образом, что первая эталонная петля 410 полностью расположена в первой воображаемой эталонной плоскости 502, пересекающей трехмерный графический объект 200.
[00127] Первая воображаемая эталонная плоскость может быть расположена таким образом, что она включает в себя воображаемую первую осевую линию, соединяющую две наиболее удаленные точки в пределах поверхности трехмерного графического объекта. Однако это не является обязательным. В этом варианте осуществления настоящего технического решения первая воображаемая эталонная плоскость 502 может быть расположена таким образом, что она включает в себя воображаемую первую осевую линию 406, соединяющую две наиболее удаленные точки 402, 404 в пределах поверхности трехмерного графического объекта 200.
[00128] Затем способ 1100 переходит к этапу 1106.
[00129] Этап 1106 - применение к поверхности трехмерного графического объекта 200 первого набора пересекающих элементов 610, 620, 630
[00130] На этапе 1106 процессор 108 применяет к поверхности трехмерного графического объекта 200 первый набор пересекающих элементов 610, 620, 630. Пересекающие элементы в этих вариантах осуществления настоящего технического решения являются пересекающими элементами 610, 620, 630. В альтернативных вариантах осуществления настоящего технического решения пересекающие элементы могут быть пересекающими осями, пересекающими поверхность трехмерного графического объекта 200.
[00131] Процессор применяет первый набор пересекающих элементов 610, 620, 630 таким образом, что пересекающие элементы 610, 620, 630 из первого набора пересекающих элементов пересекают первую эталонную петлю 410 в соответствующих точках 612, 622, 632 пересечения в предварительно определенных интервалах. То же самое применимо в альтернативных вариантах осуществления настоящего технического решения, в которых пересекающие элементы 610, 620, 630 являются пересекающими линиями. В этом неограничивающем примере настоящего технического решения интервал пересечения составляет 4 пикселя.
[00132] Процессор применяет первый набор пересекающих элементов 610, 620, 630 таким образом, что каждый пересекающий элемент 610, 620, 630 из первого набора пересекающих элементов пересекает первую эталонную петлю 410 в каждой соответствующей точке 612, 622, 632 пересечения под одинаковым углом 614, 624, 634 пересечения. В этом варианте осуществления настоящего технического решения одинаковый угол пересечения составляет 90 градусов. В других вариантах осуществления настоящего технического решения угол пересечения может быть больше 90 градусов или меньше 90 градусов, но все углы пересечения должны быть одинаковы.
[00133] То же самое применимо в альтернативных вариантах осуществления настоящего технического решения, в которых пересекающие элементы 610, 620, 630 являются пересекающими осями.
[00134] Процессор применяет первый набор пересекающих элементов 610, 620, 630 таким образом, что каждый пересекающий элемент 610, 620, 630 из первого набора пересекающих элементов перпендикулярен первой воображаемой эталонной плоскости 502. То же самое применимо в альтернативных вариантах осуществления настоящего технического решения, в которых пересекающие элементы 610, 620, 630 являются пересекающими осями.
[00135] Затем способ 1100 переходит к этапу 1108.
[00136] Этап 1108 - измерение множества углов 802, 804 между пересекающими элементами 610, 620, 630 из первого набора пересекающих элементов и, в ответ на то, что по меньшей мере один угол 802 из множества углов 802, 804 между двумя частными пересекающими элементами 610, 620 из первого набора пересекающих элементов превышает предварительно определенный порог, создание первого набора разделительных линий 820
[00137] На этапе 1108 процессор 108 измеряет множество углов 802, 804 между пересекающими элементами 610, 620, 630 из первого набора пересекающих элементов. В итоге процессор 108 может определять, что один или несколько углов между последовательными парами пересекающих элементов превышают предварительно определенный порог. В ответ на то, что один или несколько углов превышают предварительно определенный порог, процессор 108 создает первый набор разделительных линий 820, причем первый набор разделительных линий 820 включает в себя по меньшей мере одну разделительную линию 820, и каждая разделительная линия 820 из первого набора разделительных линий расположена в пределах соответствующего интервала, определенного указанными двумя частными пересекающими элементами 610, 620, чтобы разделить поверхность трехмерного графического объекта 200 на фрагменты поверхности.
[00138] В некоторых вариантах осуществления настоящего технического решения процессор 108 может осуществлять измерение множества углов 802, 804 между пересекающими элементами 610, 620, 630 из первого набора пересекающих элементов, и создание дополнительных разделяющих линий последовательно и периодически: после того как были созданы разделительные линии, процессор 108 может повторить измерение углов между не являющимися последовательными пересекающими элементами, расположенными в пределах отдельных сегментов. В ответ на то, что один угол превышает предварительно определенный порог, процессор создает еще одну разделительную линию. Эта разделительная линия принадлежит к тому же самому набору разделительных линий, что и линия, пересекающая ту же самую эталонную петлю. Поскольку была создана новая разделительная линия, было создано еще два фрагмента. Такая же процедура может быть осуществлена периодически во всех исходных и последовательно образованных сегментах, пока не будут отсутствовать пересекающие элементы сегмента, в пределах которых образовывается угол, превышающий пороговое значение.
[00139] Созданные разделяющие линии лежат между пересекающими линиями 616, 626, 636, которые являются линиями пересечения пересекающих элементов 610, 620, 630 с поверхностью трехмерного графического объекта 200.
[00140] В альтернативных вариантах осуществления настоящего технического решения, в которых пересекающие элементы 610, 620, 630 являются пересекающими осями, отсутствуют пересекающие линии 616, 626, 636. Несмотря на это, созданные разделительные линии, лежат между пересекающими элементами, которые в этом случае являются пересекающими осями.
[00141] Затем способ 1100 переходит к этапу 1110.
[00142] Этап 1110 - определение среди созданных фрагментов поверхности (созданные фрагменты поверхности определяются разделительными линиями) монотонных фрагментов поверхности и немонотонных фрагментов поверхности, в ответ на определение по меньшей мере одного монотонного фрагмента поверхности, создание карты высот для определенного по меньшей мере одного монотонного фрагмента поверхности
[00143] На этапе 1110 процессор 108 определяет среди созданных фрагментов поверхности монотонные фрагменты поверхности и немонотонные фрагменты поверхности. Определение может быть осуществлено любым подходящим способом, например, с помощью анализа стандартных координат соответствующего фрагмента поверхности.
[00144] Далее, в ответ на то, что определен по меньшей мере один монотонный фрагмент поверхности, процессор 108 создает карту высот для всех определенных монотонных фрагментов поверхности.
[00145] Для создания карты высот для монотонного фрагмента поверхности процессор 108 создает базы для каждого из по меньшей мере одного созданного монотонного фрагмента поверхности для того, что получить проекции на каждую базу от каждого фрагмента поверхности соответственно. Процессор 108 далее создает координаты баз, в любой подходящей системе стандартных координат на носителе 104 информации.
[00146] Далее процессор 108 проецирует высоты с каждого из по меньшей мере одного монотонного фрагмента поверхности на его соответствующую базу, причем указанное проецирование выполняется с предварительно определенным шагом высот, в предварительно определенном порядке проецирования высот. В этом варианте осуществления настоящего технического решения шаг высот составляет 1 пиксель, проецирование осуществляется ряд за рядом, начиная с верхнего ряда и заканчивая нижним рядом, последовательность высот проходит от верхней левой точки до правой до конца базы, затем переходит на следующий ряд, первую левую точку во втором ряду, и так далее, пока не достигнет нижней правой точки. Затем процессор 108 определяет значения высот и сохраняет все данные как совокупность: координат баз, шага высот, предварительно определенного порядка проецирования высот, и последовательности значений высот в связи с соответствующей базой.
[00147] Затем способ 1100 переходит к этапу 1112.
[00148] Этап 1112 - проверка того, являются ли все созданные фрагменты поверхности монотонными
[00149] На этапе 1112 процессор 108 осуществляет проверку того, являются ли все созданные фрагменты поверхности монотонными. Если все созданные фрагменты поверхности являются монотонными, способ 1000 оканчивается после создания карт высот для всех монотонных фрагментов поверхности. В другом случае, если по меньшей мере один созданный фрагмент поверхности не является монотонным, карта высот для этого немонотонного фрагмента создана не будет. В таком случае способ 1100 переходит к этапу 1114.
[00150] Этап 1114 - создание второй эталонной петли 902, расположенной на поверхности трехмерного графического объекта 200 таким образом, что вторая эталонная петля 902 полностью расположена во второй воображаемой эталонной плоскости 620, пересекающей трехмерный графический объект 200
[00151] Далее, на этапе 1114 процессор 108 создает вторую эталонную петлю 902, расположенную на поверхности трехмерного графического объекта 200 таким образом, что вторая эталонная петля 902 полностью расположена во второй воображаемой эталонной плоскости 620, пересекающей трехмерный графический объект 200. Процессор 108 создает вторую эталонную петлю 902 аналогично тому, как он создает первую эталонную петлю 410. Первая воображаемая эталонная плоскость 502 и вторая воображаемая эталонная плоскость 620 не должны совпадать. В некоторых вариантах осуществления настоящего технического решения первая воображаемая эталонная плоскость и вторая воображаемая эталонная плоскость могут пересекать друг друга под углом 90 градусов, таким образом, что вторая воображаемая эталонная плоскость пересекает воображаемую первую осевую линию в середине этой линии. В этом примере первая воображаемая эталонная плоскость 502 и вторая воображаемая эталонная плоскость 620 могут пересекать друг друга под углом 90 градусов, таким образом, что вторая воображаемая эталонная плоскость 620 пересекает воображаемую первую осевую линию 406 в середине этой линии 406. В других вариантах осуществления настоящего технического решения первая воображаемая эталонная плоскость 502 и вторая воображаемая эталонная плоскость 620 пересекают друг друга под другим углом. В некоторых вариантах осуществления настоящего технического решения первая воображаемая эталонная плоскость 502 и вторая воображаемая эталонная плоскость 620 могут пересекать друг друга таким образом, что вторая воображаемая эталонная плоскость 620 пересекает воображаемую первую осевую линию 406 не в середине этой линии 406, или даже пересекает продолжение воображаемой первой осевой линии 406 вне трехмерного объекта 200.
[00152] Затем способ 1100 переходит к этапу 1116.
[00153] Этап 1116 - применение к поверхности трехмерного графического объекта 200 второго набора пересекающих элементов 910, 920, 930
[00154] Процессор 108 осуществляет этап 1116 аналогично тому, как он осуществляет этап 1106. Процессор 108 применяет к поверхности трехмерного графического объекта 200 второй набор пересекающих элементов 910, 920, 930 таким образом, что: (а) пересекающие элементы из второго набора пересекающих элементов пересекают первую эталонную петлю 902 в соответствующих точках пересечения в предварительно определенных интервалах, (b) каждый пересекающий элемент 910, 920, 930 из второго набора пересекающих элементов пересекает первую эталонную петлю 902 в каждой соответствующей точке 912, 922, 932 пересечения под одинаковым 914, 924, 934 углом пересечения и каждый пересекающий элемент 910, 920, 930 из второго набора пересекающих элементов является перпендикулярным второй воображаемой эталонной плоскости 620.
[00155] Затем способ 1100 переходит к этапу 1118.
[00156] Этап 1118 - измерение множества углов между пересекающими элементами 910, 920, 930 из второго набора пересекающих элементов и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными пересекающими элементами из второго набора пересекающих элементов превышает предварительно определенный порог, создание второго набора разделительных линий
[00157] На этапе 1118 процессор 108 измеряет множество углов между пересекающими элементами 910, 920, 930 из второго набора пересекающих элементов и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными пересекающими элементами из второго набора пересекающих элементов превышает предварительно определенный порог, создает второй набор разделительных линий, причем второй набор разделительных линий включает в себя по меньшей мере одну разделительную линию, и каждая разделительная линия из второго набора разделительных линий расположена в пределах соответствующего интервала, определенного указанными двумя частными пересекающими элементами, чтобы разделить поверхность трехмерного графического объекта 200 на фрагменты поверхности. Процессор 108 осуществляет этап 1116 аналогично тому, как он осуществляет этап 1106.
[00158] Затем способ 1100 переходит к этапу 1120.
[00159] Этап 1120 - определение монотонных фрагментов поверхности и немонотонных фрагментов поверхности среди заново созданных более мелких фрагментов поверхности (заново созданные более мелкие фрагменты поверхности определяются разделительными линиями), причем заново созданные более мелкие фрагменты поверхности образовались из немонотонных фрагментов, и, в ответ на определение по меньшей мере одного заново созданного более мелкого монотонного фрагмента поверхности, создание карты высот для определенного по меньшей мере одного заново созданного более мелкого монотонного фрагмента поверхности
[00160] Процессор 108 осуществляет этап 1120 аналогично тому, как он осуществляет этап 1110. Разница заключается в том, что на этапе 1110 фрагменты поверхности определяются разделительными линиями из одного набора разделительных линий, в то время как на этапе 1120 фрагменты поверхности могут быть определены разделительными линиями и первого, и второго наборов разделительных линий. Следовательно, фрагменты поверхности на этапе 1118 могут быть меньше, и вероятность, что все фрагменты поверхности монотонны, выше. Создание карт высот может быть осуществлено на этапе 1118 по отношению к новым немонотонным фрагментам поверхности. Другими словами, нет необходимости в создании карт высот для этих немонотонных фрагментов поверхности, которые получились из разделения исходных немонотонных фрагментов поверхности, поскольку их координату уже сохранены как карты высот на этапе 1110.
[00161] Если все фрагменты поверхности, созданные на этапе 1120 монотонны, способ 1000 завершается. С другой стороны, если по меньшей мере один созданный фрагмент поверхности немонотонный, может быть создан третий набор разделительных линий для создание более мелких фрагментов поверхности.
[00162] В некоторых вариантах осуществления настоящего технического решения процессор 108 может дополнительно сравнивать размер стандартных данных координат и данных карт высот по отношению по меньшей мере к одному фрагменту поверхности. Если размер данных карты высот меньше, чем размер данных стандартных координат, данные стандартных координат могут быть удалены с носителя 104 информации.
[00163] Однако, если размер данных карты высот больше, чем размер данных стандартных координат, координаты этого соответствующего фрагмента могут продолжаться.
[00164] Затем способ 1100 завершается.
[00165] Конкретный технический эффект, применимый по меньшей мере к некоторым вариантам осуществления настоящего технического решения включает в себя сбережение объемов памяти носителей информации компьютерного устройства, поскольку сохранение поверхностей трехмерных графических объектов как последовательностей карт высот может быть менее ресурсозатратным, чем сохранение поверхностей трехмерных графических объектов в некоторых стандартных системах координат. В некоторых случаях, когда координаты трехмерных графических объектов должны быть отправлены по сетям передачи данных, настоящего технического решения может уменьшить объемы трафика.
[00166] Этапы способа 1100 объяснялись в том виде, в котором они могут быть выполнены на вычислительном устройстве 102, являющимся сервером 102 системы 100. Однако этапы способа 1200 могут быть выполнены на вычислительном устройстве 102, являющимся клиентским устройством 102 системы 100.
[00167] Таким образом, с одной точки зрения, варианты осуществления настоящего технического решения можно изложить следующим образом, структурированно, пронумерованными пунктами:
[00168] [Пункт 1] Компьютерный способ создания данных карт высот для отрисовки на вычислительном устройстве трехмерного графического объекта (200), причем трехмерный графический объект (200) обладает немонотонной поверхностью, способ создания данных карт высот использует стандартные координаты, причем стандартные координаты сохраняются на носителе информации, и стандартные координаты определяют поверхность трехмерного графического объекта (200), способ включает в себя:
(i) на основе стандартных координат трехмерного графического объекта (200) создание (1102) поверхности трехмерного графического объекта (200);
(ii) создание первой эталонной петли (410), расположенной на поверхности трехмерного графического объекта (200) таким образом, что первая эталонная петля (410) полностью расположена в первой воображаемой эталонной плоскости (502), пересекающей трехмерный графический объект (200);
(iii) применение к поверхности трехмерного графического объекта (200) первого набора пересекающих элементов (610, 620, 630) таким образом, что:
(a) пересекающие элементы (610, 620, 630) из первого набора пересекающих элементов пересекают первую эталонную петлю (410) в соответствующих точках (612, 622, 632) пересечения в предварительно определенных интервалах,
(b) каждый пересекающий элемент (610, 620, 630) из первого набора пересекающих элементов пересекает первую эталонную петлю (410) в каждой соответствующей точке (612, 622, 632) пересечения под одинаковым углом (614, 624, 634) пересечения, и
(c) каждый пересекающий элемент (610, 620, 630) из первого набора пересекающих элементов пересекает первую воображаемую эталонную плоскость (502) под одинаковым углом;
(v) измерение множества углов (802, 804) между пересекающими элементами (610, 620, 630) из первого набора пересекающих элементов и, в ответ на то, что по меньшей мере один угол (802) из множества (802, 804) углов между двумя частными пересекающими элементами (610, 620) из первого набора пересекающих элементов превышает предварительно определенный порог, создание первого набора разделительных линий (820), причем первый набор разделительных линий включает в себя по меньшей мере одну разделительную линию (820), и каждая разделительная линия (820) из первого набора разделительных линий расположена в пределах соответствующего интервала, определенного указанными двумя частными пересекающими элементами (610, 620), чтобы разделить поверхность трехмерного графического объекта (200) на фрагменты поверхности;
(vi) определение среди созданных фрагментов поверхности (причем созданные фрагменты поверхности определяются разделительными линиями) монотонных фрагментов поверхности;
(vii) в ответ на то, что определен по меньшей мере один монотонный фрагмент поверхности, создание карты высот для определенного по меньшей мере одного монотонного фрагмента поверхности.
[00169] [Пункт 2] Способ по п. 1, в котором пересекающие элементы являются пересекающими плоскостями (610, 620, 630), и в которых измерение множества углов (802, 804) между пересекающими элементами (610, 620, 630) является измерение углов между нормалями соответствующих пересекающих плоскостей (610, 620, 630).
[00170] [Пункт 3] Способ по любому из пп. 1-2, в котором измерение множества углов (802, 804) между пересекающими элементами (610, 620, 630) из первого набора пересекающих элементов и создание по меньшей мере одной разделительной линии из первого набора разделительных линий (820) осуществляется последовательно и периодически.
[00171] [Пункт 4] Способ по п. 3, в котором указанные два частных пересекающих элемента (610, 620) из первого набора пересекающих элементов, образующие угол, превышающий предварительно определенный порог, являются последовательными пересекающими элементами, а указанная по меньшей мере одна разделительная линия из первого набора разделительных линий является по меньшей мере одной исходной разделительной линией из первого набора разделительных линий, способ дополнительно включает в себя:
измерение множества углов (802, 804) между не являющимися последовательными пересекающими элементами (610, 620, 630) из первого набора пересекающих элементов в пределах фрагментов поверхности, определенных исходными разделительными линиями, и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными не являющимися последовательными пересекающими элементами в пределах фрагмента поверхности, определенного исходными пересекающими линиями, превышает предварительно определенный порог, создание по меньшей мере одной дополнительной разделительной линии из первого набора разделительных линий, причем каждая дополнительная разделительная линия из первого набора разделительных линий расположена в пределах соответствующего интервала, определенного указанными двумя частными не являющимися последовательными пересекающими элементами, для разделения поверхности трехмерного графического объекта (200) на более мелкие фрагменты поверхности.
[00172] [Пункт 5] Способ по любому из пп. 1-4, в котором каждый угол пересечения между каждым пересекающим элементом и поверхностью трехмерного графического объекта (200) в каждой соответствующей точке пересечения равен 90 градусов.
[00173] [Пункт 6] Способ по любому из пп. 1-5, в котором указанное определение монотонных фрагментов поверхности дополнительно включает в себя определения немонотонных фрагментов поверхности и, в ответ на то, что по меньшей мере один созданный фрагмент поверхности не является монотонным, способ дополнительно включает в себя:
(i) создание второй эталонной петли (902), расположенной на поверхности трехмерного графического объекта (200) таким образом, что вторая эталонная петля (902) полностью расположена во второй воображаемой эталонной плоскости (620), пересекающей трехмерный графический объект (200);
(ii) применение к поверхности трехмерного графического объекта (200) второго набора пересекающих элементов (910, 920, 930) таким образом, что:
(a) пересекающие элементы из второго набора пересекающих элементов пересекают вторую эталонную петлю (902) в соответствующих точках пересечения в предварительно определенных интервалах,
(b) каждый пересекающий элемент (910, 920, 930) из второго набора пересекающих элементов пересекает вторую эталонную петлю (902) в каждой соответствующей точке (912, 922, 932) пересечения под одинаковым углом (914, 924, 934) пересечения, и
(с) каждый пересекающий элемент (910, 920, 930) из второго набора пересекающих элементов перпендикулярен второй воображаемой эталонной плоскости (620);
(iii) измерение множества углов между пересекающими элементами (910, 920, 930) из второго набора пересекающих элементов и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными пересекающими элементами из второго набора пересекающих элементов превышает предварительно определенный порог, создает второй набор разделительных линий, причем второй набор разделительных линий включает в себя по меньшей мере одну разделительную линию, и каждая разделительная линия из второго набора разделительных линий расположена в пределах соответствующего интервала, определенного указанными двумя частными пересекающими элементами, чтобы разделить поверхность трехмерного графического объекта (200) на фрагменты поверхности;
(vi) определение монотонных фрагментов поверхности среди заново созданных более мелких фрагментов поверхностей (причем заново созданные более мелкие фрагменты поверхностей определяются разделительными линиями), и заново созданные более мелкие фрагменты поверхностей образовались из немонотонных фрагментов;
(vii) в ответ на определение по меньшей мере одного заново созданного более мелкого монотонного фрагмента поверхности, создание карты высот для определенного по меньшей мере одного заново созданного более мелкого монотонного фрагмента поверхности.
[00174] [Пункт 7] Способ по любому из пп. 1-6, в котором создание карты высот для каждого монотонного фрагмента поверхности дополнительно включает в себя:
(i) создание баз для каждого созданного монотонного фрагмента поверхности для получения проекций на каждую базу каждого фрагмента поверхности соответственно и сохранение координат баз;
(ii) проецирование высоты с каждого из по меньшей мере одного монотонного фрагмента поверхности на его соответствующую базу, причем указанное проецирование выполняется с предварительно определенным шагом высот, в предварительно определенном порядке проецирования высот;
(iii) определение значений высот, причем каждое значение высот представляет расстояние между соответствующей базой и соответствующей точкой на соответствующем монотонном фрагменте поверхности, причем значения высот нужны для создания карт высот монотонных фрагментов поверхности;
(vi) сохранение данных для отрисовки монотонного фрагмента поверхности как совокупности:
координат баз,
шага высот,
предварительно определенного порядка проецирования высот, и
последовательности значений высот в связи с соответствующей базой.
[00175] [Пункт 8] Способ по п. 7, в котором создание базы выполняется проведением проекции к плоской поверхности, и база является частью плоской поверхности, определенной указанной проекцией.
[00176] [Пункт 9] Способ по любому из пп. 7-8, в котором значения высот являются по меньшей мере одним из: положительным значением, нулевым значением, отрицательным значением.
[00177] [Пункт 10] Вычислительное устройство создания данных карт высот для отрисовки трехмерного графического объекта (200), трехмерный графический объект (200) обладает немонотонной поверхностью, определенной своими стандартными координатами; вычислительное устройство включает в себя процессор (108) и носитель (104) информации, на котором хранятся машиночитаемые инструкции, которые, при их исполнении процессором (108), инициируют выполнение процессором (108) способа по любому из пп. 1-9.
[00178] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.