ОСНОВАННЫЙ НА КОНТЕЙНЕРЕ ПОВОРОТ ВИРТУАЛЬНОЙ КАМЕРЫ
CONTAINER-BASED TURNING OF A VIRTUAL CAMERA

УРОВЕНЬ ТЕХНИКИ
[0001] Сайты для публикации являются ключевым способом совместного использования и потребления информации в сети. Существует небольшое число услуг, которые демократизируют создание веб–сайтов. Тем не менее отсутствуют услуги для решения проблемы создания сайтов, которые реализуют весь потенциал 3D контента. С растущим напором к созданию простого 3D контента существует необходимость в инструментах и/или услугах для обеспечения потребления 3D контента. Например, часто вызывает проблемы перемещение внутри виртуального мира посредством использования устройства виртуальной реальности. В некоторых случаях пользователи могут не понимать, как использовать или взаимодействовать с виртуальным миром. Кроме того, автоматическое перемещение пользователя внутри виртуального мира может быть сложным для осуществления и может вызывать дискомфорт или укачивание у пользователя.
[0002] Именно в отношении этих и других общих соображений были описаны варианты осуществления. Также несмотря на то, что обсуждались относительно конкретные проблемы, следует понимать, что варианты осуществления не должны ограничиваться решением конкретных проблем, идентифицированных на уровне техники.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003] Настоящая технология относится к управлению видом пользователя в виртуальном мире, таком как виртуальное 3D пространство. Например, пользователь может носить шлем–дисплей (HMD), который предоставляет вид с виртуальной реальности виртуального мира. Пока пользователь просматривает виртуальный мир через HMD, пользователь может пожелать взаимодействовать с объектами в виртуальном мире. Чтобы способствовать взаимодействиям с виртуальным миром, настоящая технология меняет вид, воспринимаемый пользователем (вид пользователя), посредством ассоциации, или упаковки, виртуальной камеры в контейнер. Виртуальная камера и контейнер ассоциированы таким образом, что изменения ориентации контейнера вызывают изменение ориентации виртуальной камеры. Раз так, то посредством управления ориентацией контейнера программа управляет видом, который воспринимается пользователем. Настоящая технология также учитывает поворот головы пользователя, который носит устройство так, что итоговый вид является видом, который требуется программе, представляющей виртуальный мир. Например, технология может определять угол поворота виртуальной камеры перед поворотом контейнера в новый требуемый вид. Технология затем регулирует величину поворота для контейнера на основе определенного угла поворота виртуальной камеры. Посредством компенсации угла поворота виртуальной камеры, управление которым осуществляется посредством ориентации головы пользователя, итоговый вид пользователя находится в направлении, которое исходно требуется программой.
[0004] Это краткое изложение сущности изобретения приведено для представления подборки концепций в упрощенной форме, которые дополнительно описываются ниже в Подробном Описании. Данное краткое изложение сущности изобретения не предназначена ни для того, чтобы идентифицировать ключевые признаки или неотъемлемые признаки заявленного изобретения, ни для того, чтобы использоваться для ограничения объема заявленного изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0005] Неограничивающие и неисчерпывающие примеры описываются при обращении к нижеследующим Фигурам.
[0006] Фигура 1 иллюстрирует пример шлема–дисплея.
[0007] Фигура 2A иллюстрирует примерный вид внутри 3D пространства, иллюстрирующий маркер передвижения.
[0008] Фигура 2B иллюстрирует пример, в котором маркер передвижения отображается в положении вокруг 3D объекта в виртуальном мире.
[0009] Фигура 3 изображает примерный способ для отображения маркера передвижения.
[0010] Фигура 4 изображает примерную систему отсчета ориентации для виртуальной камеры.
[0011] Фигура 5 изображает примерный способ для управления видом виртуальной камеры в виртуальном мире с помощью использования контейнера.
[0012] Фигура 6 является структурной схемой, иллюстрирующей примерные физические компоненты вычислительного устройство, с помощью которого могут быть реализованы на практике аспекты изобретения.
[0013] Фигуры 7A и 7B являются упрощенными структурными схемами мобильного вычислительного устройства, с помощью которого могут быть реализованы на практике аспекты изобретения.
[0014] Фигура 8 является упрощенной структурной схемой распределенной вычислительной системы, с помощью которой могут быть реализованы на практике аспекты изобретения.
[0015] Фигура 9 иллюстрирует планшетное вычислительное устройство для исполнения одного или более аспектов настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
[0016] В нижеследующем подробном описании обращаются к сопроводительным чертежам, которые образуют его часть и на которых показаны в качестве иллюстрации конкретные варианты осуществления или примеры. Эти аспекты могут быть объединены, могут быть использованы другие аспекты, и структурные изменения могут быть выполнены, не отступая от настоящего изобретения. Варианты осуществления могут быть реализованы на практике в качестве способов, систем или устройств. Соответственно, варианты осуществления могут принимать форму реализации в аппаратном обеспечении, полной реализации в программном обеспечении или реализации, объединяющей аспекты программного обеспечения и аппаратного обеспечения. Нижеследующее подробное описание, вследствие этого, не следует рассматривать в духе ограничения, и объем настоящего изобретения определяется прилагаемой формулой изобретения и ее эквивалентами.
[0017] Настоящая технология относится к управлению видом пользователя в виртуальном мире, таком как виртуальное 3D пространство. Например, пользователь может носить шлем–дисплей (HMD), который предоставляет вид с виртуальной реальности виртуального мира. Пока пользователь просматривает виртуальный мир через HMD, пользователь может пожелать взаимодействовать с объектами в виртуальном мире. Чтобы способствовать такому взаимодействию, настоящая технология предоставляет для отображения маркеры передвижения в виртуальном мире, которые могут быть выбраны пользователем. Как только пользователь выбирает маркер передвижения, вид пользователя транспортируется в вид, ассоциированный с маркером передвижения. В качестве примера, конкретный маркер передвижения может быть выбран, чтобы просматривать конкретный объект в виртуальном мире из конкретного положения и конкретной ориентации. Поворот вида пользователя после выбора маркера передвижения, тем не менее, ставит множество проблем, которые преодолевает настоящая технология, как будет обсуждаться ниже.
[0018] Как будет понятно специалистам в соответствующей области техники, в виртуальном мире вид пользователя соответствует позиционированию и ориентации виртуальной камеры в виртуальном мире. Изменения позиционирования и ориентации виртуальной камеры в виртуальном мире вызывают изменение вида виртуального мира, воспринимаемого пользователем. Когда HMD используется в качестве устройства просмотра для пользователя, чтобы видеть виртуальный мир, то ориентация виртуальной камеры обычно привязана к ориентации головы пользователя, который носит HMD. Соответственно, при HMD ориентация виртуальной камеры не может быть обычно переопределена посредством компьютерной программы. Таким образом, когда программе требуется изменить вид пользователя в виртуальном мире, такое действие сложно осуществить.
[0019] Настоящая технология меняет вид пользователя посредством ассоциации, или упаковки, виртуальной камеры в контейнер. Виртуальная камера и контейнер ассоциированы таким образом, что изменения ориентации контейнера вызывают изменение ориентации виртуальной камеры. Раз так, то посредством управления ориентацией контейнера программа может управлять видом, который воспринимается пользователем. Даже при данной реализации по–прежнему существуют дополнительные проблемы, так как пользователь все еще может свободно перемещать виртуальную камеру относительно контейнера. В качестве примера, программе может потребоваться направить вид пользователя в направлении, которое находится на 60 градусов влево от глобальной системы координат для виртуального мира. Выполнение данного действия может потребоваться, чтобы заставить вид пользователя смотреть на конкретный объект в виртуальном мире. Поворот контейнера на 60 градусов относительно глобальной системы координат, тем не менее, может не привести к тому, что вид пользователя находится при 60 градусах влево, так как пользователь, возможно, уже смотрел налево (или в любом другом направлении, отличном от 0 градусов относительно глобальной системы координат). Таким образом, поворот контейнера на 60 градусов приведет к тому, что пользователь имеет вид в нежелательном направлении. Настоящая технология преодолевает данное ограничение посредством определения угла поворота виртуальной камеры перед поворотом контейнера в новый вид, и регулирует величину поворота для контейнера на основе определенного угла поворота виртуальной камеры. Посредством компенсации угла поворота виртуальной камеры, управление которой осуществляется посредством ориентации головы пользователя, итоговый вид пользователя находится в направлении, которое исходно требуется программой.
[0020] Фигура 1 изображает пример системы 110 шлема–дисплея («HMD») с источником 102 отображения в соответствии с примером настоящей технологии. Пользователь 106 может носить HMD 110, чтобы предоставлять контент пользователю 106 через источник 102 отображения, такой как контент виртуальной реальности или контент дополненной реальности. В примере предоставления контента дополненной реальности передняя поверхность HMD 110 может включать одну или более камер, чтобы обеспечивать представление дополненного видеопотока пользователю 106 посредством источника 102 отображения, что может упоминаться как видео дополненная реальность. HMD 110 также может включать в себя интегрированные вычисленные компоненты, чтобы предоставлять контент в качестве автономной системы. HMD 110 также может включать в себя функции беспроводной или проводной соединяемости, чтобы принимать контент от других вычислительных устройств, таких как мобильные телефоны, планшеты, лэптопы, настольные компьютеры и аналогичное. Источник 102 отображения может быть прикреплен к передней части HMD 110 при помощи любых средств, известных специалистам в соответствующей области техники. В некоторых примерах HMD 110 включает в себя несколько источников 102 отображения. Например, HMD 110 может включать в себя источник 102 отображения для каждого глаза. В других примерах источник 102 отображения может быть интеллектуальным телефоном или другим подобным устройством. Источник 102 отображения также может включать в себя или смещаться вблизи линз, которые позволяют пользователю более четко видеть изображения, отображаемые в источнике отображения. Другие примерные HMD, которые могут быть пригодны для использования с настоящей технологией, описываются в документе Публикация Патента США № 2016/0027213.
[0021] Фигура 2A изображает примерный вид в виртуальном мире, иллюстрирующий маркер передвижения. Чтобы помочь пользователю в осуществлении навигации в виртуальном мире, один или более выбираемых маркеров передвижения могут быть помещены в виртуальном мире, которые идентифицируют местоположения размещения для пользователя в виртуальном мире. В некоторых примерах маркеры передвижения могут отображаться в виртуальном мире, когда вид пользователя или взгляд располагается в или направлен на предварительно определенную зону вокруг маркера передвижения. В дополнительных примерах, в дополнение к идентификации местоположений, в которые пользователь может переместиться через 3D пространство, маркер передвижения может предоставлять указание направления по умолчанию вида пользователя после перемещения в 3D пространство. Например, пользователь может пересекать виртуальный мир посредством телепортации из одного местоположения в другое. После телепортации в новое пространство пользователь может становиться дезориентированным. Указание вида пользователя может предоставлять пользователю контекст, который позволяет пользователю лучше понимать ориентацию пользователя в виртуальном мире после телепортации. В качестве примера, пользователь может выбирать маркер 202 передвижения, чтобы осуществлять транспортировку в местоположение маркера 202 передвижения. В изображенном примерном виде 200 направление обуви предоставляет пользователю указание того, какой будет ориентация вида пользователя при телепортации в местоположение маркера передвижения, тем самым предоставляя пользователю контекст, чтобы лучше понимать ориентацию пользователя при телепортации. Прочая визуальная или графическая информация, помимо обуви, также может быть использована, чтобы предоставлять указание итоговой ориентации пользователя при телепортации в местоположение маркера 202 передвижения.
[0022] Один или более маркеров передвижения также могут быть ассоциированы с контентом. В некоторых примерах, когда создается или модифицируется 3D контент в виртуальном мире, маркер передвижения может быть ассоциирован с 3D контентом, который помещает пользователя в оптимальное или предпочтительное положение и ориентацию, чтобы просматривать 3D объект. В таких примерах, когда взгляд пользователя фокусируется на или рядом с 3D объектом, может быть отображен маркер передвижения, который правильно ориентирован для просмотра объекта. Отображаемый маркер передвижения может быть выбран, чтобы телепортировать пользователя в оптимальное положение и ориентацию для того, чтобы просматривать 3D объект в виртуальном мире. Фигура 2B изображает примерный вид 210, в котором маркер 212 передвижения отображается в оптимальном или предпочтительном положении вокруг 3D объекта в виртуальном мире. При выборе маркера 212 передвижения пользователь телепортируется в выбранное положение и вид пользователя будет изменен на оптимальное или предпочтительное направление для просмотра 3D объекта.
[0023] Виртуальный мир в примерном виде 210 также включает в себя зону 214 привязки и маркер 216 направления вида. Зона 214 привязки выделяет конкретный 3D объект в виртуальном мире, когда взгляд пользователя направлен на 3D объект. Зона 214 привязки может быть отображена в качестве полупрозрачного 3D объекта, который окружает другой 3D объект. Например, в виртуальном мире, изображенном на виде 210, зона привязки изображена как цилиндр вокруг 3D объекта в виртуальном мире. Размер и форма зоны 214 привязки могут зависеть от формы и размера 3D объекта, который она окружает. Зона 214 привязки может быть эквивалентной предварительно определенной зоне, которая обсуждалась выше. Зона 214 привязки также может включать в себя маркер 216 направления вида. Маркер 216 направления вида указывает, каким будет направление вида пользователя после выбора маркера 212 передвижения. Например, если пользователь выбирает изображенный маркер 212 передвижения, то будет осуществлена транспортировка пользователя в положение маркера 212 передвижения и вид пользователя будет ориентирован в направлении маркера 216 направления вида. В некоторых примерах, маркер 216 направления вида может быть отображен непосредственно на выделенном объекте, а не на зоне 214 привязки.
[0024] Фигура 3 изображает примерный способ 300 для отображения маркера передвижения. Поток начинается на операции 302, где осуществляется мониторинг положения и ориентации взгляда пользователя или вида. На операции 304 выполняется определение в отношении того, направлен ли взгляд пользователя на предварительно определенную зону вокруг 3D объекта, ассоциированного с маркером передвижения. Определение того, находится ли взгляд пользователя в предварительно определенной зоне, может быть основано на идентификации по меньшей мере одного из значения угла наклона в продольном направлении, угла поворота вокруг вертикальной оси и угла наклона в поперечном направлении для виртуальной камеры, управление которой осуществляется посредством положения HMD. Если вектор направленности, соответствующий по меньшей мере одному из значения наклона в продольном направлении, поворота вокруг вертикальной оси и наклона в поперечном направлении, будет проходить через предварительно определенную зону, может быть определено, что взгляд пользователя направлен на предварительно определенную зону вокруг 3D объекта. Одним примером предварительно определенной зоны является зона 214 привязки, которая обсуждалась выше при обращении к Фигуре 2B. В некоторых примерах размер предварительно определенной зоны может меняться на основе размера виртуального мира и/или размера или типа 3D объекта, ассоциированного с маркером передвижения, среди прочих возможных опций. Если взгляд пользователя не находится в предварительно определенной зоне, поток проходит по ветке Нет и возвращается к операции 302 и осуществляется непрерывный мониторинг положения взгляда пользователя.
[0025] Если взгляд пользователя находится в предварительно определенной зоне вокруг 3D объекта, ассоциированного с маркером передвижения, то поток проходит по ветке Да к операции 304. На операции 304 маркер передвижения отображается в виртуальном мире. Как описано ранее, маркер передвижения также может обеспечивать указание направления, на которое будет изменен взгляд пользователя при перемещении или телепортации к маркеру передвижения. В некоторых примерах маркер передвижения может отображаться только когда взгляд пользователя находится в предварительно определенной зоне вокруг 3D объекта, ассоциированного с маркером передвижения. В альтернативных аспектах один или более маркеров передвижения могут непрерывно отображаться в виртуальном мире.
[0026] Процесс продолжается на операции 308 принятия решения, где выполняется определение в отношении того, был ли выбран отображаемый маркер передвижения. Маркер передвижения может быть выбран посредством переносного блока управления, посредством интеллектуального телефона (смартфона), посредством других элементов управления, оперативно соединенных с HMD, или на основе конкретного взгляда или вида пользователя. Маркер передвижения также может быть выбран с помощью любого средства, известно специалистам в соответствующей области техники. Если отображаемый маркер передвижения не выбран, поток переходит по ветке Нет и возвращается к операции 302, где продолжают осуществлять мониторинг взгляда пользователя. Если маркер передвижения выбран, поток переходит по ветке Да к операции 310 и пользователь автоматически перемещается или телепортируется в маркер передвижения в 3D пространстве. В дополнение к перемещению пользователя в выбранное местоположение в 3D пространстве, ориентация пользователя может быть изменена на ориентацию, которая определяется выбранным маркером передвижения.
[0027] Как обсуждалось выше, ориентация вида или взгляда пользователя в виртуальном мире основана на ориентации виртуальной камеры в виртуальном мире. Управление виртуальной камерой осуществляется посредством позиционирования HMD в реальном мире. Ориентация виртуальной камеры может быть осуществлена при обращении к глобальной системе координат виртуального мира. Например, виртуальный мир может использовать декартову систему координат с предопределенным началом координат. Виртуальная камера может рассматриваться как объект в виртуальном мире, и ее ориентация может определяться ее углами Эйлера относительно глобальной системы координат. Например, Фигура 4 изображает упрощенное изображение для обсуждения разных типов поворота, которые обсуждаются в данном документе. В отношении ориентации, поворот вокруг изображенной оси x упоминается в данном документе как наклон в поперечном направлении (обычно представляется символом φ (фи)), поворот вокруг изображенной оси y упоминается в данном документе как наклон в продольном направлении (обычно представляется символом Ɵ (тета)) и поворот вокруг изображенной оси z упоминается в данном документе как поворот вокруг вертикальной оси (обычно представляется символом ψ (пси)). Как будет понятно специалистам в соответствующей области техники, могут быть использованы другие оси и соглашения об именах поворота. Специалисты в соответствующей области техники также будут понимать, что другие методики для управления и представления поворота виртуального объекта, такие как использование матриц поворота, кватернионов или других методик, могут быть использованы с технологией, которая используется в данном документе.
[0028] Как также обсуждалось выше, при HMD, ориентация виртуальной камеры не может быть обычно переопределена посредством компьютерной программы. Таким образом, когда программе требуется изменить вид пользователя в виртуальном мире, такое действие сложно осуществить. Настоящая технология меняет вид пользователя посредством ассоциации или упаковки виртуальной камеры в контейнер. В некоторых примерах, контейнер может быть объектом программного обеспечения, таким как нулевой объект или GameObject, как используется в платформе программирования Unity Technologies. В некоторых случаях этот объект может быть отображен в виртуальном мире, но в других примерах объект не отображается в визуальном мире. Виртуальная камера и контейнер ассоциируются таким образом, что изменения ориентации контейнера вызывают изменение ориентации виртуальной камеры. Настоящая технология также компенсирует ориентацию вида пользователя непосредственно перед или во время перехода к итоговому виду, такому как вид, ассоциированный с выбранным маркером передвижения. Посредством компенсации угла поворота виртуальной камеры, управление которой осуществляется посредством головы пользователя, итоговый вид пользователя находится в направлении, которое первоначально требуется программе, таком как направление, ассоциированное с выбранным маркером передвижения.
[0029] Фигура 5 изображает примерный способ для управления видом виртуальной камеры в виртуальном мире с помощью использования контейнера. Контейнер сконфигурирован так, что поворот контейнера вызывает поворот виртуальной камеры относительно глобальной системы координат. На операции 502 определяется первоначальный угол поворота виртуальной камеры относительно глобальной системы координат виртуального мира. Первоначальный угол поворота виртуальной камеры основан, по меньшей мере отчасти, на положении HMD, как обсуждалось выше, и таким образом первоначальный угол поворота может упоминаться как первоначальный угол поворота HMD или первоначальный угол поворота виртуальной камеры. Первоначальный угол поворота может быть углом поворота виртуальной камеры непосредственно перед приемом запроса на изменение вида пользователя или углом поворота виртуальной камеры непосредственно перед тем, как отображается итоговый вид, среди прочих потенциальных временных рамок. Первоначальный угол поворота может быть любым из наклона в поперечном направлении, наклона в продольном направлении и/или поворота вокруг вертикальной оси. Например, угол поворота может быть сочетанием из любого из наклона в поперечном направлении, наклона в продольном направлении и/или поворота вокруг вертикальной оси. Угол поворота также может быть единственным из наклона в поперечном направлении, наклона в продольном направлении и/или поворота вокруг вертикальной оси.
[0030] На операции 504 принимается указание изменения вида пользователя на конкретное направление. Например, указание изменения вида пользователя может быть выбором маркера передвижения. В таком примере маркер передвижения может указывать конкретное направление для вида пользователя, такое как в направлении маркера направления вида. На основе конкретного направления для вида пользователя на операции 506 определяется или идентифицируется требуемый угол поворота для изменения вида. Требуемый угол поворота является относительно глобальной системы координат. Например, требуемый угол поворота может быть значением для наклона в поперечном направлении, наклона в продольном направлении и/или поворота вокруг вертикальной оси относительно глобальных координат. Также могут быть использованы другие идентификации углов поворота, такие как матрицы поворота, или другие представления угла Эйлера.
[0031] Как только требуемый угол поворота относительно глобальной системы координат был идентифицирован, значение поворота для контейнера определяется на операции 508. Значение поворота для контейнера основано на идентифицированном первоначальном угле поворота виртуальной камеры и требуемом угле поворота. Угол поворота может быть определен, чтобы компенсировать первоначальный угол поворота виртуальной камеры так, что поворот контейнера на предварительно определенное значение поворота вызывает ориентацию вида в требуемом направлении. В качестве примера значение поворота для контейнера может быть определено посредством сначала вычитания первоначального угла поворота виртуальной камеры из 360 градусов, чтобы сформировать промежуточное значение. Далее промежуточное значение складывается в требуемым углом поворота, чтобы сформировать значение поворота для контейнера. Оператор по модулю также может быть использован так, что результирующее значение поворота не превышает 360. Примерная функция, которая может быть использована, чтобы определять значение поворота является следующей:
//Повернуть контейнер в требуемую точку
y1=требуемый угол (определяется на операции 506)
y2=первоначальный угол виртуальной камеры (определяется на операции 502)
y3=360 – у2 (промежуточное значение)
nY = (y1+y3)%360 (угол поворота для контейнера)
Символ % в вышеупомянутой функции является оператором по модулю.
[0032] На операции 510 контейнер поворачивается на предварительно определенное значение поворота. Посредством поворота контейнера на предварительно определенное значение поворота, контейнер вызывает то, что итоговый угол поворота камеры эквивалентен требуемому углу поворота относительно глобальной системы координат. Например, итоговый вид пользователя после поворота находится в требуемом направлении, таком как направление, ассоциированное с выбранным маркером передвижения. В некоторых примерах отображение в HMD может плавно переходить в черный экран или иным образом приглушать отображение перед отображением итогового вида. Например, после выбора маркера передвижения экран может плавно переходить в черный экран и после плавного перехода из черного экрана вид пользователя будет находиться в ориентации итогового угла виртуальной камеры.
[0033] Фигуры 6–9 и связанные с ними описания предоставляют обсуждение многообразия рабочих сред, в которых могут быть реализованы на практике аспекты изобретения. Тем не менее устройства и системы, которые иллюстрируются и обсуждаются в отношении Фигур 6–9, служат в качестве примера, и иллюстрации и не ограничивают огромное количество конфигураций вычислительного устройства, которые могут быть использованы для реализации на практике аспектов изобретения, описанных в данном документе.
[0034] Фиг. 6 является структурной схемой, иллюстрирующей физические компоненты (например, аппаратное обеспечение) вычислительного устройства 600, с помощью которого могут быть реализованы на практике аспекты изобретения. Компоненты вычислительного устройства, описанные ниже, могут быть пригодны для вычислительных устройств, описанных выше, таких как интеллектуальные телефоны, планшеты, HMD, лэптопы, настольные компьютеры, или прочие вычислительные устройства. В базовой конфигурации вычислительное устройство 600 может включать в себя по меньшей мере один блок 602 обработки или системную память 604. В зависимости от конфигурации и типа вычислительного устройства системная память 604 может содержать, но не ограничиваться, энергозависимое хранилище (например, память с произвольным доступом), энергонезависимое хранилище (например, постоянная память), флэш–память или любое сочетание таких памятей.
[0035] Системная память 604 может включать в себя операционную систему 605 и один или более программные модули 606, подходящие для выполнения приложения 620 программного обеспечения, такого как один или более компоненты, которые поддерживаются системами, описанными в данном документе. В качестве примеров системная память 604 может хранить виртуальный мир и ассоциированные функции и операции, которые должны быть выполнены в виртуальном мире. Операционная система 605, например, может быть подходящей для управления работой вычислительного устройства 600.
[0036] Кроме того, варианты осуществления изобретения могут быть реализованы на практике в сочетании с графической библиотекой, прочими операционными системами или любой прочей прикладной программой и не ограничиваются любым конкретным приложением или системой. Данная базовая конфигурация иллюстрируется на Фиг. 6 теми компонентами, которые находятся в рамках пунктирной линии 608. Вычислительное устройство 600 может иметь дополнительные признаки и функциональные возможности. Например, вычислительное устройство 600 также может включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как, например, магнитные диски, оптические диски или лента. Такое дополнительное хранилище иллюстрируется на Фиг. 6 съемным запоминающим устройством 609 и несъемным запоминающим устройством 610.
[0027] Как сформулировано выше некоторое число программных модулей и файлов данных может храниться в системной памяти 604. При исполнении в блоке 602 обработки программные модули 606 (например, приложение 620) могут выполнять процессы, включающие в себя, но не ограниченные, аспекты, как описано в данном документе. Прочие программные модули, которые могут быть использованы в соответствии с аспектами настоящего изобретения, могут включать в себя генератор 624 3D пространства, приложения 626 3D обработки и виртуальной реальности, приложения электронной почты и контактов, приложения электронной обработки текста, приложения работы с электронными таблицами, приложения работы с базой данных, приложения презентации слайдов, прикладные программы для рисования или автоматизации и т.д.
[0038] Кроме того варианты осуществления изобретения могут быть реализованы на практике в электрической схеме, содержащей дискретные электронные элементы, упакованных или интегральных электронных чипах, содержащих логические вентили, схеме, содержащей микропроцессор, или в едином чипе, содержащем электронные элементы или микропроцессоры. Например, варианты осуществления изобретения могут быть реализованы на практике через систему на кристалле (SOC), в которой каждый или многие из компонентов, которые проиллюстрированы на Фиг. 6, могут быть интегрированы в единой интегральной микросхеме. Такое устройство SOC может включать в себя один или более блоки обработки, графические блоки, блоки связи, блоки виртуализации системы и различные прикладные функциональные возможности, все из который интегрированы (или «прожигаются») на подложке чипа в качестве единой интегральной микросхемы. При работе через SOC, функциональные возможности, описанные в данном документе в отношении возможности клиента переключать протоколы, могут осуществляться через проблемно–ориентированную логику, интегрированную с другими компонентами вычислительного устройства 600 на единой интегральной схеме (чипе). Варианты осуществления изобретения также могут быть реализованы на практике с использованием прочих технологий, выполненных с возможностью выполнения логических операций, таких как, например, И, ИЛИ и НЕ, включая, но не ограничиваясь механические, оптические, гидравлические и квантовые технологии. В дополнение варианты осуществления изобретения могут быть реализованы на практике в рамках компьютера общего назначения или в любых других схемах или системах.
[0039] Вычислительное устройство 600 также может иметь одно или более устройство(а) 612 ввода, такое как клавиатура, мышь, перо, устройство ввода голоса или звука, устройство ввода касания или проводки, переносной игровой контроллер и т.д. Также может быть включено устройство(а) 614 вывода, такое как дисплей, громкоговорители, принтер и т.д. Вышеупомянутые устройства являются примерами и могут быть использованы другие. Вычислительное устройство 600 может включать в себя одно или более соединения 616 связи, обеспечивающие связь с другими вычислительными устройствами 650. Примеры подходящих соединений 616 связи включают, но не ограничиваются, радиочастотную (RF) схему передатчика, приемника и/или приемопередатчика; порты универсальной последовательной шины (USB), параллельные и/или последовательные порты.
[0040] Понятие машиночитаемые носители информации, используемое в данном документе, включает в себя компьютерные запоминающие носители информации. Компьютерные запоминающие носители информации могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители информации, реализованные любым способом или по любой технологии для хранения информации, такой как машиночитаемые инструкции, структуры данных или программные модули. Системная память 604, съемное запоминающее устройство 609 и несъемное запоминающее устройство 610 все являются примерами компьютерных запоминающих носителей информации (например, хранилища памяти). Компьютерные запоминающие носители информации могут включать в себя RAM, ROM, электрически стираемую постоянную память (EEPROM), флэш–память или прочую технологию памяти, CD–ROM, цифровые универсальные диски (DVD) или другое оптическое хранилище, магнитные кассеты, магнитную ленту, магнитное дисковое хранилище или прочие магнитные запоминающие устройства, или любое другое изделие, которое может быть использовано, чтобы хранить информацию, и доступ к которому может быть осуществлен посредством вычислительного устройства 600. Любые такие компьютерные запоминающие носители информации могут быть частью вычислительного устройства 600. Компьютерные запоминающие носители информации не являются несущей волной или другим распространяемым, или модулированным сигналом данных.
[0041] Средства связи могут быть воплощены посредством машиночитаемых инструкций, структур данных, программных модулей или прочих данных в модулированном сигнале данных, таком как несущая волна или другой транспортный механизм, и включают в себя любые средства доставки информации. Понятие «модулированный сигнал данных» может описывать сигнал, одна или более характеристики которого установлены или изменены таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, средства связи могут включать в себя проводные средства, такие как проводная сеть или прямое проводное соединение, и беспроводные средства, такие как акустические, радиочастотные (RF), инфракрасные и прочие беспроводные средства.
[0042] Фиг. 7A и 7B иллюстрируют мобильное вычислительное устройство 700, например, мобильный телефон, интеллектуальный телефон, носимый компьютер (такой как интеллектуальные наручные часы), планшетный компьютер, компьютер класса лэптоп и аналогичное, с помощью которого могут быть реализованы на практике варианты осуществления изобретения. В некоторых аспектах клиентом может быть мобильное вычислительное устройство. При обращении к Фиг. 7A иллюстрируется один аспект мобильного вычислительного устройства 700 для реализации аспектов. В базовой конфигурации мобильное вычислительное устройство 700 является переносным компьютером как с элементами ввода, так и элементами вывода. Мобильное вычислительное устройство 700 как правило включает в себя дисплей 705 и одну или более кнопки 710 ввода, которые позволяют пользователю вводить информацию в мобильное вычислительное устройство 700. Дисплей 705 мобильного вычислительного устройства 700 также может функционировать в качестве устройства ввода (например, дисплей с сенсорным экраном).
[0043] Если включен, необязательный боковой элемент 715 ввода обеспечивает дополнительный ввод пользователя. Боковой элемент 715 ввода может быть поворотным выключателем, кнопкой или любым другим типом элемента ручного ввода. В альтернативных аспектах мобильное вычислительное устройство 700 может включать больше или меньше элементов ввода. Например, дисплей 705 может не быть сенсорным экраном в некоторых вариантах осуществления.
[0044] В еще одном другом альтернативном варианте осуществления мобильное вычислительное устройство 700 является портативной телефонной системой, такой как сотовый телефон. Мобильное вычислительное устройство 700 также может включать в себя необязательную клавишную панель 735. Необязательная клавишная панель 735 может быть физической клавишной панелью или «программной» клавишной панелью, которая формируется на дисплее с сенсорным экраном.
[0045] В различных вариантах осуществления элементы вывода включают в себя дисплей 705 для показа графического интерфейса пользователя (GUI), визуальный индикатор 720 (например, светоизлучающий диод) и/или аудио преобразователь 725 (например, громкоговоритель). В некоторых аспектах мобильное вычислительное устройство 700 включает преобразователь вибрации для обеспечения пользователю тактильной обратной связи. В еще одном другом аспекте мобильное вычислительное устройство 700 включает порты ввода и/или вывода, такие как аудио ввода (например, микрофонный разъем), аудио вывод (например, разъем для головных телефонов) и видео вывод (например, порт HDMI) для отправки сигналов или приема сигналов от внешнего устройства.
[0046] Фиг. 7B является структурной схемой, иллюстрирующей архитектуру одного аспекта мобильного вычислительного устройства. Т.е. мобильное вычислительное устройство 700 может включать систему 702 (например, архитектуру), чтобы реализовывать некоторые аспекты. В одном варианте осуществления система 702 реализуется в качестве «интеллектуального телефона», выполненного с возможностью выполнения одного или более приложений (например, браузера, работы с электронной почтой, работы с календарем, программ администрирования контактов, клиентов обмена сообщениями, игр и клиентов/проигрывателей мультимедиа). В некоторых аспектах система 702 является интегрированной в качестве вычислительного устройства, такого как интегрированный персональный цифровой помощник (PDA) и беспроводной телефон.
[0047] Одна или более прикладных программ 766 могут быть загружены в память 762 и выполняться в или в ассоциации с операционной системой 764. Примеры прикладных программ включают в себя программы номеронабирателя, программы работы с электронной почтой, программы администрирования персональной информации (PIM), программы электронной обработки текста, программы работы с электронными таблицами, программы Интернет браузера, программы обмена сообщениями и т.д. Система 702 также включает в себя зону 768 энергонезависимого хранилища в памяти 762. Зона 768 энергонезависимого хранилища может быть использована, чтобы хранить постоянную информацию, которая не должна быть потеряна, если отключается питание системы 702. Прикладные программы 766 могут использовать и хранить информацию в зоне 768 энергонезависимого хранилища, такую как сообщения электронной почты или другие сообщения, используемые приложением работы с электронной почтой или аналогичным. Приложение синхронизации (не показано) также размещается в системе 702 и запрограммировано взаимодействовать с соответствующим приложением синхронизации, которое размещается на хост–компьютере, чтобы сохранять информацию, хранящуюся в зоне 768 энергонезависимого хранилища, синхронизированной с соответствующей информацией, хранящейся на хост–компьютере. Как должно быть понятно, прочие приложения могут быть загружены в память 762 и выполняться на мобильном вычислительном устройстве 700, описанном в данном документе (например, поисковая машина, модуль извлечения, модуль ранжирования по релевантности, модуль оценки ответа и т.д.).
[0048] Система 702 имеет источник 770 питания, который может быть реализован в качестве одной или более батарей. Источник 770 питания возможно дополнительно включает внешний источник, такой как адаптер AC или стыковочная станция с питанием, которые дополняют или перезаряжают батареи.
[0049] Система 702 также может включать в себя слой 772 радиоинтерфейса, который выполняет функцию передачи и приема радиочастотной связи. Слой 772 радиоинтерфейса обеспечивает беспроводную соединяемость между системой 702 и «внешним миром» через оператора связи или поставщика услуги. Передачи к и от слоя 772 радиоинтерфейса проводятся под управлением операционной системы 764. Другими словами, связь, принимаемая слоем 772 радиоинтерфейса, может быть распространена по прикладным программам 766 через операционную систему 764 и наоборот.
[0050] Визуальный индикатор 720 может быть использован, чтобы предоставлять визуальные уведомления и/или аудиоинтерфейс 774 может быть использован для создания слышимых уведомлений через аудио преобразователь 725. В иллюстрируемом варианте осуществления визуальный индикатор 720 является светоизлучающим диодом (LED), а аудио преобразователь 725 является громкоговорителем. Эти устройства могут быть непосредственно соединены с истопником 770 питания так, что когда активируются, они остаются включенными в течение продолжительности, которая предписывается механизмом уведомления, даже несмотря на то, что процессор 760 и прочие компоненты могут быть выключены для экономии питания от батареи. LED может быть запрограммирован оставаться включенным неопределенное время до тех пор, пока пользователь не предпринимает действие, чтобы указывать включенный статус устройства. Аудиоинтерфейс 774 используется чтобы предоставлять слышимые сигналы и принимать слышимые сигналы от пользователя. Например, в дополнение к соединению с аудио преобразователем 725, аудиоинтерфейс 774 также может быть соединен с микрофоном, чтобы принимать слышимый ввод для обеспечения телефонного разговора. В соответствии с вариантами осуществления настоящего изобретения микрофон может также служить в качестве аудио датчика, чтобы обеспечивать управление уведомлениями, как будет описано ниже. Система 702 может дополнительно включать в себя видеоинтерфейс 776, который обеспечивает работу бортовой камеры 730, чтобы записывать неподвижные изображения, видеопоток и аналогичное.
[0051] Мобильное вычислительное устройство 700, реализующее систему 702, может иметь дополнительные признаки и функциональные возможности. Например, мобильное вычислительное устройство 700 также может включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как магнитные диски, оптические диски или лента. Такое дополнительное хранилище иллюстрируется на Фиг. 7B зоной 768 энергонезависимого хранилища.
[0052] Данные/информация, сформированные или захваченные мобильным вычислительным устройством 700 и сохраняемые через систему 702, могут быть сохранены локально на мобильном вычислительном устройстве 700, как описано выше, или данные могут быть сохранены на любом числе запоминающих носителей информации, доступ к которым может быть осуществлен посредством устройства через слой 772 радиоинтерфейса или через проводное соединение между мобильным вычислительным устройством 700 и отдельным вычислительным устройством, ассоциированным с мобильным вычислительным устройством 700, например, серверным компьютером в распределенной вычислительной сети, такой как Интернет. Как должно быть понятно, доступ к таким данным/информации может быть осуществлен через мобильное вычислительное устройство 700 через слой 772 радиоинтерфейса или через распределенную вычислительную сеть. Аналогичным образом такие данные/информация могут быть быстро перенесены между вычислительными устройствами для хранения и использования в соответствии с хорошо известными средствами переноса и хранения данных/информации, включая электронную почту и системы совместного использования данных/информации.
[0053] Фиг. 8 иллюстрирует один аспект архитектуры системы для обработки данных, принятых в вычислительной системе от удаленного источника, такого как персональный компьютер 804, планшетное вычислительное устройство 806 или мобильное вычислительное устройство 808, как описано выше. Контент, отображаемый на серверном устройстве 802, может быть сохранен в разных каналах связи или других типах хранения. Например, различные документы могут быть сохранены с использованием службы 822 каталогов, веб–портала 824, службы 826 почтовых ящиков, магазина 828 виртуальной реальности или сайта 830 социальной сети.
[0054] Генератор 3D пространства и программа 820 виртуальной реальности могут быть использованы клиентом, который осуществляет связь с серверным устройством 802, и/или генератор 3D пространства и программа 821 виртуальной реальности могут быть использованы серверным устройством 802. Серверное устройство 802 может предоставлять данные к и от клиентского вычислительного устройства, такого как персональный компьютер 804, планшетное вычислительное устройство 806 и/или мобильное вычислительное устройство 808 (например, интеллектуальный телефон), посредством сети 815. В качестве примера компьютерная система, описанная выше, может быть воплощена в персональном компьютере 804, планшетном вычислительном устройстве 806, мобильном вычислительном устройстве 808 (например, интеллектуальном телефоне) и/или HMD 810. Любой из этих вариантов осуществления вычислительных устройств может получать контент из хранилища 816 в дополнение к приему графических данных, используемых либо для предварительной обработки в системе–источнике графики, либо постобработки в принимающей вычислительной системе.
[0055] Фиг. 9 иллюстрирует примерное планшетное вычислительное устройство 900, которое может исполнять один или более аспекты, раскрытые в данном документе в связи с устройством виртуальной реальности. В дополнение аспекты и функциональные возможности, описанные в данном документе, могут работать через распределенные системы (например, основанные на облаке вычислительные системы), где функциональные возможности приложения, память, хранение и извлечение данных и различные функции обработки могут работать удалено друг от друга через распределенную вычислительную сеть, такую как Интернет или интрасеть. Интерфейсы пользователя и информация различных типов могут отображаться через бортовые дисплеи вычислительного устройства или через удаленные блоки отображения, ассоциированные с одним или более вычислительными устройствами. Например, интерфейсы пользователя и информация различных типов могут отображаться и с ними может осуществляться взаимодействие на поверхности стены, на которую проецируются интерфейс пользователя и информация различных типов. Взаимодействие с множеством вычислительных систем, с помощью которых могут быть реализованы на практике варианты осуществления изобретения, включает в себя ввод с клавиатуры, ввод с сенсорного экрана, голосовой или другой аудио ввод, ввод жестом, где ассоциированное вычислительное устройство оборудовано функциональной возможностью обнаружения (например, камерой) для захвата и интерпретации жестов пользователя, чтобы управлять функциональными возможностями вычислительного устройства, и аналогичное.
[0056] По меньшей мере нижеследующие аспекты будут понятны из вышеприведенного обсуждения. В одном аспекте технология относится к способу для управления видом виртуальной камеры в виртуальном мире. Способ включает в себя этапы, на которых: на основе положения шлема–дисплея, идентифицируют первоначальный угол поворота виртуальной камеры относительно глобальной системы координат виртуального мира, при этом виртуальная камера упакована в контейнер так, что поворот контейнера вызывает поворот виртуальной камеры относительно глобальной системы координат; принимают указание изменить вид на конкретное направление; идентифицируют требуемый угол поворота относительно глобальной системы координат для вида, чтобы он соответствовал конкретному направлению; и поворачивают контейнер на значение поворота на основе по меньшей мере как требуемого угла поворота, так и первоначального угла поворота виртуальной камеры. В примере, поворот контейнера вызывает то, что итоговый угол поворота виртуальной камеры эквивалентен требуемому углу поворота относительно глобальной системы координат. В другом примере способ также включает в себя этапы, на которых: отображают на дисплейном экране HMD вид с виртуальной камеры в соответствии с первоначальным углом виртуальной камеры; на основе приема указания изменить вид на конкретное направление, осуществляют плавный переход экрана в черный экран; и осуществляют плавный переход экрана из черного экрана обратно в отображение вида с виртуальной камеры в соответствии с итоговым углом поворота виртуальной камеры. В еще одном примере этап, на котором принимают указание, включает в себя этап, на котором принимают выбор маркера передвижения. В еще одном другом примере способ также включает в себя этап, на котором отображают выбираемый маркер передвижения, при этом отображение выбираемого маркера передвижения указывает конкретное направление.
[0057] В другом примере угол поворота содержит по меньшей мере одно из следующего: угол наклона в продольном направлении, угол поворота вокруг вертикальной оси или угол наклона в поперечном направлении. В еще одном другом примере способ дополнительно включает в себя этап, на котором определяют значение поворота посредством: вычитания первоначального угла поворота виртуальной камеры из 360 градусов, чтобы сформировать промежуточное значение; и сложения промежуточного значения с требуемым углом поворота, чтобы сформировать значение поворота.
[0058] В другом аспекте технология относится к системе, включающей в себя: шлем–дисплей (HMD); по меньшей мере один процессор, оперативно соединенный с HMD; и память, хранящую инструкции, которые, когда исполняются по меньшей мере одним процессором, выполняют набор операций, содержащих: на основе положения HMD, идентификацию первоначального угла поворота виртуальной камеры у виртуальной камеры относительно глобальной системы координат виртуального мира, при этом виртуальная камера упакована в контейнер так, что поворот контейнера вызывает поворот виртуальной камеры относительно глобальной системы координат; прием указания изменить вид на конкретное направление; идентификацию требуемого угла поворота относительно глобальной системы координат для вида, чтобы он соответствовал конкретному направлению; и поворот контейнера на значение поворота на основе по меньшей мере как требуемого угла поворота, так и первоначального угла поворота виртуальной камеры.
[0059] В примере, поворот контейнера вызывает то, что итоговый угол поворота виртуальной камеры эквивалентен требуемому углу поворота относительно глобальной системы координат. В другом примере операции дополнительно включают в себя: отображение на дисплейном экране HMD вида с виртуальной камеры в соответствии с первоначальным углом виртуальной камеры; на основе приема указания изменить вид на конкретное направление, плавный переход экрана в черный экран; и плавный переход экрана из черного экрана обратно в отображение вида с виртуальной камеры в соответствии с итоговым углом поворота виртуальной камеры. В еще одном примере прием указания, включает в себя прием выбора маркера передвижения. В еще одном другом примере операции дополнительно содержат отображение выбираемого маркера передвижения, при этом отображение выбираемого маркера передвижения указывает конкретное направление. В другом примере угол поворота содержит по меньшей мере одно из следующего: угол наклона в продольном направлении, угол поворота вокруг вертикальной оси и угол наклона в поперечном направлении. В еще одном другом примере операции дополнительно включают в себя определение значения поворота посредством: вычитания первоначального угла поворота виртуальной камеры из 360 градусов, чтобы сформировать промежуточное значение; и сложения промежуточного значения с требуемым углом поворота, чтобы сформировать значение поворота.
[0060] В другом аспекте технология относится к способу для управления видом виртуальной камеры в виртуальном мире. Способ включает в себя этапы, на которых: на основе положения шлема–дисплея, идентифицируют первоначальный угол поворота виртуальной камеры у виртуальной камеры, при этом виртуальная камера ассоциирована с контейнером так, что поворот контейнера вызывает поворот виртуальной камеры относительно глобальной системы координат; отображают на дисплейном экране HMD вид с виртуальной камеры в соответствии с первоначальным углом виртуальной камеры; отображают на дисплейном экране HMD маркер передвижения; принимаю выбор маркера передвижения; идентифицируют конкретное направление для вида, соответствующего выбранному маркеру передвижения; идентифицируют требуемый угол поворота для вида, чтобы он соответствовал конкретному направлению; и поворачивают контейнер на значение поворота на основе по меньшей мере как требуемого угла поворота, так и первоначального угла поворота виртуальной камеры. В примере, поворот контейнера вызывает то, что итоговый угол поворота виртуальной камеры эквивалентен требуемому углу поворота относительно глобальной системы координат. В другом примере угол поворота содержит по меньшей мере одно из следующего: угол наклона в продольном направлении, угол поворота вокруг вертикальной оси или угол наклона в поперечном направлении. В еще одном другом примере операции дополнительно включают в себя определение значения поворота посредством: вычитания первоначального угла поворота виртуальной камеры из 360 градусов, чтобы сформировать промежуточное значение; и сложения промежуточного значения с требуемым углом поворота, чтобы сформировать значение поворота. В еще одном другом примере способ дополнительно включает в себя этап, на котором определяют, находится ли вид пользователя в предварительно определенной зоне, и при этом отображение маркера передвижения основано на том, что вид пользователя находится в предварительно определенной зоне. В другом примере способ дополнительно включает в себя этап, на котором отображают зону привязки и маркер направления вида.
[0061] Аспекты настоящего изобретения, например, описаны выше при обращении к структурным схемам и/или рабочим иллюстрациям способов, систем и компьютерных программных продуктов в соответствии с аспектами изобретения. Функции/действия, отмеченные в блоках, могут происходить не в порядке как показано в любой блок–схеме. Например, два блока, показанные последовательно, могут в действительности исполняться по сути параллельно, или блоки могут иногда исполняться в обратном порядке, в зависимости от задействованных функциональных возможностей/действий.
[0062] Описание и иллюстрация одного или более аспектов, предоставленные в данной заявке, не предназначены для какого–либо ограничения или сужения объема изобретения, как заявлено. Аспекты, примеры и подробности, предоставленные в данной заявке, считаются достаточными для передачи объекта владения и позволяют другим выполнять и использовать предпочтительный вариант осуществления заявленной технологии. Заявленную технологию не следует толковать как ограниченную любым аспектом, примером или подробностями, предоставленными в данной заявке. Независимо от того, показаны ли и описаны ли в сочетании или отдельно, различные признаки (как структурные, так и методологические) могут быть выборочно включены или опущены, чтобы создавать вариант осуществления с конкретным набором признаков. Например, описанные выше примеры могут быть легко объединены друг с другом. Получив описание и иллюстрацию настоящей заявки специалист в соответствующей области техники может представить вариации, модификации и альтернативные аспекты, лежащие в рамках сущности более широких аспектов общей концепции изобретения, воплощенной в данной заявке, которые не отступают от более широкого объема заявленного изобретения.