ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0001] Компьютеры и вычислительные системы повлияли почти на каждый аспект современной жизни. Компьютеры повсеместно применяются в работе, на отдыхе, в здравоохранении, на транспорте, в развлечении, ведении домашнего хозяйства и т.д.
[0002] Компьютерные системы смешанной реальности, которые включают в себя системы виртуальной реальности и системы дополненной реальности, в последнее время привлекли значительный интерес из–за их способности создавать иммерсивный (с погружением) опыт для пользователей. Традиционные системы дополненной реальности создают сценарий дополненной реальности путем визуального представления виртуальных объектов в реальном мире. В противоположность этому, традиционные системы виртуальной реальности создают более иммерсивный опыт таким образом, что все поле зрения пользователя закрывается виртуальным миром. Как используется здесь, системы смешанной реальности, дополненной реальности и виртуальной реальности описываются и упоминаются взаимозаменяемым образом. Если специально не оговорено или если специально не требуется, как понятно специалистам в данной области техники, приведенные здесь описания в равной степени применимы к любому типу системы смешанной реальности, включая системы дополненной реальности, системы виртуальной реальности и/или любые другие аналогичные системы, способные отображать виртуальные объекты пользователю.
[0003] Компьютерные системы смешанной реальности обычно используют одно или несколько устанавливаемых на теле пользователя устройств (например, устанавливаемое на голове устройство (шлем), портативное устройство и т.д.). Устанавливаемое на голове устройство обеспечивает дисплей, который иногда упоминается как наголовный дисплей (шлем виртуальной реальности, далее “HMD”), который позволяет пользователю просматривать перекрывающуюся и/или интегрированную визуальную информацию в окружающей среде пользователя. Например, система смешанной реальности может представлять визуальную информацию пользователю, посредством HMD, в форме смоделированного объекта на реальной поверхности стола.
[0004] Продолжающийся прогресс в области функциональных возможностей аппаратных средств и технологий визуализации (рендеринга) значительно увеличил реализм виртуальных объектов и сцен, отображаемых пользователю в среде смешанной реальности. Например, в среде смешанной реальности, виртуальные объекты могут быть размещены в реальном мире таким образом, чтобы создать впечатление, что виртуальный объект является частью реального мира. По мере того как пользователь перемещается в реальном мире, среда смешанной реальности автоматически обновляется, так что пользователю предоставляется правильная перспектива и представление виртуального объекта. Эту среду смешанной реальности часто называют генерируемой компьютером сценой или просто “сценой”.
[0005] В таких системах, тело пользователя (в частности, голова пользователя и соответствующий HMD) может перемещаться в реальном времени по отношению к виртуальной среде. Так, например, в приложении смешанной реальности, если пользователь наклоняет голову в одну сторону, он не ожидал бы, что изображение или голограмма наклонится с ним. В идеале, система должна измерять положение головы пользователя и визуализировать изображения с достаточно быстрым темпом, чтобы исключить любое дрожание или дрейф в положении изображения, как оно воспринимается пользователем. Однако типовые блоки обработки графики (“GPU”) в настоящее время визуализируют кадры только со скоростью от 30 до 60 кадров в секунду, в зависимости от качества и производительности GPU. Это приводит к потенциальной задержке от 16 до 33 миллисекунд между моментом времени, когда положение головы обнаруживается, и когда изображение фактически отображается на HMD. Дополнительное запаздывание может быть также связано с временем, которое требуется, чтобы определить новое положение головы, и/или задержками между буфером кадров GPU и окончательно скорректированным отображением. Результатом является потенциально большая ошибка между тем, где пользователь ожидал бы изображение, и где на самом деле отображается изображение, тем самым ухудшая пользовательский опыт. В некоторых случаях, пользователь может испытывать дискомфорт и дезориентацию, когда виртуальные изображения не представляются в соответствующих местоположениях, в частности, во время движения головы пользователя и HMD.
[0006] В попытке уменьшить или устранить некоторые из ошибок предыдущего рендеринга, существующие системы применяют коррекции поздней стадии, чтобы осуществить окончательные коррекции изображения, после того как изображение визуализировано посредством GPU. Этот процесс выполняется перед тем, как пикселы отображаются, чтобы скомпенсировать самый поздний поворот, перенос и/или увеличения в результате движения головы пользователя. Этот процесс коррекции часто упоминается как “коррекция поздней стадии”, “ре–проекция поздней стадии”, “LSR” или “коррекции LSR”. Далее, это раскрытие будет использовать аббревиатуру “LSR”. Так как кадры могут быть визуализированы с высокой скоростью и с высоким разрешением, существующие системы, которые используют LSR, могут потребовать большую величину ширины полосы и мощности DRAM. Следует принять во внимание, что в контексте беспроводного HMD с батарейным питанием, размер чипа, а также требования к ширине полосы и мощности могут быть очень важным, что может добавить проблем и трудностей, ассоциированных с рендерингом сцен смешанной реальности пользователю.
[0007] Как было отмечено выше, многие компьютерные системы смешанной реальности представляют собой непривязанные устройства с батарейным питанием, которые испытывают ограничения рабочей мощности. Эти ограничения проектируются, чтобы продлить срок службы батареи, чтобы пользователь мог наслаждаться больше времени сценой. Однако многие операции компьютерной системы существенно влияют на срок службы батареи компьютерной системы. Например, выполнение операций сбора данных и действия LSR являются типичными примерами таких операций, негативно действующих на батареи. Соответственно, существует острая необходимость в этой области, чтобы эффективно улучшить потребление мощности систем, которые выполняют эти типы операций.
[0008] Изобретение, заявляемое здесь, не ограничивается вариантами осуществления, которые преодолевают какие–либо указанные недостатки или которые работают только в средах, подобных описанным выше. Скорее всего, эти предпосылки представлены для иллюстрации только одной примерной области технологии, где могут быть осуществлены некоторые варианты осуществления, описанные в настоящем документе.
Краткое изложение сущности изобретения
[0009] Варианты осуществления, раскрытые в данном документе, относятся к системам, аппаратным устройства хранения и способам, которые оптимизируют обработку LSR.
[0010] Некоторые варианты осуществления генерируют генерируемую компьютером сцену, которая включает в себя множество слоев. Эта сцена генерируется на основе первой предсказанной позы (ориентации) части компьютерной системы (например, HMD или другого устройства смешанной реальности). Варианты осуществления также обеспечивают идентификацию подобласти в пределах одного или нескольких слоев. Эта подобласть отличается от по меньшей мере одной другой области в одном или нескольких слоях. Затем, варианты осуществления обеспечивают изоляцию (отделение) упомянутой подобласти от упомянутой другой области(ей). Затем, варианты осуществления обеспечивают применение обработки LSR к отделенной подобласти, в то же время воздерживаясь от применения обработки LSR, или, по меньшей мере, той же самой обработки LSR, к упомянутой другой области(ям).
[0011] Настоящее краткое изложение сущности изобретения предусмотрено, чтобы ввести подборку концепций в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Это краткое изложение сущности изобретения не предназначено для идентификации ключевых признаков или существенных признаков заявленного изобретения, а также не предназначено для использования в качестве помощи при определении объема заявленного изобретения.
[0012] Дополнительные признаки и преимущества будут изложены в описании, которое следует ниже, и частично будут очевидны из описания или могут быть изучены при практической реализации решений, изложенных здесь. Признаки и преимущества настоящего изобретения могут быть реализованы и получены посредством инструментов и комбинаций, конкретно указанных в прилагаемой формуле изобретения. Признаки настоящего изобретения станут более очевидными из последующего описания и прилагаемой формулы изобретения или могут быть изучены при практической реализации изобретения, как изложено ниже.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0013] Для того чтобы описать способ, которым могут быть получены вышеописанные и другие преимущества и признаки, более конкретное описание заявленного изобретения, кратко описанного выше, будет представлено со ссылкой на конкретные варианты осуществления, которые проиллюстрированы на прилагаемых чертежах. Понимая то, что эти чертежи изображают только типовые варианты осуществления и, следовательно, не должны рассматриваться как ограничивающие объем, варианты осуществления будут описаны и объяснены с дополнительной спецификой и детализацией посредством использования прилагаемых чертежей, на которых:
[0014] Фиг. 1 иллюстрирует базовый архитектурный вид компьютерной системы, способной выполнять раскрытые процессы и способы.
[0015] Фиг. 2 иллюстрирует другой вариант осуществления компьютерной системы, способной выполнять раскрытые процессы и способы.
[0016] Фиг. 3 иллюстрирует обзор высокого уровня многослойной сцены.
[0017] Фиг. 4 представляет реалистичное изображение одного слоя, который может быть использован в многослойной сцене.
[0018] Фиг. 5 представляет другое реалистичное изображение слоя, который может быть использован в многослойной сцене.
[0019] Фиг. 6 иллюстрирует составной рендеринг нескольких слоев.
[0020] Фиг. 7 иллюстрирует другой составной рендеринг нескольких слоев.
[0021] Фиг. 8 иллюстрирует пример того, как предварительный фильтр может быть применен к определенным пикселам в слое.
[0022] Фиг. 9 иллюстрирует пример того, как слой ограничивается в пределах ограничивающей области.
[0023] Фиг. 10 иллюстрирует другой пример того, как слой ограничивается в пределах ограничивающей области.
[0024] Фиг. 11 иллюстрирует использование буферной области, которая может использоваться в процессе обработки LSR.
[0025] Фиг. 12 иллюстрирует, каким образом объем обработки LSR может быть уменьшен в различных ситуациях.
[0026] Фиг. 13 иллюстрирует примерный способ для оптимизации обработки LSR.
[0027] Фиг. 14 иллюстрирует другой примерный способ для оптимизации обработки LSR.
Подробное описание изобретения
[0028] В качестве введения, варианты осуществления, раскрытые в данном описании, относятся к системам, аппаратным устройствам хранения и способам, которые оптимизируют обработку LSR. С этой целью, раскрытые варианты осуществления генерируют генерируемую компьютером сцену, которая включает в себя множество слоев. Эта сцена генерируется на основе первой предсказанной ориентации устройства (например, возможно, HMD) компьютерной системы. Конкретная подобласть в пределах одного или нескольких слоев идентифицируется и различается по меньшей мере от одной другой области в одном или нескольких слоях. Эта подобласть затем изолируется (отделяется) от упомянутой другой области(ей). Затем, конкретная обработка LSR применяется к отделенной подобласти, в то же время воздерживаясь от применения этой конкретной LSR к этой другой области(ям).
[0029] Как будет описано ниже, варианты осуществления, описанные в данном документе, преодолевают многие недостатки, распространенные в традиционной технологии. Кроме того, эти варианты осуществления обеспечивают многие другие существенные преимущества, которые будут также описаны в остальной части данного раскрытия.
[0030] Следующий раздел предусмотрен в качестве начального руководства к предмету настоящего раскрытия. В частности, это раскрытие будет первоначально использовать фиг. 1, чтобы представить некоторые вводное обсуждение вычислительной системы. После этого обсуждения, представлен некоторый вводный предмет касательно обработки LSR. Затем данное раскрытие описывает фиг. 2, которая представляет предмет касательно компьютерной системы, способной оптимизировать обработку LSR, выполняемую на многослойной сцене. Затем будут обсуждаться фиг. 3–12. Эти фигуры представляют детали касательно использования нескольких слоев в генерируемой компьютером сцене, где выполняется LSR. Наконец, дополнительные поддерживающие архитектуры и способы, использующие новые принципы, описанные в настоящем документе, будут детализированы со ссылками на последующие фигуры.
[0031] Как иллюстрируется на фиг. 1, в своей самой базовой конфигурации, компьютерная система 100 принимает множество различных форм. Например, фиг. 1 иллюстрирует компьютерную систему 100 в качестве настольного компьютера (или ноутбука) 100A, планшета, сотового телефона 100C или устанавливаемого на голове устройства 100D, которое включает в себя HMD. Хотя фиг. 1 иллюстрирует широкий спектр вычислительных устройств, современные варианты осуществления изобретения не ограничиваются только теми, которые проиллюстрированы на фиг. 1. В результате, многоточие 100E демонстрирует, что любой тип вычислительного устройства доступен для использования в настоящих вариантах осуществления.
[0032] Вычислительная система 100 обычно включает в себя по меньшей мере один блок 110 обработки и хранилище 120. Хранилище 120 может быть физической системной памятью, которая может быть энергозависимой, энергонезависимой или некоторой их комбинацией. Термин “память” может быть также использован в настоящем описании для ссылки на энергонезависимую массовую память, такую как физические носители хранения. Если вычислительная система является распределенной, обработка, память и/или функциональные возможности хранения также могут быть распределенными. Как использовано в данном описании, термин “исполняемый модуль”, “исполняемый компонент” или даже “компонент” могут относиться к программным объектам, подпрограммам или способам, которые могут исполняться в вычислительной системе. Различные компоненты, модули, механизмы и сервисы, описанные здесь, могут быть реализованы как объекты или процессоры, которые исполняются в вычислительной системе (например, в виде отдельных подпроцессов (тредов)).
[0033] Варианты осуществления настоящего изобретения могут содержать или использовать компьютер специального назначения или общего назначения, включая компьютерные аппаратные средства, такие как, например, один или несколько процессоров (например, процессор 110) и системная память (например, хранилище 120), как описано более подробно ниже. Варианты осуществления в рамках объема настоящего изобретения также включают физические и другие считываемые компьютером носители для переноса или хранения исполняемых компьютером инструкций и/или структур данных. Такие исполняемые компьютером носители могут быть любыми доступными носителями, к которым может обращаться компьютерная система общего назначения или специального назначения. Считываемые компьютером носители, которые хранят исполняемые компьютером инструкции в форме данных, являются физическими компьютерными носителями хранения. Считываемые компьютером носители, которые переносят исполняемые компьютером инструкции, являются средами передачи. Таким образом, в качестве примера, а не ограничения, варианты осуществления настоящего изобретения могут содержать по меньшей мере две совершенно разных вида считываемых компьютером носителей: компьютерные носители хранения и среду передачи.
[0034] Компьютерные носители хранения включают в себя аппаратные средства, такие как RAM, ROM, EEPROM, CD–ROM, твердотельные накопители (SSD), которые основаны на RAM, флэш–память, память с изменением фазы (PCM) или другие типы памяти, или другое хранилище на оптических дисках, хранилище на магнитных дисках или другие магнитные устройства хранения, или любой другой аппаратный носитель, который может быть использован для хранения желательного средства программного кода в форме исполняемых компьютером инструкций, данных или структур данных и к которому может осуществлять доступ компьютер общего назначения или специального назначения.
[0035] На фиг. 1 также показано, что компьютерная система 100 содержит различные другие компоненты, включая интерфейс(ы) 130 I/O, процессор(ы) 140 рендеринга графики и один или несколько датчиков 150. Компьютерная система 100 может также быть соединена (через проводное или беспроводное соединение) с внешними датчиками 160 (например, одной или несколькими удаленными камерами, акселерометрами, гироскопами, акустическими датчиками, магнитометрами и т.д.). Кроме того, компьютерная система 100 может быть также соединена через одну или несколько проводных или беспроводных сетей 170 с удаленными системами 180, которые сконфигурированы, чтобы выполнять любую из обработки, описанной в связи с компьютерной системой 100.
[0036] Во время использования, пользователь компьютерной системы 100 способен воспринимать информацию (например, генерируемую компьютером сцену) через экран дисплея, который включен в интерфейс(ы) 130 I/O. Интерфейс(ы) 130 I/O и датчики 150/160 также включают в себя устройства обнаружения жестов, устройства слежения за взглядом и/или другие компоненты обнаружения движения (например, камеры, гироскопы, акселерометры, магнитометры, акустические датчики, системы глобального позиционирования (“GPS”) и т.д. ), которые способны обнаруживать позиционирование и движение одного или нескольких объектов реального мира, таких как рука пользователя, стилус и/или любой другой объект(ы), с которым пользователь может взаимодействовать будучи погруженным в сцену (т.е. среду смешанной реальности).
[0037] В некоторых случаях, позиционирование и движение пользователя и объектов непрерывно контролируются. Такой мониторинг, в частности, обнаруживает любое изменение в положении и движении объектов, такое как обнаруженное изменение местоположения, скорости, ориентации или ускорения. Эти движения могут быть абсолютными движениями и/или относительными движениями, например, по сравнению с относительным позиционированием HMD, и такими, что движения/позиционирование HMD будут пересчитываться в относительные движения/позиционирование объектов, как они представляются в сцене.
[0038] Процессор 140 рендеринга графики конфигурируется, процессором(ами) 110, чтобы визуализировать один или несколько виртуальных объектов в пределах генерируемой компьютером сцены. Этот рендеринг включает в себя затенения (окклюзию) руки или другие типы затенений, которые отображаются на относительные положения объектов реального мира. В результате, виртуальные объекты точно двигаются в ответ на движение объектов реального мира. Процессор 140 рендеринга графики также конфигурируется, чтобы визуализировать одно или нескольких затенений, которые являются чисто виртуальными (без отображения на объекты реального мира), но которые, тем не менее, позиционируются и перемещаются в ответ на пользовательский ввод, когда пользователь взаимодействует в пределах сцены.
[0039] Процессор(ы) 140 рендеринга графики, который может включать в себя один или несколько GPU, сконфигурирован, чтобы визуализировать затенения (то есть, виртуальные объекты) с определенными свойствами отображения. Эти свойства включают в себя окрашивание, прозрачность или непрозрачность, текстурирование, определение кромки (например, толщина и/или резкость против размывания и/или расплывания), размер и так далее. Когда определенные пороги движения обнаруживаются для затенения, то одна или несколько комбинаций свойств отображения для затенения будут модифицированы (по меньшей мере, когда обнаруженное движение удовлетворяет порогам движения или превышает их).
[0040] Пороги движения могут включать в себя любую комбинацию из следующего: 1) обнаруженные фактические движения объекта реального мира, ассоциированного с затенением, 2) обнаруженное движение анимации виртуализированного затенения и/или 3) обнаруженное отклонение или запаздывание между движением в реальном мире и анимационным движением. Обнаруженные движения ассоциированы со значениями атрибутов скорости и/или ускорения. Эти значения обнаруживаются, измеряются и/или вычисляются датчиками 150 и/или процессорами 110 компьютерной системы 100, чтобы определить, когда предопределенные пороги удовлетворены и/или превышены.
[0041] В некоторых вариантах осуществления, одни и те же пороговые значения абсолютного движения ассоциированы со всеми типами движений. Например, определенная скорость, ускорение или задержка, ассоциированные с затенением, будут достаточными, чтобы запускать изменение в свойствах отображения затенения. Это изменение может запускаться независимо от конкретного типа обнаруженного движения. В других вариантах осуществления, различные типы движений (т.е. различные движения по шести степеням свободы, включая, подъем, сдвиг, снос, тангаж, крен и рыскание) ассоциированы с различными порогами движения. Например, конкретное ускорение вращения вызовет первый порог, который отличается от бокового ускорения.
[0042] В некоторых случаях, существует по меньшей мере два или более отдельных пороговых предела для одного или нескольких из различных типов движения. Например, при первой метрике ускорения удовлетворяется первый порог. При второй метрике ускорения, которая больше или меньше, чем первая метрика ускорения, удовлетворяется второй порог. В некоторых случаях, один или несколько отдельных порогов скорости устанавливаются для каждого из одного или нескольких типов движения. Внешний вид затенения будет динамически изменяться в ответ на удовлетворение каждого из различных порогов, например, путем изменения атрибутов отображения затенения.
[0043] Различные пороги и типы атрибутов движения отображаются в сохраненных структурах данных в хранилище 120 вычислительной системы 100 и/или в одной или нескольких удаленных системах 180.
[0044] Некоторые раскрытые варианты осуществления включают в себя GPU 140, осуществляющие связь с хранилищем, чтобы определить, когда и как постепенно модифицировать внешний вид затенения соответственно различным обнаруженным изменениям в атрибуте(ах) движения, которые ассоциированы с затенением. В таких вариантах осуществления, атрибуты/свойства непрерывно изменяются/масштабируются в соответствии с непрерывно изменяющимся атрибутом движения (так что не имеется никаких дискретных уровней). Например, уровни прозрачности и/или расплывчатость краев для затенения могут быть ассоциированы с многими различными соответствующими величинами скорости и/или ускорения, ассоциированными с затенением (даже при наличии перемещения объекта реального мира) и/или задержкой, ассоциированной с рендерингом анимации затенения.
[0045] “Сеть”, подобная сети 170, показанной на фиг. 1, определяется как одна или несколько линий передачи данных и/или коммутаторов данных, которые обеспечивают возможность переноса электронных данных между компьютерными системами, модулями и/или другими электронными устройствами. Когда информация переносится или предоставляется через сеть (проводную, беспроводную либо комбинацию проводной и беспроводной) на компьютер, компьютер должным образом рассматривает соединение как среду передачи. Компьютерная система 100 будет включать в себя один или несколько каналов связи, которые используются для осуществления связи с сетью 170. Среды передачи включают в себя сеть, которая может быть использована для переноса данных или желательного средства программного кода в форме исполняемых компьютером инструкций или в форме структур данных. Кроме того, эти исполняемые компьютером инструкции могут быть доступными компьютеру общего назначения или специального назначения. Комбинации вышеупомянутого также должны быть включены в объем считываемых компьютером носителей.
[0046] При достижении различных компонентов компьютерной системы, средство программного кода в форме исполняемых компьютером инструкций или структур данных может автоматически переноситься из среды передачи на компьютерные носители хранения (или наоборот). Например, исполняемые компьютером инструкции или структуры данных, принимаемые по сети или линии передачи данных, могут быть буферизованы в RAM в модуле сетевого интерфейса (например, карте сетевого интерфейса или “NIC”) и затем, в конечном счете, передаются на RAM компьютерной системы и/или менее энергозависимые компьютерные носители хранения в компьютерной системе. Таким образом, следует понимать, что компьютерные носители хранения могут быть включены в компоненты компьютерной системы, которые также (или даже в первую очередь) используют среды передачи.
[0047] Исполняемые компьютером (или интерпретируемые компьютером) инструкции содержат, например, инструкции, которые побуждают компьютер общего назначения, компьютер специального назначения или устройство обработки специального назначения выполнять определенную функцию или группу функций. Исполняемые компьютером инструкции, может быть, например, двоичными файлами, инструкциями промежуточных форматов, такими как язык ассемблера, или даже исходным кодом. Хотя изобретение было описан в терминах, характерных для структурных признаков и/или методологических действий, должны быть понятно, что объем, определяемый прилагаемой формулой изобретения, не обязательно ограничен описанными признаками или действиями, описанными выше. Скорее, описанные признаки и действия раскрыты как примерные формы реализации формулы изобретения.
[0048] Специалистам в данной области техники будет понятно, что изобретение может быть реализовано на практике в сетевых вычислительных средах со многими типами конфигураций компьютерных систем, включая персональные компьютеры, настольные компьютеры, портативные компьютеры, процессоры сообщений, портативные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые РС, миникомпьютеры, универсальные компьютеры, мобильные телефоны, PDA, пейджеры, маршрутизаторы, коммутаторы и тому подобное. Изобретение также может быть реализовано на практике в средах распределенных систем, где локальные и удаленные компьютерные системы, которые связаны (либо проводными линиями передачи данных, беспроводными линиями передачи данных, либо комбинацией проводных и беспроводных линий передачи данных) через сеть, выполняют, каждая, соответствующие задачи (например, облачные вычисления, облачные услуги и т.п.). В среде распределенных систем, программные модули могут быть расположены как на локальных, так и удаленных устройствах хранения.
Ре–проекция поздней стадии (“LSR”)
[0049] Один вопрос с генерацией реалистичной среды смешанной реальности относится к задержке, или величине времени, в которое изображения блокированных реальными объектами виртуальных объектов, соответствующих конкретной ориентации HMD, отображаются конечному пользователю HMD. Например, если слишком много времени проходит между временем, когда голова конечного пользователя поворачивается в сторону от конкретной ориентации, и временем, когда изображение виртуального объекта отображается на основе следующей ориентации, то виртуальный объект будет появляться со смещением от его предполагаемого местоположения в среде смешанной реальности (то есть, изображение может не показываться выровненным с предусматриваемым местоположением или объектом реального мира). Следовательно, HMD могут также включать в себя технологию для генерации и отображение некоторых виртуальных объектов с частотой кадров, которая больше, чем частота кадров рендеринга других виртуальных объектов.
[0050] Рендеринг виртуальных объектов при повышенной частоте кадров значительно улучшает стабильность сцены. Отображаемые объекты (т.е. виртуальные объекты) могут включать в себя графические коррекции поздней стадии предварительно визуализированных сцен (то есть, сцен прямого предсказания, которые визуализируются с определенной частотой кадров рендеринга) для того, чтобы включать оценки ориентации более высокой частоты. Частота кадров рендеринга может соответствовать минимальному времени, чтобы визуализировать изображения, ассоциированные с ориентацией HMD. Для достижения этой цели, HMD может выполнять одно или несколько из следующего: 1) определять предсказанную ориентацию, ассоциированную с будущим положением и ориентацией HMD (например, предсказанной ориентацией HMD через 10 мс или 20 мс в будущем), 2) генерировать предварительно визуализированное изображение на основе этой предсказанной ориентации, 3) определять обновленную ориентацию, ассоциированную с HMD после генерирования предварительно визуализированного изображения или одновременно с генерируемым предварительно визуализированным изображением, 4) генерировать обновленное изображение на основе обновленной ориентации и предварительно визуализированного изображения и 5) отображать обновленное изображение на HMD. Обновленное изображение может быть сгенерировано посредством гомографического преобразования и/или коррекции пиксельного смещения предварительно визуализированного изображения. В некоторых случаях, обновленное изображение может быть сгенерировано с помощью схем в дисплее. Дополнительные подробности об этих функциональных возможностях будут представлены ниже в этом раскрытии.
[0051] Предсказанная ориентация может быть определена на основе: 1) текущего положения и ориентации HMD и 2) ускорения и скорости HMD непосредственно перед определением предсказанной ориентации (например, путем экстраполяции предсказанной ориентации на основе перемещения HMD на 5 мс, 10 мс или другой предопределенный интервал перед определением предсказанной ориентации). Обновленная ориентация может быть определена на основе обновленной информации ориентации, которая предоставляется в отслеживатель (систему слежения) ориентации с более высокой частотой, чем частота кадров рендеринга (например, путем получения данных от различного инструментария отслеживания ориентации, такого как акселерометры, гироскопы и т.д.).
[0052] Эта обновленная информация ориентации может быть сгенерирована с использованием блока инерциального измерения (IMU) с низкой задержкой или комбинации IMU и отслеживания ориентации на основе камеры. Обновленное изображение может содержать поворот, перенос, преобразование подобия (например, растяжение или сжатие), сдвиг или наклон изображения по меньшей мере части предварительно визуализированного изображения для того, чтобы скорректировать различия между предсказанной ориентацией и обновленной ориентацией (например, для компенсации некорректного предсказания ориентации при генерации предварительно визуализированного изображения).
[0053] И далее, обновленное изображение может генерироваться с помощью гомографического преобразования предварительно визуализации изображения. В некоторых случаях, гомографическое преобразование может содержать аффинное преобразование. Обновленное изображение может быть сгенерировано с использованием коррекции пиксельного смещения или комбинации гомографических преобразований и коррекций пиксельного смещения. В некоторых случаях, гомографические преобразования и/или коррекции пиксельного смещения могут генерироваться ниже по потоку от базового конвейера рендеринга (например, с использованием контроллера или процессора, интегрированного с HMD). В других случаях, коррекции пиксельного смещения могут выполняться с использованием дисплея, который включает в себя регистры сдвига или другие схемы для обеспечения возможности смещения пиксельных значений в пределах массива пикселов дисплея (например, аналогично работе прибора с зарядовой связью).
[0054] Обновленные изображения включают в себя графические коррекции поздней стадии визуализированных изображений прямого предсказания и могут генерироваться с использованием различных методов ре–проекции изображения различной вычислительной сложности. Методы ре–проекции изображения могут включать в себя попиксельную ре–проекцию (например, где каждый пиксел визуализируемого изображения ре–проецируется на основе обновленной ориентации), многослойную гомографию (например, где множество визуализируемых изображений, ассоциированных с множеством слоев в 3D сцене, используется для генерирования составного обновленного изображения), однослойную гомографию (например, где одно визуализированное изображение, ассоциированное с одним слоем в 3D сцене, используется для генерации обновленного изображения), аффинную гомографию или коррекции на основе пиксельного смещения.
[0055] Хотя предшествующие системы поддерживают коррекцию LSR, эти системы не могут оптимизировать эту обработку эффективным образом. В результате, эти системы страдают от многих недостатков, ассоциированных с долговечностью батареи питания. Раскрытые варианты осуществления могут быть использованы, чтобы помочь решить некоторые из этих проблем путем выполнения избирательных коррекций LSR для многослойных сцен.
Многослойные генерируемые компьютером сцены
[0056] Теперь будут рассмотрены фиг. 2–12. Вкратце, фиг. 2 иллюстрирует примерную компьютерную систему, которая включает в себя различные компоненты для оптимизации обработки LSR, на генерируемых компьютером сценах, которые включают в себя несколько слоев. Фиг. 3–12 поясняют различные функциональные возможности, которые доступны в вариантах осуществления настоящего изобретения.
[0057] Как указывалось выше, фиг. 2 иллюстрирует компьютерную систему 200, которая включает в себя различные компоненты (например, компонент 210 генерации сцены, компонент 220 LSR, компоненты 230 создания слоя и компоненты 240 рендеринга). Компьютерная система 200 аналогична компьютерной системе 100, представленной на фиг. 1. В некоторых вариантах осуществления, компьютерная система 200 сконфигурирована как специализированный набор из одного или нескольких процессоров (например, GPU). Дополнительные атрибуты компьютерной системы 200 также будут обсуждаться в связи с остальными фигурами.
[0058] В частности, компьютерная система 200 может создать и визуализировать сгенерированную компьютером сцену. Данная сцена может быть сценой смешанной, дополненной или виртуальной реальности. Как обсуждалось ранее, эта сцена генерируется на основе информации, которая была ранее получена одним или несколькими аппаратными компонентами компьютерной системы (например, инструментарием IMU, акселерометрами, гироскопами, магнитометрами, датчиками глубины, камерой, инфракрасными датчиками и т.д.).
[0059] Некоторые варианты осуществления генерируют эту сцену в ответ на первую предсказанную ориентацию части (например, возможно, HMD) компьютерной системы. Эта первая предсказанная ориентация отличается от ранее полученной фактической определенной ориентации упомянутой части компьютерной системы. В попытке уменьшить то, как часто данные получают из аппаратных компонентов (процесс, который имеет негативные последствия для срока службы батареи компьютерной системы), варианты осуществления настоящего изобретения дополняют (увеличивают) фактические данные ориентации предсказанными или оцененными компьютером данными ориентации. При выполнении этого процесса дополнения (увеличения), можно уменьшить то, как часто получают данные ориентации (т.е. частотность получения данных) из аппаратных компонентов. Этот процесс значительно снижает потребление энергии. Для дальнейшего пояснения, предположим, что компьютерная система собирает данные ориентации из различных аппаратных компонентов (например, инструментария IMU, упомянутого выше) с определенной частотой. Настоящие варианты осуществления уменьшают то, как часто собираются эти реальные/фактические данные, путем дополнения фактических данных предсказанными данными ориентации. Соответственно, как описано в данном раскрытии, настоящие варианты осуществления обеспечивают возможность предсказания ориентации компьютерного устройства на основе 1) ранее полученных определений фактической ориентации и 2) оценок относительно текущего и/или будущего поведения пользователя (например, путем отслеживания движения тела или других характеристик).
[0060] Продолжая обсуждение, компонент 210 генерации сцены может создать сцену, которая включает в себя множество входных кадров, таких как входной кадр 310, показанный на фиг. 3. Использование термина “входной кадр” коррелирует с термином “сцена”, это означает, что сцена фактически состоит из множества входных кадров, которые отображаются пользователю, носящему HMD. Как дополнительно показано на фиг. 3, входной кадр 310 включает в себя слой 320 переднего плана (“слой FG”) и слой 330 фона (“слой BG”). Слой 320 FG и слой 330 BG создаются компонентом 230 создания слоя 230. В некоторых ситуациях, слой 320 FG визуализируется в соответствии с первым разрешением, в то время как слой 330 BG визуализируется в соответствии со вторым разрешением. В качестве примера, слой 320 FG может включать в себя объект (например, дерево), который представляется визуально ближе к пользователю, в то время как слой 330 BG может включать в себя ландшафт (например, горы на дальнем фоне), который представляется удаленным от пользователя. Поскольку слой 330 BG включает в себя контент, который представляется визуально “удаленным” от пользователя, содержимое в слое 330 BG может визуализироваться при более низком разрешении.
[0061] В других ситуациях, компьютерная система 100 поддерживает фовеальный (ямковый) рендеринг. В связи с таким фовеальным рендерингом, слой 320 FG может быть помещен в области более высокого разрешения (т.е. области фовеа (ямки)), в то время как слой 330 BG может быть помещен в области гораздо более низкого разрешения (например, край или периферийная область сцены).
[0062] Компонент 220 LSR способен выполнять обработку LSR на слое 320 FG и слое 330 BG. В некоторых случаях, обработка LSR, которая применяется к слою 320 FG, отличается от обработки LSR, которая применяется к слою 330 BG. Эта разница в обработке LSR между слоем 320 FG и слоем 330 BG может иметь место ввиду широкого разнообразия причин. В качестве примера, а не ограничения, эта разница может быть обусловлена разницей в определенной глубине между слоем 320 FG и слоем 330 BG. Движение HMD также может влиять на позиционирование/рендеринг компонента FG иначе, чем на позиционирование/рендеринг компонентов BG.
[0063] В этом отношении полезно привести пример. Используя приведенный выше пример, предположим, что сцена, которая представляется пользователю, включает в себя дерево, которое находится поблизости, и далекий горный ландшафт. Теперь предположим, что пользователь перемещает положение или иным образом изменяет свою ориентацию. В ответ на изменение положения пользователя, сцена смешанной реальности потребует обновления. Здесь стоит отметить, что изменение визуального эффекта для дерева, которое гораздо ближе к пользователю, будет значительно больше, чем какие–либо изменения для далекого горного ландшафта из–за разницы в предполагаемой глубине. В результате, обработка LSR для каждого слоя может быть различной.
[0064] После того, как обработка LSR применена к различным слоям сцены (например, слою 320 FG и слою 330 BG), компьютерная система компонует слои вместе, чтобы сформировать единый слой, такой как единый слой 340 на фиг. 3. Другими словами, слой 320 FG и слой 330 BG (после прохождения обработки LSR) компонуются вместе, чтобы сформировать единый слой 340. Для того чтобы гарантировать, что слои надлежащим образом визуализируются в сцене (например, чтобы гарантировать, что слои визуализируются с корректной глубиной и ориентацией по отношению друг к другу), компьютерная система 200 также применяет одно или несколько преобразований к одному или нескольким из слоев. Эти преобразования могут быть применены либо во время обработки LSR, либо во время обработки компоновки. В качестве примера, один слой может потребовать изменения размера (т.е. преобразования подобия), вращения, скашивания или манипулирования иным образом, что может не требоваться для другого слоя(ев) в единой сцене. Для выполнения этой избирательной манипуляции, компьютерная система 200 применяет соответствующий тип преобразования, чтобы обеспечить возможность надлежащего рендеринга слоя. Некоторые из этих преобразований включают в себя гомографическое преобразование, обратимое преобразование изображения, аффинное преобразование, коррекцию пиксельного смещения, преобразования обработки глубины и/или матричное преобразование. После компоновки слоев вместе, компонент 240 рендеринга визуализирует единый слой 340 на HMD.
[0065] В то время как фиг. 3 иллюстрирует абстрактную визуализацию многослойной сцены, фиг. 4–7 иллюстрирует конкретную реализацию.
[0066] В частности, фиг. 4 иллюстрирует первый слой 400 генерируемой компьютером сцены. Этот первый слой аналогичен слою BG 330 на фиг. 3. Этого первый слой 400 иллюстрируются как ограниченный ограничивающей областью 410. Эта ограничивающая область 410 относится к области, которая является видимой пользователю, носящему HMD. Следует отметить, однако, что генерируемые компьютером сцены не ограничивается только одним полем зрения. Скорее, когда пользователь перемещает положения или иначе меняет ориентацию, вид, который отображается на HMD, будет изменяться в зависимости от ориентации HMD (например, новый контент будет появляться, в то время как другой контент будет исчезать в соответствии с движением пользователя). В результате, первый слой 400 и ограничивающая область 410 не должны использоваться, чтобы характеризовать или иным образом ограничивать возможности компьютерной системы 200.
[0067] Аналогично фиг. 4, фиг. 5 иллюстрирует второй слой 500, который может быть визуализирован компьютерной системой 200. Этот второй слой 500 аналогичен слою 320 FG на фиг. 3. Второй слой 500 также иллюстрируется как имеющий ограниченную область 510. Здесь стоит отметить, что второй слой 500 немного отличается от первого слоя 400 на фиг. 4, в частности, второй слой 500 включает в себя одну или несколько прозрачных частей 520. Под прозрачностью понимается то, что любой контент, расположенный под этой прозрачной частью 520, будет видим даже при том, что находящийся за ней контент не является частью второго слоя 500. В результате, после того как 1) обработка LSR второго слоя 500, 2) любые преобразования и/или 3) процессы компоновки применяются ко второму слою 500 (и если слой 500 по–прежнему расположен поверх другого слоя так, чтобы перекрывать этот другой слой), по меньшей мере некоторое из нижнего слоя будет видно через прозрачные части 520 второго слоя 500.
[0068] Фиг. 6 иллюстрирует многоуровневую сцену 600, представленную как единый, составной слой. Эта многослойная сцена 600 создается компонентом 210 генерации сцены. Многослойная сцена 600 включает в себя первый слой 610, который аналогичен первому слою 400 на фиг. 4, и второй слой 620, который аналогичен второму слою 500 на фиг. 5. Другими словами, этот единый слой 600 представляет собой компоновку из нескольких слоев. Как дополнительно иллюстрируется на фиг. 6, второй слой 620 включает в себя одну или несколько прозрачных частей 630, которые аналогичны прозрачным частям 520 на фиг. 5. Здесь стоит отметить, что часть первого слоя 610 является видимой через прозрачную часть 630 второго слоя 620. Для пояснения, второй слой 620 представляет собой слой, который был помещен поверх первого слоя 610. В результате, второй слой 620 загораживает (затеняет), или маскирует, различные части первого слоя 610. Однако, поскольку второй слой 620 включает в себя прозрачные части 630, некоторые части первого слоя 610 являются видимыми через прозрачные части 630 второго слоя 620 (по меньшей мере, пока пользователь находится в этой конкретной ориентация). Если бы пользователь позже изменил положение или ориентацию, то другие части первого слоя 610 стали бы видимы через прозрачные части 630 второго слоя 620. То, какие части являются видимыми, непосредственно связанно с ориентацией пользователя.
[0069] Фиг. 7 аналогична фиг. 6, но включает в себя дополнительный слой, слой 710. В частности, фиг. 7 иллюстрирует многослойную сцену 700, которая похожа на многослойную сцену 600 на фиг. 6. Теперь, однако, многослойная сцена 700 включает в себя дополнительный слой, слой 710 (т.е. дерево). Слой 710 расположен так, чтобы перекрывать другие слои в многослойной сцене 700. Следует отметить, что часть слоя 710 загораживает некоторые из прозрачных частей нижнего слоя (т.е. дома). В результате, слой 710 загораживает различные части других слоев (например, дерево закрывает окно, окно закрывает гору, но гора является видимой через окно, потому что окно является прозрачным, но дерево также закрывает часть горы).
[0070] Как описано выше, различные слои могут, каждый, подвергаться одинаковой или различной обработке LSR, в зависимости от выполняемой обработки LSR и обнаруженных движений HMD. В сценарии худшего случая, все пикселы во всех слоях подвергаются обработке LSR. Используя фиг. 3 в качестве примера, сценарий худшего случая будет возникать, если все пикселы слоя 330 BG и все пикселы слоя 320 FG должны были подвергаться обработке LSR.
[0071] В целях повышения эффективности обработки LSR, некоторые из представленных вариантов предварительно фильтруют, по меньшей мере, некоторые из пикселов в различных слоях многослойной сцены. Один способ предварительной фильтрации пикселов состоит в использовании маски пикселов. Маска пикселов может быть определена по каждой строке и столбцу на верхнем, нижнем, левом и правом краях конкретного слоя. Как упоминалось в приведенном выше обсуждении, эта маска пикселов может быть использована, чтобы устранить обработку пикселов, некоторые из которых могут не вносить значительный вклад в качество изображения (например, пикселы, расположенные на краевой области дисплея). Этот процесс предварительной фильтрации позволяет пропускать некоторую из обработки LSR для отдельных пикселов и даже для больших участков пикселов. Этот процесс предварительной фильтрации в общем представлен на фиг. 8.
[0072] В частности, фиг. 8 показывает, что маска пикселов может быть применена к одному (или нескольким) слою(ям) (например, слою 330 BG на фиг. 3). Путем применения маски пикселов, обработку LSR не требуется выполнять или, вернее, можно опустить/пропустить на пикселах, которые были идентифицированы с помощью маски пикселов, обработаны маской пикселов или иным образом соответствуют маске пикселов.
[0073] В то время как на фиг. 8 раскрыто использование маски пикселов, другие типы операций также могут быть использованы для предварительной фильтрации пикселов. В качестве примера, а не ограничения, векторная маска может также использоваться, чтобы предварительно отфильтровать некоторые из пикселов (например, идентифицировать пикселы, чтобы опустить из LSR).
[0074] Другие варианты осуществления уменьшают или устраняют вычисления LSR в каждом местоположении пиксела путем применения ограничивающей рамки вокруг определенных слоев. Эта функциональность ограничивающей рамки представлена на фиг. 9. В частности, эта ограничивающая рамка используется для определения области, которая полностью охватывает определенный слой (или подобласть в пределах слоя) в выходном изображении (т.е. визуализируемой сцене). При использовании этой ограничивающей рамки, различные варианты осуществления устраняют все вычисления за пределами рамки при изменении выходного изображения (например, когда пользователь изменяет положение или ориентацию, и сцена корректируется соответствующим образом). Как иллюстрируется в этом абзаце, ограничивающая рамка используется для идентификации и выделения подобласти в пределах конкретного слоя. После того как подобласть выделена, компьютерная система 200 применяет обработку LSR к этой подобласти, в то же время воздерживаясь от применения обработки LSR в остальных областях в этом слое. В результате, компьютерная система 200 избирательно определяет, какие области слоя должны иметь обработку LSR, применяемую к нему.
[0075] Как описано выше, когда пользователь изменяет положение или ориентацию, то слои должны быть соответствующим образом скорректированы, чтобы отразить это изменение в положении или ориентации. В качестве примера, если пользователь перемещается вправо, различные слои должны быть скорректированы с учетом нового поля зрения пользователя. Здесь будет полезным для понимания следующий пример. Предположим, что пользователь просматривает многослойную сцену 700 согласно фиг. 7. Когда пользователь перемещается вправо, наблюдаемый пользователем вид дерева, дома и горного пейзажа изменится. В частности, новые области дерева и дома, вероятно, будет просматриваться. Наблюдаемый пользователем вид дерева и дома относительно горного ландшафта также будет меняться. В противоположность этому, вид на горный ландшафт, который находится очень далеко от пользователя, скорее всего, не изменится вообще, и если это произойдет, то изменение будет, по всей вероятности, крайне малым, так что оно будет незаметным. Поскольку дерево ближе к пользователю, чем дом, больше визуальных изменений будут заметны в связи с изменением перспективы для дерева, чем будут заметны в отношении к дому. Соответственно, компьютерная система поддерживает применение различной обработки LSR на различных слоях, что может запускаться путем обнаружения определенных порогов движения для различных слоев. Независимые триггеры могут применяться для отдельных пороговых определений для каждого слоя.
[0076] Продолжая обсуждение, чтобы выполнить эту коррекцию в ответ на изменение положения пользователя, компьютерная система 200 избирательно применяет различные преобразования к слоям. Эти преобразования применяются при обработке LSR и/или в течение более позднего процесса компоновки. Одно такое преобразование, как кратко упоминалось ранее, представляет собой обратимое преобразование изображения. Этот тип преобразования определяет углы слоя (например, возможно, с помощью ограничивающей рамки согласно фиг. 9) с использованием методов разрешения изображения. Это преобразование затем инвертируется, чтобы определить точку в едином слое (т.е. выходном изображении), которая соответствует верхнему левому углу входного изображения, как теперь иллюстрируется на фиг. 10. Аналогичные вычисления выполняются для определения других углов. После того, как слой идентифицирован, слоем можно манипулировать различными способами (например, растягивать, сокращать, скашивать и т.д.). Как обсуждалось ранее, другие типы преобразований включают гомографические преобразования, аффинные преобразования, коррекции пиксельного смещения, преобразования обработки глубины и матричные преобразования.
[0077] Здесь стоит отметить, что не все преобразования легко обратимы. Например, крупномасштабные движения могут выполняться с помощью матричного преобразования. Однако меньшие коррекции могут выполняться с использованием других преобразований (например, преобразований обработки глубины). Для учета этих преобразований, некоторые варианты осуществления устанавливают буферную область вокруг ранее сгенерированной ограничивающей рамки. Эта буферная область иллюстрируется на фиг. 11 и может использоваться, чтобы способствовать смешиванию различных слоев вместе, чтобы создать связанный, визуально привлекательный единый слой.
[0078] Во многих случаях, например, когда HMD поддерживает фовеальный рендеринг, фоновый слой будет полностью загораживаться слоем переднего плана после выполнения небольшой величины смешивания. Представленные варианты осуществления извлекают выгоду из таких ситуаций за счет сокращения или даже полностью исключения объема обработки, которая применяется к таким загороженным частям. Например, фиг. 12 показывает слой переднего плана, который является прозрачным и который загораживает часть нижнего слоя BG. Для частей нижнего слоя, которые загорожены непрозрачными областями верхнего слоя, вычисления LSR могут пропускаться, и потребление ресурса батареи питания может быть уменьшено.
[0079] После обсуждения компьютерной системы, которая оптимизирует обработку LSR на многослойной сцене, раскрытие теперь будет представлять различные примерные способы для оптимизации обработки LSR. Следует отметить, что последующее обсуждение относится к ряду способов и действий способов, которые могут выполняться. Хотя действия способа могут обсуждаться в определенном порядке или иллюстрироваться на блок–схеме последовательности операций, как происходящие в определенном порядке, никакого конкретного порядка не требуется, если это специально не оговорено или требуется, поскольку действие зависит от другого действия, завершаемого перед выполняемым действием.
Избирательное применение обработки ре–проекции на подобластях слоя
[0080] Фиг. 13 иллюстрирует примерный способ 1300, который выполняется с помощью компьютерной системы, такой как компьютерная система 200 на фиг 2. В частности, способ 1300 включает в себя действие (действие 1310) генерации сцены, которая включает в себя один или несколько слоев.
[0081] Здесь стоит отметить, что в некоторых случаях, весь слой может состоять только из одного элемента, так что элемент представляет собой слой. Используя фиг. 5 в качестве примера, весь слой 500 состоит только из одного элемента дома. В других случаях, однако, слой может состоять из нескольких элементов. В качестве примера, а не ограничения, фиг. 4 иллюстрирует, что слой 400 включает в себя горный ландшафт, дорогу, небо и, возможно, пастбища. Здесь, горный ландшафт можно рассматривать как отдельный элемент, дорога может рассматриваться как отдельный элемент и т.д. Таким образом, в некоторых случаях, слой 400 состоит из множества различных элементов. В других вариантах осуществления, однако, не существует никакого различия между элементами в слое.
[0082] В некоторых вариантах осуществления, сцена генерируется на основе различных ориентаций части (например, HMD) компьютерной системы. Для пояснения, ориентации включают в себя фактические ориентации, определяемые инструментарием IMU, а также предсказанные ориентации, определяемые оценками поведения и предполагаемым движением. Здесь, компонент 210 генерации сцены генерирует сцену способом, описанным ранее. Дальнейшее описание этой функциональности будет представлено ниже в данном раскрытии.
[0083] Некоторые варианты осуществления конфигурируют эту сцену для фовеального рендеринга. В частности, эти варианты осуществления используют технологию отслеживания глаз для отслеживания движений глаз пользователя. Затем, эти варианты осуществления визуализируют сцену, так что по меньшей мере один из слоев отображается как вблизи фовеа (ямки) глаза пользователя, а другие слои не отображаются как вблизи фовеа глаза пользователя. Соответственно, если варианты осуществления различаются между элементами в пределах слоя, то элементы также отображаются в соответствии с методами фовеального рендеринга.
[0084] Способ 1300 также включает в себя действие (действие 1320) идентификации подобласти в пределах одного или нескольких слоев. Эта подобласть отличается от по меньшей мере одной другой области в одном или нескольких слоях. Здесь компонент 230 создания слоя манипулирует и иным образом различает подобласти в пределах различных слоев.
[0085] В некоторых вариантах осуществления, процесс идентификации этой подобласти также включает в себя идентификацию 1) конкретного элемента в пределах одного или нескольких слоев и 2) буферной границы вокруг конкретного элемента. Таким образом, в этих вариантах осуществления, подобласть включает в себя сам элемент, а также буферную границу вокруг элемента. В противоположность этому, другие варианты осуществления не включают в себя такую буферную границу вокруг подобласти.
[0086] В примере из вышеизложенного, слой 400 на фиг. 4 состоит из нескольких элементов (например, элемент горного ландшафта, элемент дороги и т.д.). Некоторые варианты осуществления выбирают весь элемент (например, элемент дороги), чтобы служить в качестве подобласти. В качестве альтернативы, однако, идентифицированная подобласть может быть просто обобщенной частью слоя без какого–либо конкретного отношения к элементу.
[0087] В некоторых вариантах осуществления, конкретный элемент идентифицируется в ответ на обнаружение, что конкретный порог движения был удовлетворен или превышен для элемента по отношению к HMD, который не был удовлетворен для относительного движения других элементов/слоев по отношению к HMD.
[0088] Способ 1300 затем включает в себя действие (действие 1330) отделения идентифицированной подобласти от по меньшей мере одной другой области одного или нескольких слоев. Подобно описанному выше этапу, компонент 230 создания слоя также выполняет это действие. Это отделение выполняется в различных формах. Например, это отделение выполняется путем применения маски пикселов или векторной маски к одному или нескольким слоям. Как подробно описано выше, буферная область может быть также применена вокруг этой отделенной подобласти. Эта буферная область создается так, как описано ранее в данном раскрытии.
[0089] Продолжая пример из вышеизложенного, предположим, что элемент дороги выбран в качестве подобласти. Этот элемент дороги тогда отличается от других областей в слое 400 (например, другие области по меньшей мере включают в себя элемент горного ландшафта). Для того чтобы отличить элемент дороги, варианты осуществления отделяют элемент дороги от других областей, используя маску пикселов, векторную маску, ограничивающую рамку и т.д.
[0090] И наконец, фиг. 13 иллюстрирует действие (действие 1340) применения обработки ре–проекции поздней стадии к отделенной подобласти, в то же время воздерживаясь от применения обработки ре–проекции поздней стадии по меньшей мере одной другой области из одного или нескольких слоев. В качестве примера, компонент 220 LSR выполняет обработку LSR способом, описанным ранее. В некоторых вариантах осуществления, обработка LSR включает в себя одно или несколько преобразований для преобразования одного или нескольких слоев или элементов в пределах одного или нескольких слоев. Эти преобразования включают в себя гомографическое преобразование, аффинное преобразование, обратимое преобразование изображения, коррекцию пиксельного смещения, преобразование обработки глубины, матричное преобразование или любой другой вид преобразования изображения (растяжение, перекос, преобразование подобия, поворот и т.д.). Кроме того, одно или несколько преобразований применяются к одному или нескольким слоям (или элементам в пределах этих слоев) в ответ на определенную предсказанную ориентацию части (например, HMD) компьютерной системы. Здесь стоит отметить, что в некоторых многослойных сценах, обработка LSR применяется для всех пикселов в одном слое, в то время как обработка LSR применяется только к поднабору пикселов в другом слое. В других ситуациях, однако, обработка LSR применяется для всех пикселов во всех слоях. Такая ситуация представляет собой часто сценарий наихудшего случая.
[0091] Продолжая пример из вышеизложенного, после того как элемент дороги выбран для выделения, варианты осуществления выполняют обработку LSR на этом элементе дороги. Например, предположим, что пользователь изменяет свое положение или ориентацию каким–либо образом (например, возможно, пользователь переходит из положения стоя в положение сидя). Участки дороги, наиболее удаленные от пользователя, скорее всего, не сильно изменятся в перспективе или поле зрения. Однако участки дороги, ближайшие к пользователю, вероятно, значительно изменятся в перспективе в ответ на изменение в положении пользователя, тем самым превышая порог движения по общему расстоянию и/или ускорению. В ответ на эту новую ориентацию, эти варианты осуществления выполняют обработку LSR на идентифицированном элементе (например, дороге или определенной части дороги).
[0092] Как указано выше, эта обработка LSR может также включать в себя избирательное применение различных преобразований. Здесь некоторые преобразования потребуется применять к элементу дороги, чтобы гарантировать, что ее визуализация надлежащим образом отображается в ответ на изменение в положении пользователя. Например, участок дороги, ближайший к пользователю, вероятно, должен быть растянут, скошен или иным образом обработан, чтобы гарантировать, что дорога надлежащим образом выровнена и воспринимается пользователем. В результате, обработка LSR, которая применяется к идентифицированной подобласти (например, элемент дороги в слое 400), может отличаться от обработки LSR, которая применяется к остальным областям в пределах этого слоя (например, возможно, никакая обработка LSR не была применена к элементу горного ландшафта, поскольку этот элемент воспринимается как очень удаленный от пользователя и будет меняться очень мало в ответ на изменения в положении пользователя).
[0093] В сценах, которые включают в себя несколько слоев, часть одного слоя (например, верхний слой) будет перекрывать часть нижнего слоя. В результате, часть верхнего слоя загораживает закрываемую часть нижнего слоя. В таких многослойных сценах, идентифицированная подобласть может быть включена в часть верхнего слоя, которая загораживает закрываемую часть лежащего под ним слоя. Здесь, стоит отметить, что идентифицированная подобласть, в некоторых случаях, будет включать в себя прозрачную часть (например, прозрачную часть 630 из фиг. 6). В этих ситуациях, часть нижнего слоя, которая расположена под прозрачной частью подобласти, будет наблюдаться через прозрачную часть, даже после применения обработки LSR.
[0094] Соответственно, варианты осуществления поддерживают избирательное применение обработки LSR на подобластях слоя многослойной сцены.
Избирательное применение обработки ре–проекции к многослойным сценам
[0095] Фиг. 14 иллюстрирует еще один примерный способ 1400, который выполняется компьютерной системой, такой как компьютерная система 200 на фиг. 2, где каждый элемент сцены может содержать другой слой.
[0096] Сначала, способ 1400 включает в себя действие (действие 1410) генерирования сцены, которая включает в себя множество слоев. Здесь, компонент 210 генерации сцены и компонент 230 создания слоя работают совместно, чтобы генерировать многослойные сцены. Так же, как и выше, эта сцена может быть включена как часть сцены смешанной, дополненной или виртуальной реальности.
[0097] В некоторых вариантах осуществления, эта сцена генерируется в ответ на различные ориентации части (например, HMD) компьютерной системы. Эти ориентации включают в себя 1) фактические ориентации, определяемые инструментарием IMU, и 2) предсказанные ориентации на основе поведения пользователя (например, как исторического, так и текущего поведения) и ожидаемого движения. Когда предсказанная ориентация сгенерирована, оно основана на предыдущих определениях ориентации. Кроме того, данные предсказанной ориентации используются для увеличения данных фактической ориентации, так что компьютерная система снижает частоту получения данных от своего аппаратного инструментария IMU. Путем уменьшения частоты реального сбора данных, варианты осуществления обеспечивают продление срока службы батареи питания компьютерной системы.
[0098] Может генерироваться множество определений ориентации. Например, некоторые варианты осуществления генерируют множество определений предсказанной ориентации для конкретного момента времени (например, десять различных оценок ориентации для времени X), где каждое определение предсказанной ориентации представляет собой оценку относительно того, как HMD будет позиционироваться в этот момент времени. Эти варианты осуществления назначают вероятность реализации для каждого из этих определений предсказанной ориентации (например, ориентация Y имеет вероятность 52% того, что будет реализована, ориентация Z имеет вероятность 35% того, что будет реализована, и т.д.). Эта вероятность определяется на основе 1) исторического поведения пользователя, 2) текущих движений пользователя и/или 3) событий, которые в настоящее время происходят или будут в ближайшее время происходить в сцене (например, программное приложение определяет, что новый враг скоро появится в сцене в конкретном местоположении и время, и программное приложение оценивает, что пользователь будет реагировать на это новое появление путем выполнения определенного движения). После того как определения вероятности завершены, варианты осуществления выбирают наиболее высоко ранжированную предсказанную ориентацию и продолжают со следующей операцией.
[0099] Другие варианты осуществления генерируют множество определений предсказанной ориентации в другом порядке. Здесь, вместо того, чтобы генерировать множество определений предсказанной ориентации для одного момента времени, эти варианты осуществления основывают последовательные определения предсказанной ориентации на предыдущих определениях предсказанной ориентации. Для пояснения, предположим, что компьютерная система собирает данные фактической ориентации с определенной частотой, возможно, каждые 20 мс (это число является только примером и не должно рассматриваться как ограничивающий показатель и может быть больше или меньше, чем 20 мс). Следует отметить, однако, сцена может потребовать обновления с более быстрым темпом. В результате, эти варианты осуществления расширяют данные фактической ориентации за счет данных предсказанной ориентации. Для этого, эти варианты осуществления генерируют первую предсказанную ориентацию, основываясь по меньшей мере частично, на данных фактической ориентации, и визуализируют сцену, основываясь на той первой предсказанной ориентации. Затем, варианты осуществления генерируют вторую предсказанную ориентацию, основываясь по меньшей мере частично, на первой предсказанной ориентацию, и затем визуализируют сцену, основываясь на той второй предсказанной ориентации. Этот процесс продолжается, причем последовательная предсказанная ориентация основывается на предыдущей предсказанной ориентации, пока компьютерная система снова не получит данные фактической ориентации. В результате, последовательные предсказанные ориентации отличаются от ранее полученной фактически определенной ориентации части компьютерной системы. В некоторых ситуациях (и в ответ на различные предсказанные ориентации), обработка LSR, которая применяется к нескольким слоям в сцене, применяется ко всем пикселам этих слоев. В других ситуациях, однако, обработка LSR применяется только к поднабору пикселов в пределах одного или нескольких слоев.
[00100] Способ 1400 также включает в себя действие (действие 1420) применения обработки LSR к первому слою во множестве слоев. Здесь, компонент 220 LSR применяет обработку LSR к слоям. Следует отметить, что некоторые варианты осуществления применяют обработку LSR только к идентифицированному поднабору пикселов в пределах конкретного слоя (например, возможно, некоторые из пикселов были предварительно отфильтрованы из слоя способом, описанным выше в данном раскрытии), в то время как другие варианты осуществления изобретения применяют обработку LSR ко всем пикселам из множества слоев.
[00101] Способ 1400 также включает в себя действие (действие 1430) применения обработки LSR ко второму слою во множестве слоев. Обработка LSR, применяемая к этому второму слою, выполняется независимо от обработки LSR первого слоя. Кроме того, обработка LSR, применяемая ко второму слою, включает в себя одно или несколько преобразований (например, обратимое преобразование изображения и/или матричное преобразование). Эти преобразования применяются ко второму слою, но не применяются к первому слою. Различные преобразования, которые применяются к первому слою и второму слою, могут отличаться, основываясь на обнаружении различных атрибутов различных слоев и/или основываясь на определении, что различные пороги движения были удовлетворены или не удовлетворены для различных слоев. Сохраненные и доступные параметры определяют, когда различные преобразования должны быть применены к различным слоям.
[00102] Дополнительные преобразования могут быть также применены во время последующего процесса компоновки, который будет описан ниже. Таким образом, преобразование изображения может быть применено к слоям в множество различных моментов времени. Подобно вышеописанному действию, компонент 220 LSR применяет эту обработку LSR. В результате, компонент 220 LSR может применять различную обработку LSR к различным слоям в различное время.
[00103] Здесь стоит отметить, что широкое разнообразие преобразований может быть применено к слоям. В дополнение к вышеупомянутым преобразованиям (т.е. гомографическим преобразованиям, аффинным преобразованиям, обратимым преобразованиям изображений, преобразованиям обработки глубины, преобразованиям пиксельного смещения, матричным преобразованиям и т.д.), преобразования также включают в себя 1) перенос, 2) отражение, 3) вращение или 4) преобразование подобия. Различные другие преобразования могут быть применены для изменения других характеристик слоя. В качестве примера, предположим, что в ответ на изменение в положении пользователя, новые блики или отражения должны быть введены в сцену (например, возможно, что компьютерная система определяет, что солнечный свет теперь должен отражаться от окна дома на фиг. 5 и должен проецироваться в глаза пользователя). Этот новый блик или отражение будет влиять на то, как пользователь видит сцену, в частности, аспекты цвета и прозрачности различных слоев. В результате, цвет или прозрачность различных слоев сцены могут потребовать изменения. Поэтому, в дополнение к преобразованиям размера, одно или несколько преобразований также включают в себя преобразования цвета и прозрачности.
[00104] Способ 1400 также включает в себя действие (действие 1440) создания единого слоя. Этот единый слой создается путем компоновки различных слоев вместе (например, преобразованного второго слоя с первым слоем). Здесь, компонент 230 создания слоя создает этот единый слой.
[00105] Некоторые варианты осуществления выполняют эту компоновку путем генерирования буферной области вокруг второго слоя таким образом, как было описано ранее в данном описании. Кроме того, компоновка преобразованного второго слоя с первым слоем может привести к тому, что преобразованный второй слой перекроет часть первого слоя. В результате, преобразованный второй слой по меньшей мере частично загораживает часть первого слоя. Однако некоторые из слоев могут включать в себя прозрачную часть(и). Из–за этой прозрачной части(ей), контент, который находится под прозрачную частью(ями), может просматриваться через прозрачную часть(и).
[00106] Наконец, способ 1400 включает в себя действие (действие 1450) рендеринга единого слоя. Этот единый слой может визуализироваться на HMD. Здесь, компонент 240 рендеринга визуализирует единый слой.
[00107] Некоторые варианты осуществления поддерживают фовеальный рендеринг на HMD, так что единый слой визуализируется с использованием методов фовеального рендеринга. Для пояснения, если базовая компьютерная система включает в себя HMD, то рендеринг единого слоя выполняется путем рендеринга единого слоя на HMD.
[00108] Хотя не показано на фиг. 14, другие варианты осуществления включают в себя действия предварительной фильтрации пикселов из различных слоев. Например, некоторые пикселы первого слоя могут быть предварительно отфильтрованы от других пикселов первого слоя. В качестве альтернативы, некоторые пикселы первого слоя могут быть предварительно отфильтрованы от пикселов другого слоя (например, в случае единого, составного слоя). Этот процесс предварительной фильтрации выполняется путем применения маски пикселов или векторной маски. В этих вариантах осуществления, по меньшей мере некоторые из пикселов, которые предварительно отфильтрованы, идентифицируются как краевые пикселы. Эти краевые пикселы определяются как вносящие меньший вклад в качество сцены, чем неотфильтрованные или не–краевые пикселы. Поскольку эти пикселы вносят меньший вклад в качество сцены, данные варианты осуществления оптимизируют срок службы батареи, пропуская обработку LSR на этих пикселах.
[00109] Другие варианты осуществления генерируют дополнительные предсказанные ориентации части (например, HMD) компьютерной системы. Эти варианты осуществления создают новый единый слой вновь путем компоновки второго слоя с первым слоем. В некоторых случаях, часть первого слоя, который ранее был видимым через прозрачную часть второго слоя, теперь загораживается в ответ на изменения ориентации, ассоциированные с предсказанной следующей ориентацией. Теперь, новая часть первого слоя, которая не была первоначально видимой через прозрачную часть второго слоя, становится видимой через прозрачную часть в ответ на изменения ориентации, ассоциированные с предсказанной следующей ориентацией (например, новый вид горного ландшафта через окно, показанное на фиг. 6, теперь становится наблюдаемым).
[00110] Некоторые варианты осуществления также определяют, когда ранее перекрытая часть первого слоя по–прежнему перекрыта вторым слоем, даже в ответ на предсказанную следующую ориентацию части компьютерной системы (например, часть горного ландшафта вблизи низа дома на фиг. 6 по–прежнему перекрывается). В ответ, эти варианты осуществления пропускают обработку LSR перекрывающейся части первого слоя. Для пояснения, варианты осуществления применяют обработку LSR к некоторым участкам первого слоя, в то же время воздерживаясь от применения обработки LSR к перекрывающейся части первого слоя, которая по–прежнему перекрыта вторым слоем. В результате, варианты осуществления динамически определяют, когда обработку LSR можно избежать, и эффективно оптимизируют срок службы батареи питания компьютерной системы путем пропуска обработки LSR во время этих избегаемых случаев.
[00111] Следует принять во внимание, что в то время как большая часть этого раскрытия фокусируется на генерации данных ориентации на основе ориентации HMD, это не всегда будет иметь место. Например, раскрытые варианты осуществления также могут генерировать данные относительной ориентации между HMD и другим устройством, установленным на теле пользователя (например, портативным устройством, ножным устройством, нагрудным устройством и т.д.) или даже устройством, которое не установлено на теле пользователя (например, базовой станцией, которая расположена в помещении и которая используется для дальнейшего улучшения опыта смешанной реальности путем отображения и детализации содержимого помещения). Таким образом, в дополнение к генерации сцены на основе ориентации HMD, варианты осуществления также могут генерировать сцены на основе отношения между HMD и различными устанавливаемыми на теле и/или базовыми устройствами. Здесь будет полезным краткий пример. Предположим, что пользователь носит HMD и держит портативное устройство. При погружении в сцену, лазерная пушка может быть визуализирована как прикрепленная к руке пользователя. Для вычисления корректной ориентации и положения лазерной пушки, компьютерная система основывается на данных, собранных из ориентации как HMD, так и портативного устройства. Соответственно, варианты осуществления, описанные здесь, не ограничены генерацией сцены, основанной исключительно на данных ориентации, полученных из HMD. Скорее, варианты осуществления также могут генерировать сцену на основе данных ориентации, собранных от других типов устанавливаемых на теле и/или базовых устройств.
[00112] Соответственно, это раскрытие представляет системы, аппаратные устройства хранения и способы, которые оптимизируют обработку LSR для генерируемых компьютером сцен, которые включают в себя множество слоев. Некоторые варианты осуществления обеспечивают возможность избирательного применения обработки LSR к различным подобластям слоя. Другие варианты осуществления обеспечивают возможность избирательного применения обработки LSR к многослойным сценам. В результате этих процессов, варианты осуществления, представленные здесь, оптимизируют и избирательно применяют обработку LSR и могут, таким образом, способствовать сбережению мощности, которая иначе была бы затрачена универсальной обработкой LSR.
[00113] Настоящее изобретение может быть реализовано в других конкретных формах без отклонения от его сущности или характеристик. Описанные варианты осуществления следует рассматривать во всех отношениях только как иллюстративные, а не ограничительные. Объем настоящего изобретения, таким образом, определяется прилагаемой формулой изобретения, а не предшествующим описанием. Все изменения, которые находятся в пределах значения и диапазона эквивалентности формулы изобретения, должны быть включены в ее объем.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ АСИНХРОННОЙ РЕПРОЕКЦИИ ИЗОБРАЖЕНИЯ 3D-СЦЕНЫ | 2021 |
|
RU2792721C2 |
ГИБРИДНЫЙ РЕНДЕРИНГ | 2020 |
|
RU2810701C2 |
СИСТЕМА И СПОСОБ РЕКОНСТРУКЦИИ СВОЙСТВ ПОВЕРХНОСТИ И ОПРЕДЕЛЕНИЯ ПОЛОЖЕНИЯ ОЦИФРОВАННЫХ 3D ОБЪЕКТОВ | 2022 |
|
RU2806729C1 |
Стереопросмотр | 2015 |
|
RU2665872C2 |
МЕХАНИЗМЫ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ НА ОСНОВЕ КАМЕРЫ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ УСТАНОВЛЕННЫХ НА ГОЛОВЕ ДИСПЛЕЕВ | 2014 |
|
RU2661857C2 |
УСТАНАВЛИВАЕМОЕ НА ГОЛОВЕ УСТРОЙСТВО ОТОБРАЖЕНИЯ И ВЫПОЛНЯЕМЫЙ ИМ СПОСОБ | 2017 |
|
RU2749643C1 |
АДАПТИВНОЕ РАСПОЗНАВАНИЕ СОБЫТИЙ | 2014 |
|
RU2684189C2 |
СИСТЕМА И СПОСОБ ДЛЯ ДОПОЛНЕННОЙ И ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ | 2012 |
|
RU2621633C2 |
СПОСОБ ВИЗУАЛИЗАЦИИ ДИНАМИЧЕСКОЙ АНАТОМИЧЕСКОЙ СТРУКТУРЫ | 2020 |
|
RU2808612C2 |
ПРИВЛЕЧЕНИЕ ВЗГЛЯДА ЗРИТЕЛЕЙ УСТРОЙСТВ ОТОБРАЖЕНИЯ | 2015 |
|
RU2677593C2 |
Изобретение относится к области вычислительной техники. Технический результат заключается в оптимизации обработки окончательной коррекции изображения. Технический результат достигается за счет генерирования сцены, которая включает в себя множество слоев, причем данное множество слоев включает в себя первый слой и второй слой, при этом сцена генерируется на основе первой предсказанной ориентации части компьютерной системы; идентификации подобласти в пределах упомянутого множества слоев в качестве реакции на определение того, что порог движения пользователя, связанный с первым слоем, удовлетворен и что порог движения пользователя, связанный со вторым слоем, не удовлетворен, причем эта подобласть включает в себя по меньшей мере часть первого слоя и исключает по меньшей мере часть второго слоя, при этом данная подобласть отличается от по меньшей мере одной другой области в упомянутом множестве слоев; отделения упомянутой подобласти от упомянутой по меньшей мере одной другой области множества слоев; и применения обработки репроекции поздней стадии к отделенной подобласти, в то же время воздерживаясь от применения обработки репроекции поздней стадии к упомянутой по меньшей мере одной другой области множества слоев. 3 н. и 18 з.п. ф-лы, 14 ил.
1. Компьютерная система, выполненная с возможностью оптимизации репроекции поздней стадии, при этом компьютерная система содержит:
один или более процессоров; и
один или более машиночитаемых аппаратных носителей данных, на которых сохранены машиноисполняемые инструкции, причем машиноисполняемые инструкции исполняются одним или более процессорами, чтобы побуждать компьютерную систему оптимизировать репроекцию поздней стадии, предписывая компьютерной системе:
генерировать сцену, которая включает в себя множество слоев, причем данное множество слоев включает в себя первый слой и второй слой, при этом сцена генерируется на основе первой предсказанной ориентации части компьютерной системы;
идентифицировать подобласть в пределах упомянутого множества слоев в качестве реакции на определение того, что порог движения пользователя, связанный с первым слоем, удовлетворен и что порог движения пользователя, связанный со вторым слоем, не удовлетворен, причем эта подобласть включает в себя по меньшей мере часть первого слоя и исключает по меньшей мере часть второго слоя, при этом данная подобласть отличается от по меньшей мере одной другой области в упомянутом множестве слоев;
отделять упомянутую подобласть от упомянутой по меньшей мере одной другой области множества слоев; и
применять обработку репроекции поздней стадии к отделенной подобласти, в то же время воздерживаясь от применения обработки репроекции поздней стадии к упомянутой по меньшей мере одной другой области множества слоев.
2. Компьютерная система по п.1, в которой упомянутая обработка репроекции поздней стадии включает в себя применение обратимого преобразования изображения к упомянутому множеству слоев.
3. Компьютерная система по п.1, в которой упомянутое отделение подобласти выполняется, по меньшей мере отчасти, путем применения маски пикселов к упомянутому множеству слоев.
4. Компьютерная система по п.1, в которой упомянутая идентификация подобласти включает в себя идентификацию (1) конкретного элемента в пределах упомянутого множества слоев и (2) границы вокруг этого конкретного элемента, причем упомянутая подобласть включает в себя данный элемент и упомянутую границу вокруг конкретного элемента.
5. Компьютерная система по п.1, в которой упомянутая обработка репроекции поздней стадии содержит одно или более преобразований для преобразования упомянутого множества слоев, причем эти одно или более преобразований применяются к данному множеству слоев в качестве реакции на первую предсказанную ориентацию части компьютерной системы.
6. Компьютерная система по п.1, в которой исполнение машиноисполняемых инструкций дополнительно предписывает компьютерной системе применять буферную область вокруг отделенной подобласти.
7. Компьютерная система по п.1, при этом упомянутая сцена представляет собой сцену смешанной реальности.
8. Компьютерная система по п.1, при этом упомянутая сцена представляет собой сцену дополненной реальности.
9. Компьютерная система по п.1, при этом упомянутая сцена представляет собой сцену виртуальной реальности.
10. Аппаратный носитель данных, на котором сохранены машиноисполняемые инструкции, которые являются исполняемыми одним или более процессорами компьютерной системы, чтобы побуждать компьютерную систему оптимизировать обработку репроекции поздней стадии, предписывая компьютерной системе:
генерировать сцену, которая включает в себя множество слоев, причем данное множество слоев включает в себя первый слой и второй слой, при этом сцена генерируется на основе первой предсказанной ориентации части компьютерной системы;
идентифицировать подобласть в пределах упомянутого множества слоев в качестве реакции на определение того, что порог движения пользователя, связанный с первым слоем, удовлетворен и что порог движения пользователя, связанный со вторым слоем, не удовлетворен, причем эта подобласть включает в себя по меньшей мере часть первого слоя и исключает по меньшей мере часть второго слоя, при этом данная подобласть отличается от по меньшей мере одной другой области в упомянутом множестве слоев;
отделять упомянутую подобласть от упомянутой по меньшей мере одной другой области множества слоев; и
применять обработку репроекции поздней стадии к отделенной подобласти, в то же время воздерживаясь от применения обработки репроекции поздней стадии к упомянутой по меньшей мере одной другой области множества слоев.
11. Аппаратный носитель данных по п.10, при этом упомянутое отделение подобласти, по меньшей мере отчасти, выполняется путем применения векторной маски к упомянутому множеству слоев.
12. Аппаратный носитель данных по п.10, при этом обработка репроекции поздней стадии включает в себя применение матричного преобразования к упомянутому множеству слоев.
13. Аппаратный носитель данных по п.10, при этом первая предсказанная ориентация определяется на основе информации, ранее полученной одним или более аппаратными инструментами компьютерной системы.
14. Аппаратный носитель данных по п.13, при этом упомянутые один или более аппаратных инструментов компьютерной системы включают в себя акселерометр, гироскоп, магнитометр, датчик глубины, камеру или инфракрасный датчик.
15. Аппаратный носитель данных по п.10, при этом первый слой визуализируется в соответствии с первым разрешением, и (2) второй слой визуализируется в соответствии со вторым разрешением.
16. Аппаратный носитель данных по п.15, при этом компьютерная система также отслеживает движения глаз пользователя компьютерной системы, и элементы сцены, включенные в первый слой, отображаются вблизи фовеа глаза пользователя, в то время как элементы сцены, включенные во второй слой, не отображаются вблизи фовеа глаза пользователя, причем сцена сконфигурирована для фовеального рендеринга.
17. Аппаратный носитель данных по п.10, при этом обработка репроекции поздней стадии, которая применяется к первому слою, отличается от обработки репроекции поздней стадии, которая применяется ко второму слою.
18. Аппаратный носитель данных по п.17, при этом разница между обработкой репроекции поздней стадии первого слоя и обработкой репроекции поздней стадии второго слоя обусловлена разницей в определенной глубине между первым слоем и вторым слоем.
19. Способ оптимизации репроекции поздней стадии, причем способ выполняется одним или более процессорами компьютерной системы, при этом способ содержит этапы, на которых:
генерируют сцену, которая включает в себя множество слоев, причем данное множество слоев включает в себя первый слой и второй слой, при этом сцена генерируется на основе первой предсказанной ориентации части компьютерной системы;
идентифицируют подобласть в пределах упомянутого множества слоев в качестве реакции на определение того, что порог движения пользователя, связанный с первым слоем, удовлетворен и что порог движения пользователя, связанный со вторым слоем, не удовлетворен, причем эта подобласть включает в себя по меньшей мере часть первого слоя и исключает по меньшей мере часть второго слоя, при этом данная подобласть отличается от по меньшей мере одной другой области в упомянутом множестве слоев;
отделяют упомянутую подобласть от упомянутой по меньшей мере одной другой области множества слоев; и
применяют обработку репроекции поздней стадии к отделенной подобласти, в то же время воздерживаясь от применения обработки репроекции поздней стадии к упомянутой по меньшей мере одной другой области множества слоев.
20. Способ по п.19, в котором обработка репроекции поздней стадии применяется ко всем пикселам в первом слое, при этом обработка репроекции поздней стадии применяется лишь к поднабору пикселов во втором слое.
21. Способ по п.19, в котором упомянутая подобласть включает в себя прозрачную часть, при этом после применения обработки репроекции поздней стадии к этой отделенной подобласти закрываемая часть второго слоя является видимой через прозрачную часть упомянутой подобласти.
US 20160299567 A1, 13.10.2016 | |||
US 20150029218 A1, 29.01.2015 | |||
US 20150022435 A1, 22.01.2015 | |||
US 20160148384 A1, 26.05.2016 | |||
СИСТЕМА И СПОСОБ ДЛЯ ДОПОЛНЕННОЙ И ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ | 2012 |
|
RU2621633C2 |
Авторы
Даты
2021-12-15—Публикация
2018-03-20—Подача