KR20220160699A - Web-based video conferencing virtual environment with navigable avatars and its applications - Google Patents
Web-based video conferencing virtual environment with navigable avatars and its applications Download PDFInfo
- Publication number
- KR20220160699A KR20220160699A KR1020227039238A KR20227039238A KR20220160699A KR 20220160699 A KR20220160699 A KR 20220160699A KR 1020227039238 A KR1020227039238 A KR 1020227039238A KR 20227039238 A KR20227039238 A KR 20227039238A KR 20220160699 A KR20220160699 A KR 20220160699A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- avatar
- virtual
- virtual space
- camera
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 144
- 238000009877 rendering Methods 0.000 claims description 61
- 238000013507 mapping Methods 0.000 claims description 39
- 230000008859 change Effects 0.000 claims description 18
- 238000002834 transmittance Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 9
- 241001310793 Podium Species 0.000 claims description 8
- 230000002238 attenuated effect Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000008921 facial expression Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241000699666 Mus <mouse, genus> Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 238000010414 shopping Methods 0.000 description 2
- 238000002560 therapeutic procedure Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 229920001621 AMOLED Polymers 0.000 description 1
- 208000025721 COVID-19 Diseases 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 206010011878 Deafness Diseases 0.000 description 1
- 208000032041 Hearing impaired Diseases 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- 238000009223 counseling Methods 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- XEEYBQQBJWHFJM-UHFFFAOYSA-N iron Substances [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 244000144972 livestock Species 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000035699 permeability Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003997 social interaction Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/56—Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities
- H04M3/563—User guidance or feature selection
- H04M3/564—User guidance or feature selection whereby the feature is a sub-conference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/56—Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities
- H04M3/568—Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities audio processing specific to telephonic conferencing, e.g. spatial distribution, mixing of participants
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2385—Channel allocation; Bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8173—End-user applications, e.g. Web browser, game
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
- H04N7/157—Conference systems defining a virtual conference space and using avatars or agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2201/00—Electronic components, circuits, software, systems or apparatus used in telephone systems
- H04M2201/42—Graphical user interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2203/00—Aspects of automatic or semi-automatic exchanges
- H04M2203/10—Aspects of automatic or semi-automatic exchanges related to the purpose or context of the telephonic communication
- H04M2203/1016—Telecontrol
- H04M2203/1025—Telecontrol of avatars
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Information Transfer Between Computers (AREA)
- Processing Or Creating Images (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- User Interface Of Digital Computer (AREA)
- Geometry (AREA)
- Image Generation (AREA)
- Stereophonic System (AREA)
Abstract
비디오 아바타들이 가상 환경 내에서 내비게이션할 수 있게 하는 웹 기반 화상 회의 시스템이 본 명세서에서 개시된다. 이 시스템은 프레젠테이션 스트림이 가상 환경 내에 위치한 발표자 화면에 텍스처 매핑될 수 있게 하는 프레젠테이션 모드를 갖는다. 가상 공간에서의 아바타의 위치의 감각을 제공하기 위해 상대적인 좌우 사운드가 조정된다. 아바타가 위치하는 영역 및 가상 카메라가 위치하는 영역에 기초하여 사운드가 추가로 조정된다. 비디오 스트림 품질이 가상 공간에서의 상대적인 위치에 기초하여 조정된다. 가상 화상 회의 환경 내부에서 3차원 모델링이 이용 가능하다.A web-based video conferencing system that allows video avatars to navigate within a virtual environment is disclosed herein. The system has a presentation mode that allows the presentation stream to be texture mapped to a presenter's screen located within the virtual environment. The relative left and right sounds are adjusted to provide a sense of the avatar's position in virtual space. The sound is further adjusted based on the area where the avatar is located and the area where the virtual camera is located. Video stream quality is adjusted based on relative position in virtual space. Three-dimensional modeling is available inside the virtual videoconferencing environment.
Description
[관련 출원들의 상호 참조][Cross References to Related Applications]
본 출원은 2021년 4월 13일에 등록된 미국 특허 제10,979,672호로서 현재 등록되어 있는, 2020년 10월 20일에 출원된 미국 실용 특허 출원 제17/075,338호, 2021년 3월 11일에 출원된 미국 실용 특허 출원 제17/198,323호, 2021년 8월 17일에 등록된 미국 특허 제11,095,857호로서 현재 등록되어 있는, 2020년 10월 20일에 출원된 미국 실용 특허 출원 제17/075,362호, 2021년 3월 16일에 등록된 미국 특허 제10,952,006호로서 현재 등록되어 있는, 2020년 10월 20일에 출원된 미국 실용 특허 출원 제17/075,390호, 2021년 7월 20일에 등록된 미국 특허 제11,070,768호로서 현재 등록되어 있는, 2020년 10월 20일에 출원된 미국 실용 특허 출원 제17/075,408호, 2021년 7월 27일에 등록된 미국 특허 제11,076,128호로서 현재 등록되어 있는, 2020년 10월 20일에 출원된 미국 실용 특허 출원 제17/075,428호, 및 2020년 10월 20일에 출원된 미국 실용 특허 출원 제17/075,454호에 대한 우선권을 주장한다. 이러한 출원들 각각의 내용은 참조에 의해 그 전체가 본 명세서에 포함된다.This application is filed as US Patent No. 10,979,672, issued on April 13, 2021, and US Practical Patent Application Serial No. 17/075,338, filed on October 20, 2020, currently filed on March 11, 2021 U.S. Utility Patent Application No. 17/198,323 filed on August 17, 2021, U.S. Utility Patent Application No. 17/075,362, filed on October 20, 2020, currently registered as U.S. Patent No. 11,095,857, filed on August 17, 2021; US Patent Application Serial No. 17/075,390, filed on October 20, 2020, currently registered as US Patent No. 10,952,006, issued on March 16, 2021, US Patent issued on July 20, 2021 U.S. Utility Patent Application No. 17/075,408, filed on October 20, 2020, currently registered as No. 11,070,768; Priority is claimed to U.S. Utility Patent Application Serial No. 17/075,428, filed October 20, and U.S. Utility Patent Application Serial No. 17/075,454, filed October 20, 2020. The contents of each of these applications are incorporated herein by reference in their entirety.
[기술 분야][Technical field]
본 기술 분야는 일반적으로 화상 회의에 관한 것이다.This technical field generally relates to video conferencing.
[관련 기술][Related technology]
화상 회의는 실시간으로 사람들 사이의 통신을 위해 상이한 위치들에 있는 사용자들에 의한 오디오-비디오 신호들의 수신 및 전송을 수반한다. 화상 회의는, 캘리포니아 산호세의 Zoom Communications Inc.로부터 이용 가능한 ZOOM 서비스를 포함한, 각종의 상이한 서비스들로부터 많은 컴퓨팅 디바이스들에서 널리 이용 가능하다. 캘리포니아 쿠퍼티노의 Apple Inc.로부터 이용 가능한 FaceTime 애플리케이션과 같은, 일부 화상 회의 소프트웨어는 모바일 디바이스들에 표준으로 제공된다.Videoconferencing involves the reception and transmission of audio-video signals by users in different locations for interpersonal communication in real time. Video conferencing is widely available on many computing devices from a variety of different services, including the ZOOM service available from Zoom Communications Inc. of San Jose, California. Some video conferencing software, such as the FaceTime application available from Apple Inc. of Cupertino, California, comes standard with mobile devices.
일반적으로, 이러한 애플리케이션들은 다른 회의 참가자들의 비디오를 디스플레이하고 오디오를 출력하는 것에 의해 작동한다. 다수의 참가자들이 있을 때, 화면은, 참가자의 비디오를 각각 디스플레이하는, 다수의 직사각형 프레임들로 분할될 수 있다. 때때로 이러한 서비스들은 말하는 사람의 비디오를 제시하는 보다 큰 프레임을 갖는 것에 의해 작동한다. 상이한 개인들이 발화(speech)할 때, 해당 프레임이 발화자들 간에 전환될 것이다. 애플리케이션은 사용자의 디바이스와 통합된 카메라로부터의 비디오와 사용자의 디바이스와 통합된 마이크로폰으로부터의 오디오를 캡처한다. 애플리케이션은 이어서 해당 오디오 및 비디오를 다른 사용자의 디바이스들에서 실행 중인 다른 애플리케이션들에게 전송한다.Generally, these applications work by displaying video of other conference participants and outputting audio. When there are multiple participants, the screen may be divided into multiple rectangular frames, each displaying a participant's video. Sometimes these services work by having a larger frame presenting video of the person speaking. When different individuals speak, the frame will switch between the speakers. The application captures video from a camera integrated with the user's device and audio from a microphone integrated with the user's device. The application then transmits that audio and video to other applications running on other users' devices.
이러한 화상 회의 애플리케이션들 중 다수는 화면 공유 기능을 갖는다. 사용자가 자신의 화면(또는 자신의 화면의 일 부분)을 공유하기로 결정할 때, 스트림이 자신의 화면의 내용과 함께 다른 사용자들의 디바이스들에게 전송된다. 일부 경우에, 다른 사용자들이 심지어 사용자의 화면에 있는 것을 제어할 수 있다. 이러한 방식으로, 사용자들은 프로젝트에 대해 협업하거나 다른 회의 참가자들에게 프레젠테이션을 할 수 있다.Many of these video conferencing applications have screen sharing capabilities. When a user decides to share their screen (or a portion of their screen), a stream is sent to other users' devices along with the contents of their screen. In some cases, other users may even control what is on the user's screen. In this way, users can collaborate on a project or present a presentation to other meeting participants.
최근에, 화상 회의 기술의 중요성이 증가되었다. 많은 직장들, 무역 박람회들, 회의들, 회담들, 학교들, 및 예배 장소들이 폐쇄되었거나 사람들에게 질병, 특히 COVID-19의 확산을 두려워하여 참석하지 않도록 권장했다. 화상 회의 기술을 사용하는 가상 회의들은 실제 회의들을 점점 더 대체하고 있다. 추가적으로, 이 기술은 여행과 출퇴근을 피하기 위해 물리적으로 만나는 것보다 장점들을 제공한다.Recently, the importance of video conferencing technology has increased. Many workplaces, trade shows, conferences, conferences, schools, and places of worship have been closed or people have been encouraged not to attend for fear of spreading disease, particularly COVID-19. Virtual meetings using video conferencing technology are increasingly replacing physical meetings. Additionally, this technology offers advantages over physically meeting to avoid travel and commuting.
그렇지만 종종, 이 화상 회의 기술의 사용은 장소 감각(sense of place)의 상실을 야기한다. 회의가 가상으로 수행될 때 상실되는, 동일한 장소에 있으면서 물리적으로 직접 만나는 것에 대한 경험적 측면이 있다. 자세를 취하고 동료들을 바라볼 수 있는 것에 대한 사회적 측면이 있다. 이러한 경험의 느낌은 관계들 및 사회적 연결들을 만드는 데 중요하다. 그러나, 종래의 화상 회의들에 관한 한 이러한 느낌이 부족하다.Often, though, the use of this video conferencing technology causes a loss of sense of place. There is an experiential aspect of meeting physically in person while being in the same location that is lost when a meeting is conducted virtually. There is a social aspect to being able to pose and look up to your peers. The feeling of this experience is important in creating relationships and social connections. However, this feeling is lacking as far as conventional video conferences are concerned.
더욱이, 회의에 여러 참가자들이 모이기 시작할 때, 이러한 화상 회의 기술들에 추가적인 문제들이 발생한다. 물리적으로 만나는 회의에서, 사람들은 부차적인 대화를 나눌 수 있다. 자신에 가까이 있는 사람들만이 자신이 말하는 것을 들을 수 있도록 자신의 목소리를 투사할 수 있다. 일부 경우에, 보다 대규모의 회의와 관련하여 심지어 사적인 대화를 나눌 수 있다. 그렇지만, 가상 회의에서, 다수의 사람들이 동시에 발화하고 있을 때, 소프트웨어는 2 개의 오디오 스트림을 실질적으로 동일하게 믹싱하여, 참가자들로 하여금 서로 겹쳐서 발화하게 한다. 따라서, 다수의 사람들이 가상 회의에 관여될 때, 사적인 대화가 불가능하며, 대화가 일대다의 발화의 형태로 보다 많이 이루어지는 경향이 있다. 여기에서도, 가상 회의는 참가자들이 사회적 연결들을 만들고 보다 효과적으로 의사소통을 하며 인적 네트워크를 형성할 수 있는 기회를 잃게 된다.Furthermore, additional problems arise with these video conferencing technologies when multiple participants in a conference begin to gather. In a meeting that meets physically, people can have side conversations. You can project your voice so that only those close to you can hear what you are saying. In some cases, you may even have a private conversation in connection with a larger meeting. However, in a virtual conference, when multiple people are speaking at the same time, the software mixes the two audio streams substantially equally, allowing the participants to speak on top of each other. Thus, when a large number of people are involved in a virtual meeting, private conversation is not possible, and conversation tends to be more in the form of one-to-many utterances. Here, too, virtual meetings lose opportunities for participants to make social connections, communicate more effectively, and network.
더욱이, 네트워크 대역폭 및 컴퓨팅 하드웨어의 제한으로 인해, 회의에서 많은 스트림들이 배치될 때, 많은 화상 회의 시스템들의 성능이 느려지기 시작한다. 많은 컴퓨팅 디바이스들은, 소수의 참가자들로부터의 비디오 스트림을 처리할 장비를 갖추고 있지만, 십여 명의 참가자로부터의 비디오 스트림을 처리하기에는 장비가 불충분하다. 많은 학교들이 완전히 가상으로 운영되기 때문에, 25 명의 학급은 학교에서 지급한 컴퓨팅 디바이스들의 속도를 심각하게 저하시킬 수 있다.Moreover, due to limitations in network bandwidth and computing hardware, the performance of many video conferencing systems starts to slow down when many streams are deployed in a conference. Many computing devices are equipped to process video streams from a small number of participants, but are insufficiently equipped to process video streams from dozens of participants. Because many schools operate completely virtual, a class of 25 can seriously slow down school-issued computing devices.
대규모 멀티플레이어 온라인 게임들(MMOG 또는 MMO)은 일반적으로 25 명보다 상당히 더 많은 참가자를 처리할 수 있다. 이러한 게임들은 종종 단일 서버에 수백 또는 수천 명의 플레이어를 갖는다. MMO들은 종종 플레이어들이 아바타들을 가상 세계 여기저기로 내비게이션할 수 있게 한다. 때때로 이러한 MMO들은 사용자들이 서로 대화할 수 있게 하거나 메시지들을 서로에게 송신할 수 있게 한다. 예들은 캘리포니아 샌머테이오의 Roblox Corporation으로부터 이용 가능한 ROBLOX 게임 및 스웨덴 스톡홀름의 Mojang Studios로부터 이용 가능한 MINECRAFT 게임을 포함한다.Massively multiplayer online games (MMOGs or MMOs) can generally handle significantly more than 25 players. These games often have hundreds or thousands of players on a single server. MMOs often allow players to navigate avatars through virtual worlds. Sometimes these MMOs allow users to talk to each other or send messages to each other. Examples include the ROBLOX game available from Roblox Corporation of San Mateo, Calif. and the MINECRAFT game available from Mojang Studios of Stockholm, Sweden.
무표정의(bare) 아바타들이 서로 상호작용하게 하는 것이 또한 사회적 상호작용의 측면에서 제한들이 있다. 이러한 아바타들은 일반적으로, 사람들이 종종 무심코 짓는 얼굴 표정들을 전달할 수 없다. 화상 회의에서 이러한 얼굴 표정들이 관찰 가능하다. 일부 공보들은 가상 세계에서 아바타에 비디오를 배치하는 것을 설명할 수 있다. 그렇지만, 이러한 시스템들은 전형적으로 특수 소프트웨어를 필요로 하며 그들의 유용성을 제한하는 다른 제한들이 있다.Having bare avatars interact with each other also has limitations in terms of social interaction. These avatars are generally unable to convey the facial expressions that people often make inadvertently. In a video conference, these facial expressions are observable. Some publications may describe placing a video on an avatar in a virtual world. However, these systems typically require special software and have other limitations that limit their usefulness.
화상 회의를 위한 개선된 방법들이 필요하다.Improved methods for video conferencing are needed.
일 실시예에서, 디바이스는 제1 사용자와 제2 사용자 사이의 화상 회의를 가능하게 한다. 디바이스는 메모리에 결합된 프로세서, 디스플레이 스크린, 네트워크 인터페이스, 및 웹 브라우저를 포함한다. 네트워크 인터페이스는: (i) 3차원 가상 공간을 지정하는 데이터, (ii) 3차원 가상 공간에서의 위치 및 방향 - 위치 및 방향은 제1 사용자에 의해 입력됨 -, 및 (iii) 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하도록 구성된다. 제1 사용자의 카메라는 제1 사용자의 사진 이미지들을 캡처하도록 배치된다. 프로세서에서 구현되는 웹 브라우저는 서버로부터 웹 애플리케이션을 다운로드하고 웹 애플리케이션을 실행하도록 구성된다. 웹 애플리케이션은 텍스처 매퍼 및 렌더러를 포함한다. 텍스처 매퍼는 비디오 스트림을 아바타의 3차원 모델 상으로 텍스처 매핑하도록 구성된다. 렌더러는, 제2 사용자의 가상 카메라의 시점으로부터, 제2 사용자에게 디스플레이하기 위해 해당 위치에 위치하고 해당 방향으로 배향되는 아바타의 텍스처 매핑된 3차원 모델을 포함하는 3차원 가상 공간을 렌더링하도록 구성된다. 웹 애플리케이션 내에서 텍스처 매핑을 관리하는 것에 의해, 실시예들은 특수 소프트웨어를 설치할 필요가 없게 한다.In one embodiment, the device enables video conferences between a first user and a second user. The device includes a processor coupled to memory, a display screen, a network interface, and a web browser. The network interface includes: (i) data specifying a three-dimensional virtual space, (ii) a position and orientation in the three-dimensional virtual space, the position and orientation being input by the first user, and (iii) the first user's It is configured to receive a video stream captured from a camera on the device. The camera of the first user is arranged to capture photographic images of the first user. A web browser implemented in the processor is configured to download a web application from a server and execute the web application. A web application includes a texture mapper and renderer. The texture mapper is configured to texture map the video stream onto the three-dimensional model of the avatar. The renderer is configured to render, from the point of view of the second user's virtual camera, a three-dimensional virtual space comprising a texture-mapped three-dimensional model of the avatar located at that location and oriented in that direction for display to the second user. By managing texture mapping within the web application, the embodiments eliminate the need to install special software.
일 실시예에서, 컴퓨터 구현 방법은 복수의 참가자들을 포함하는 가상 회의에서 프레젠테이션을 가능하게 한다. 이 방법에서, 3차원 가상 공간을 지정하는 데이터가 수신된다. 3차원 가상 공간에서의 위치와 방향이 또한 수신된다. 해당 위치 및 방향은 회의에 대한 복수의 참가자들 중 제1 참가자에 의해 입력되었다. 마지막으로, 제1 참가자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림이 수신된다. 카메라는 제1 참가자의 사진 이미지들을 캡처하도록 배치되었다. 비디오 스트림은 아바타의 3차원 모델 상으로 텍스처 매핑된다. 추가적으로, 제1 참가자의 디바이스로부터 프레젠테이션 스트림이 수신된다. 프레젠테이션 스트림은 프레젠테이션 화면의 3차원 모델 상으로 텍스처 매핑된다. 마지막으로, 복수의 참가자들 중 제2 참가자의 가상 카메라의 시점으로부터, 제2 참가자에게 디스플레이하기 위해 텍스처 매핑된 아바타와 텍스처 매핑된 프레젠테이션 화면을 갖는 3차원 가상 공간이 렌더링된다. 이러한 방식으로, 실시예들은 소셜 콘퍼런스(social conference) 환경에서 프레젠테이션을 가능하게 한다.In one embodiment, a computer implemented method enables presentation in a virtual conference involving a plurality of participants. In this method, data specifying a three-dimensional virtual space is received. A position and orientation in three-dimensional virtual space are also received. The location and orientation were entered by a first participant of the plurality of participants to the conference. Finally, a video stream captured from a camera on the first participant's device is received. A camera was positioned to capture photographic images of the first participant. The video stream is texture mapped onto the avatar's three-dimensional model. Additionally, a presentation stream is received from the first participant's device. The presentation stream is texture mapped onto a 3D model of the presentation screen. Finally, from the viewpoint of the virtual camera of a second participant among the plurality of participants, a three-dimensional virtual space having a texture-mapped avatar and a texture-mapped presentation screen is rendered for display to the second participant. In this way, embodiments enable presentation in a social conference environment.
일 실시예에서, 컴퓨터 구현 방법은 복수의 참가자들을 포함하는 가상 회의를 위한 오디오를 제공한다. 이 방법에서, 제1 사용자의 가상 카메라의 시점으로부터, 제1 사용자에게 디스플레이하기 위해 제2 사용자의 비디오로 텍스처 매핑된 아바타를 포함하는 3차원 가상 공간이 렌더링된다. 가상 카메라는 3차원 가상 공간에서의 제1 위치에 있고 아바타는 3차원 가상 공간에서의 제2 위치에 있다. 제2 사용자의 디바이스의 마이크로폰으로부터의 오디오 스트림이 수신된다. 마이크로폰은 제2 사용자의 발화를 캡처하도록 배치되었다. 제2 위치가 3차원 가상 공간에서 제1 위치를 기준으로 어디에 있는지의 감각을 제공하도록 좌측 오디오 스트림과 우측 오디오 스트림을 결정하기 위해 수신된 오디오 스트림의 볼륨이 조정된다. 좌측 오디오 스트림과 우측 오디오 스트림은 스테레오로 제1 사용자에게 재생되도록 출력된다.In one embodiment, a computer implemented method provides audio for a virtual conference involving a plurality of participants. In this method, a three-dimensional virtual space containing an avatar texture-mapped from the viewpoint of a first user's virtual camera to a video of a second user is rendered for display to the first user. The virtual camera is at a first position in the 3D virtual space and the avatar is at a second position in the 3D virtual space. An audio stream from a microphone of a second user's device is received. A microphone was positioned to capture the second user's utterance. The volume of the received audio stream is adjusted to determine the left and right audio streams to provide a sense of where the second position is relative to the first position in three-dimensional virtual space. The left audio stream and the right audio stream are output to be reproduced to the first user in stereo.
일 실시예에서, 컴퓨터 구현 방법은 가상 회의를 위한 오디오를 제공한다. 이 방법에서, 제1 사용자의 가상 카메라의 시점으로부터, 제1 사용자에게 디스플레이하기 위해 제2 사용자의 비디오로 텍스처 매핑된 아바타를 포함하는 3차원 가상 공간이 렌더링된다. 가상 카메라는 3차원 가상 공간에서의 제1 위치에 있고 아바타는 3차원 가상 공간에서의 제2 위치에 있다. 제2 사용자의 디바이스의 마이크로폰으로부터의 오디오 스트림이 수신된다. 가상 카메라와 아바타가 복수의 영역들 중 동일한 영역에 위치하는지 여부가 결정된다. 가상 카메라와 아바타가 동일한 영역에 위치하지 않는 것으로 결정될 때, 오디오 스트림이 감쇠된다. 감쇠된 오디오 스트림은 제1 사용자에게 재생되도록 출력된다. 이러한 방식으로, 실시예들은 가상 화상 회의 환경에서 사적이고 부차적인 대화를 가능하게 한다.In one embodiment, a computer implemented method provides audio for a virtual conference. In this method, a three-dimensional virtual space containing an avatar texture-mapped from the viewpoint of a first user's virtual camera to a video of a second user is rendered for display to the first user. The virtual camera is at a first position in the 3D virtual space and the avatar is at a second position in the 3D virtual space. An audio stream from a microphone of a second user's device is received. It is determined whether the virtual camera and the avatar are located in the same area among the plurality of areas. When it is determined that the virtual camera and avatar are not located in the same area, the audio stream is attenuated. The attenuated audio stream is output to be reproduced to the first user. In this way, embodiments enable private and secondary conversations in a virtual videoconferencing environment.
일 실시예에서, 컴퓨터 구현 방법은 가상 회의를 위한 비디오를 효율적으로 스트리밍한다. 이 방법에서, 가상 회의 공간에서의 제1 사용자와 제2 사용자 사이의 거리가 결정된다. 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림이 수신된다. 카메라는 제1 사용자의 사진 이미지들을 캡처하도록 배치되었다. 보다 가까운 거리가 보다 먼 거리보다 더 큰 해상도를 결과하도록 비디오 스트림의 해상도 또는 비트레이트가 결정된 거리에 기초하여 감소된다. 비디오 스트림은 가상 회의 공간 내의 제2 사용자에게 디스플레이하기 위해 감소된 해상도 또는 비트레이트로 제2 사용자의 디바이스에게 전송된다. 비디오 스트림은 가상 회의 공간 내의 제2 사용자에게 디스플레이하기 위해 제1 사용자의 아바타 상에 텍스처 매핑된다. 이러한 방식으로, 실시예들은 많은 수의 회의 참가자들이 있을 때에도 대역폭 및 컴퓨팅 자원들을 효율적으로 할당한다.In one embodiment, a computer implemented method efficiently streams video for a virtual conference. In this method, a distance between a first user and a second user in a virtual meeting space is determined. A video stream captured from a camera on a device of a first user is received. The camera is positioned to capture photographic images of the first user. The resolution or bitrate of the video stream is reduced based on the determined distance such that closer distances result in greater resolution than greater distances. The video stream is transmitted to the second user's device at a reduced resolution or bitrate for display to the second user in the virtual meeting space. The video stream is texture mapped onto the first user's avatar for display to the second user in the virtual meeting space. In this way, embodiments efficiently allocate bandwidth and computing resources even when there are a large number of conference participants.
일 실시예에서, 컴퓨터 구현 방법은 가상 화상 회의에서의 모델링을 가능하게 한다. 이 방법에서, 가상 환경의 3차원 모델, 객체의 3차원 모델을 나타내는 메시, 및 가상 화상 회의의 참가자로부터의 비디오 스트림이 수신된다. 비디오 스트림은 참가자에 의해 내비게이션 가능한 아바타에 텍스처 매핑된다. 텍스처 매핑된 아바타와 가상 환경 내의 객체의 3차원 모델을 나타내는 메시가 디스플레이하기 위해 렌더링된다.In one embodiment, a computer implemented method enables modeling in virtual videoconferencing. In this method, a three-dimensional model of a virtual environment, a mesh representing a three-dimensional model of an object, and video streams from participants in a virtual videoconference are received. The video stream is texture mapped to an avatar that can be navigated by participants. Meshes representing three-dimensional models of texture-mapped avatars and objects within the virtual environment are rendered for display.
시스템, 디바이스, 및 컴퓨터 프로그램 제품 실시예들이 또한 개시된다.System, device, and computer program product embodiments are also disclosed.
본 발명의 추가 실시예들, 특징들, 및 장점들은 물론, 다양한 실시예들의 구조 및 동작이 첨부 도면을 참조하여 아래에서 상세하게 설명된다.Additional embodiments, features, and advantages of the present invention, as well as the structure and operation of various embodiments, are described in detail below with reference to the accompanying drawings.
여기에 포함되어 명세서의 일부를 형성하는 첨부 도면은 본 개시내용을 예시하고, 이 설명과 함께, 추가로 본 개시내용의 원리들을 설명하고 관련 기술의 통상의 기술자가 본 개시내용을 제조 및 사용할 수 있게 하는 역할을 한다.
도 1은 비디오 스트림들이 아바타들 상으로 매핑되는 가상 환경에서 화상 회의를 제공하는 예시적인 인터페이스를 예시하는 다이어그램이다.
도 2는 화상 회의를 위한 아바타들을 갖는 가상 환경을 렌더링하는 데 사용되는 3차원 모델을 예시하는 다이어그램이다.
도 3은 가상 환경에서 화상 회의를 제공하는 시스템을 예시하는 다이어그램이다.
도 4a 내지 도 4c는 화상 회의를 제공하기 위해 도 3에서의 시스템의 다양한 컴포넌트들 사이에서 데이터가 어떻게 전송되는지를 예시한다.
도 5는 화상 회의 동안 가상 환경에서 위치 감각(sense of position)을 제공하기 위해 상대적인 좌우 볼륨을 조정하기 위한 방법을 예시하는 플로차트이다.
도 6은 아바타들 사이의 거리가 증가함에 따라 볼륨이 어떻게 롤오프되는지를 예시하는 차트이다.
도 7은 화상 회의 동안 가상 환경에서 상이한 볼륨 영역들을 제공하기 위해 상대적인 볼륨을 조정하기 위한 방법을 예시하는 플로차트이다.
도 8a 및 도 8b는 화상 회의 동안 가상 환경에서의 상이한 볼륨 영역들을 예시하는 다이어그램들이다.
도 9a 내지 도 9c는 화상 회의 동안 가상 환경에서의 볼륨 영역들의 계층구조를 순회하는 것을 예시하는 다이어그램들이다.
도 10은 3차원 가상 환경에서의 3차원 모델과의 인터페이스를 예시한다.
도 11은 화상 회의에 사용되는 3차원 가상 환경에서의 프레젠테이션 화면 공유를 예시한다.
도 12는 3차원 가상 환경 내에서의 아바타들의 상대적인 위치에 기초하여 이용 가능한 대역폭을 배분하기 위한 방법을 예시하는 플로차트이다.
도 13은 아바타들 사이의 거리가 증가함에 따라 우선순위 값이 어떻게 떨어질 수 있는지를 예시하는 차트이다.
도 14는 할당된 대역폭이 상대적인 우선순위에 기초하여 어떻게 달라질 수 있는지를 예시하는 차트이다.
도 15는 가상 환경 내에서 화상 회의를 제공하기 위해 사용되는 디바이스들의 컴포넌트들을 예시하는 다이어그램이다.
요소가 처음으로 나오는 도면은 전형적으로 대응하는 참조 번호에서의 가장 왼쪽의 숫자 또는 숫자들에 의해 표시된다. 도면에서, 비슷한 참조 번호들은 동일하거나 기능적으로 유사한 요소들을 나타낼 수 있다.The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate the present disclosure and, together with the description, further explain the principles of the present disclosure and enable those skilled in the relevant art to make and use the present disclosure. play a role in
1 is a diagram illustrating an exemplary interface for providing video conferencing in a virtual environment in which video streams are mapped onto avatars.
2 is a diagram illustrating a three-dimensional model used to render a virtual environment with avatars for videoconferencing.
3 is a diagram illustrating a system for providing video conferencing in a virtual environment.
4A-4C illustrate how data is transferred between various components of the system in FIG. 3 to provide video conferencing.
5 is a flowchart illustrating a method for adjusting relative left and right volumes to provide a sense of position in a virtual environment during a video conference.
6 is a chart illustrating how the volume rolls off as the distance between avatars increases.
7 is a flowchart illustrating a method for adjusting relative volume to present different volume areas in a virtual environment during a video conference.
8A and 8B are diagrams illustrating different volume areas in a virtual environment during a videoconference.
9A-9C are diagrams illustrating traversing a hierarchy of volume areas in a virtual environment during a videoconference.
10 illustrates an interface with a 3D model in a 3D virtual environment.
11 illustrates presentation screen sharing in a 3D virtual environment used for video conferences.
12 is a flowchart illustrating a method for apportioning available bandwidth based on the relative positions of avatars within a three-dimensional virtual environment.
13 is a chart illustrating how priority values may drop as the distance between avatars increases.
14 is a chart illustrating how allocated bandwidth can vary based on relative priority.
15 is a diagram illustrating components of devices used to provide video conferencing within a virtual environment.
The drawing in which an element first appears is typically indicated by the leftmost digit or digits in the corresponding reference number. In the drawings, like reference numbers may indicate identical or functionally similar elements.
가상 환경에서의 아바타들을 사용한 화상 회의Video conference using avatars in a virtual environment
도 1은 비디오 스트림들이 아바타들 상으로 매핑되는 가상 환경에서 화상 회의를 제공하는 인터페이스(100)의 예를 예시하는 다이어그램이다.1 is a diagram illustrating an example of an
인터페이스(100)는 화상 회의의 참가자에게 디스플레이될 수 있다. 예를 들어, 인터페이스(100)는 참가자에게 디스플레이하기 위해 렌더링될 수 있고 화상 회의가 진행됨에 따라 지속적으로 업데이트될 수 있다. 사용자는, 예를 들어, 키보드 입력들을 사용하여 자신의 가상 카메라의 배향을 제어할 수 있다. 이러한 방식으로, 사용자는 가상 환경 여기저기로 내비게이션할 수 있다. 일 실시예에서, 상이한 입력들은 가상 환경에서의 가상 카메라의 X 위치 및 Y 위치와 팬 각도(pan angle) 및 틸트 각도(tilt angle)를 변경할 수 있다. 추가 실시예들에서, 사용자는 가상 카메라의 높이(Z 좌표) 또는 요(yaw)를 변경하기 위해 입력들을 사용할 수 있다. 다른 추가 실시예들에서, 사용자는 가상 카메라로 하여금 위로 "호핑(hop)"하게 하고 중력을 시뮬레이션하여 그의 원래 위치로 돌아가게 하는 입력들을 입력할 수 있다. 가상 카메라를 내비게이션하는 데 이용 가능한 입력들은, 예를 들어, X-Y 평면에서 가상 카메라를 전후 좌우로 이동시키기 위한 WASD 키보드 키들, 가상 카메라를 "호핑"시키기 위한 스페이스 바 키, 그리고 팬 각도 및 틸트 각도의 변경들을 지정하는 마우스 움직임들과 같은, 키보드 및 마우스 입력들을 포함할 수 있다.
인터페이스(100)는 아바타들(102A 및 102B)을 포함하고, 아바타들(102A 및 102B) 각각은 화상 회의의 상이한 참가자들을 나타낸다. 아바타들(102A 및 102B)은, 제각기, 제1 참가자 및 제2 참가자의 디바이스들로부터의 비디오 스트림들(104A 및 104B)로 텍스처 매핑된다. 텍스처 맵(texture map)은 형상 또는 폴리곤의 표면에 적용되는(매핑되는) 이미지이다. 여기서, 이미지들은 비디오의 각자의 프레임들이다. 비디오 스트림들(104A 및 104B)을 캡처하는 카메라 디바이스들은 각각의 참가자들의 얼굴들을 캡처하도록 배치된다. 이러한 방식으로, 아바타들은 회의의 참가자들이 말하고 들을 때 얼굴들의 움직이는 이미지들로 텍스처 매핑된다.
가상 카메라가 사용자 보기 인터페이스(100)에 의해 제어되는 방식과 유사하게, 아바타들(102A 및 102B)의 위치 및 방향은 이들이 표현하는 각자의 참가자들에 의해 제어된다. 아바타들(102A 및 102B)은 메시에 의해 표현되는 3차원 모델들이다. 각각의 아바타(102A 및 102B)는 아바타 아래에 참가자의 이름을 가질 수 있다.Similar to the way a virtual camera is controlled by
각자의 아바타들(102A 및 102B)은 다양한 사용자들에 의해 제어된다. 이들 각각은 가상 환경 내에서 자신의 가상 카메라들이 위치하는 곳에 대응하는 지점에 배치될 수 있다. 사용자 보기 인터페이스(100)가 가상 카메라를 여기저기로 이동시킬 수 있는 것처럼, 다양한 사용자들은 각자의 아바타들(102A 및 102B)을 여기저기로 이동시킬 수 있다.
인터페이스(100)에 렌더링되는 가상 환경은 배경 이미지(120) 및 아레나(arena)의 3차원 모델(118)을 포함한다. 아레나는 화상 회의가 개최되어야 하는 장소 또는 건물일 수 있다. 아레나는 벽들에 의해 경계지어지는 바닥 영역을 포함할 수 있다. 3차원 모델(118)은 메시 및 텍스처를 포함할 수 있다. 3차원 모델(118)의 표면을 수학적으로 표현하는 다른 방식들도 가능할 수 있다. 예를 들어, 폴리곤 모델링, 곡선 모델링, 및 디지털 스컬프팅(digital sculpting)이 가능할 수 있다. 예를 들어, 3차원 모델(118)은 복셀들, 스플라인들, 기하학적 프리미티브들, 폴리곤들, 또는 3차원 공간에서의 임의의 다른 가능한 표현에 의해 표현될 수 있다. 3차원 모델(118)은 광원들의 사양을 또한 포함할 수 있다. 광원들은, 예를 들어, 점 광원, 지향성 광원, 스포트라이트 광원, 및 주변 광원을 포함할 수 있다. 객체들은 객체들이 광을 어떻게 반사하는지를 설명하는 특정 속성들을 또한 가질 수 있다. 예들에서, 속성들은 확산 조명, 주변 조명, 및 스펙트럼 조명 상호작용들을 포함할 수 있다.The virtual environment rendered on the
아레나 외에도, 가상 환경은 환경의 상이한 컴포넌트들을 예시하는 다양한 다른 3차원 모델들을 포함할 수 있다. 예를 들어, 3차원 환경은 장식 모델(114), 스피커 모델(116), 및 프레젠테이션 화면 모델(122)을 포함할 수 있다. 모델(118)과 마찬가지로, 이러한 모델들은 3차원 공간에서의 기하학적 표면을 표현하는 임의의 수학적 방식을 사용하여 표현될 수 있다. 이러한 모델들은 모델(118)과 분리될 수 있거나 가상 환경의 단일 표현으로 결합될 수 있다.In addition to the arena, the virtual environment may include a variety of other three-dimensional models illustrating the different components of the environment. For example, the 3D environment may include a
모델(114)과 같은 장식 모델들은 사실감을 향상시키고 아레나의 미적 매력을 증가시키는 역할을 한다. 도 5 및 도 7과 관련하여 아래에서 보다 상세히 설명될 것인 바와 같이, 스피커 모델(116)은 프레젠테이션 및 배경 음악과 같은 사운드를 가상적으로 방출할 수 있다. 프레젠테이션 화면 모델(122)은 프레젠테이션을 제시하기 위한 출구를 제공하는 역할을 할 수 있다. 발표자의 비디오 또는 프레젠테이션 화면 공유는 프레젠테이션 화면 모델(122) 상으로 텍스처 매핑될 수 있다.Decorative models, such as
버튼(108)은 참가자들의 목록을 사용자에게 제공할 수 있다. 일 예에서, 사용자가 버튼(108)을 선택한 후에, 사용자는 개별적으로 또는 그룹으로서 문자 메시지들을 보내는 것에 의해 다른 참가자들과 채팅할 수 있다.
버튼(110)은 사용자가 인터페이스(100)를 렌더링하는 데 사용되는 가상 카메라의 어트리뷰트들을 변경하는 것을 가능하게 할 수 있다. 예를 들어, 가상 카메라는 디스플레이하기 위해 데이터가 렌더링되는 각도를 지정하는 시야를 가질 수 있다. 카메라 시야 내의 모델링 데이터는 렌더링되는 반면, 카메라의 시야 밖의 모델링 데이터는 렌더링되지 않을 수 있다. 기본적으로, 가상 카메라의 시야는, 광각 렌즈와 인간 시각에 상응하는, 60°와 110° 사이의 어딘가로 설정될 수 있다. 그렇지만, 버튼(110)을 선택하는 것은 가상 카메라로 하여금 어안 렌즈에 상응하는 170°를 초과하도록 시야를 증가시키게 할 수 있다. 이것은 사용자가 가상 환경에서 자신의 주변 환경에 대한 보다 넓은 주변 인식을 갖도록 하는 것을 가능하게 할 수 있다.
마지막으로, 버튼(112)은 사용자로 하여금 가상 환경을 종료하게 한다. 버튼(112)을 선택하는 것은 인터페이스(100)를 이전에 보고 있던 사용자에 대응하는 아바타를 디스플레이하는 것을 중단하도록 다른 참가자들의 디바이스들에게 시그널링하는 통지가 다른 참가자들에 속하는 디바이스들에게 송신되게 할 수 있다.Finally,
이러한 방식으로, 인터페이스 가상 3D 공간이 화상 회의를 수행하는 데 사용된다. 모든 사용자는 아바타를 제어하는데, 사용자는 이동, 둘러보기, 점프, 또는 위치 또는 방향을 변경하는 다른 일들을 수행하도록 아바타를 제어할 수 있다. 가상 카메라는 가상 3D 환경 및 다른 아바타들을 사용자에게 보여준다. 다른 사용자들의 아바타들은 사용자의 웹캠 이미지를 보여주는 가상 디스플레이를 일체 부분으로서 갖는다.In this way, the interface virtual 3D space is used to conduct video conferences. Every user controls an avatar, and a user can control an avatar to move, look around, jump, or do other things that change position or direction. The virtual camera shows the user a virtual 3D environment and other avatars. Other users' avatars have as an integral part a virtual display showing the user's webcam image.
사용자들에게 공간 감각을 제공하고 사용자들이 서로의 얼굴들을 볼 수 있도록 하는 것에 의해, 실시예들은 종래의 웹 회의 또는 종래의 MMO 게이밍보다 더 많은 사회적 경험을 제공한다. 보다 많은 사회적 경험은 다양한 응용들을 갖는다. 예를 들어, 이는 온라인 쇼핑에서 사용될 수 있다. 예를 들어, 인터페이스(100)는 가상 식료품점, 예배당, 무역 박람회, B2B 판매, B2C 판매, 학교 교육, 레스토랑 또는 구내 식당, 제품 출시, (예를 들면, 건축가, 엔지니어, 계약자를 위한) 건설 현장 방문, 사무실 공간(예를 들면, 사람들이 가상으로 "자신의 책상에서" 일을 함), 원격으로 기계(선박, 차량, 비행기, 잠수함, 드론, 드릴링 장비 등)을 제어하는 것, 플랜트/공장 제어실, 의료 시술, 정원 디자인, 가이드가 있는 가상 버스 투어, 음악 행사(예를 들면, 콘서트), 강의(예를 들면, TED 강연), 정당 회의, 이사회 회의, 수중 연구, 접근하기 어려운 장소에 대한 연구, 비상 사태(예를 들면, 화재)에 대한 훈련, 요리, 쇼핑(계산 및 배달 포함), 가상 예술 및 공예(예를 들면, 그림 및 도자기), 결혼식, 장례식, 세례, 원격 스포츠 훈련, 상담, 두려움 치료(예를 들면, 대면 요법), 패션쇼, 놀이 공원, 가정 장식, 스포츠 관람, e스포츠 관람, 3차원 카메라를 사용하여 캡처되는 공연을 관람하는 것, 보드 및 롤플레잉 게임 플레이, 의료 이미저리 검토, 지질 데이터 보기, 언어 학습, 시각 장애인을 위한 공간에서의 회의, 청각 장애인을 위한 공간에서의 회의 , 일반적으로 걷거나 일어설 수 없는 사람들의 이벤트 참여, 뉴스나 날씨 발표, 토크쇼, 책 사인회, 투표, MMO, (캘리포니아주 샌프란시스코의 Linden Research, Inc.로부터 이용 가능한 SECOND LIFE 게임과 같은 일부 MMO에서 이용 가능한 것과 같은) 가상 위치 구매/판매, 벼룩시장, 차고 판매, 여행사, 은행, 기록 보관소, 컴퓨터 프로세스 관리, 펜싱/검투/무술, 재연(예를 들면, 범죄 현장 및/또는 사고 재연), 실제 이벤트(예를 들면, 결혼식, 프레젠테이션, 쇼, 우주 유영)의 리허설, 3차원 카메라로 캡처된 실제 이벤트의 평가 또는 보기, 가축 쇼, 동물원, 키가 큰 사람/키가 작은 사람/맹인/농아인/백인/흑인의 삶을 경험하는 것(예를 들면, 사용자가 반응을 경험하기를 원하는 관점을 시뮬레이션하기 위한 가상 세계에 대한 수정된 비디오 스트림 또는 정지 이미지), 면접, 게임 쇼, 대화형 소설(예를 들면, 살인 미스터리), 가상 낚시, 가상 항해, 심리 연구, 행동 분석, 가상 스포츠(예를 들면, 등산/볼더링), 집 또는 다른 위치에서의 조명 등의 제어(도모틱스), 기억의 궁전, 고고학, 선물 가게, 고객이 실제 방문 시에 보다 편안하도록 하는 가상 방문, 시술을 설명하고 사람들이 보다 편안하게 느끼게 하는 가상 의료 시술, 및 가상 거래소/금융 시장/주식 시장(예를 들면, 실시간 데이터 및 비디오 피드를 가상 세계에 통합, 실시간 거래 및 분석), 사람들이 실제로 서로 유기적으로 만나도록 업무의 일부로서 가야 하는 가상 위치(예를 들면, 송장을 생성하기를 원하는 경우, 이는 가상 위치 내부에서만 가능함) 및 사람의 얼굴 표정을 볼 수 있도록 AR 헤드셋(또는 헬멧) 상에 사람의 얼굴을 투영하는 증강 현실(예를 들면, 군대, 법 집행, 소방관, 특수 작전에 유용함), 및 (예를 들면, 특정 휴가용 주택/자동차 등에 대한) 예약을 제공하는 데 응용들을 갖는다.By providing users with a sense of space and allowing users to see each other's faces, the embodiments provide a more social experience than conventional web conferencing or conventional MMO gaming. A more social experience has a variety of applications. For example, it can be used in online shopping. For example,
도 2는 화상 회의를 위한 아바타들을 갖는 가상 환경을 렌더링하는 데 사용되는 3차원 모델을 예시하는 다이어그램(200)이다. 도 1에 예시된 바와 같이, 여기서 가상 환경은 3차원 아레나(118), 및 3차원 모델들(114 및 122)을 포함하는 다양한 3차원 모델들을 포함한다. 또한 도 1에 예시된 바와 같이, 다이어그램(200)은 가상 환경 여기저기로 내비게이션하는 아바타들(102A 및 102B)을 포함한다.2 is a diagram 200 illustrating a three-dimensional model used to render a virtual environment with avatars for video conferencing. As illustrated in FIG. 1 , the virtual environment here includes a three-
위에서 설명된 바와 같이, 도 1에서의 인터페이스(100)는 가상 카메라의 시점으로부터 렌더링된다. 해당 가상 카메라는 가상 카메라(204)로서 다이어그램(200)에 예시되어 있다. 위에서 언급된 바와 같이, 도 1에서의 사용자 보기 인터페이스(100)는 가상 카메라(204)를 제어하고 3차원 공간에서 가상 카메라를 내비게이션할 수 있다. 인터페이스(100)는 가상 카메라(204)의 새로운 위치 및 가상 카메라(204)의 시야 내의 모델들의 임의의 변경들에 따라 지속적으로 업데이트된다. 위에서 설명된 바와 같이, 가상 카메라(204)의 시야는 수평 시야각 및 수직 시야각에 의해, 적어도 부분적으로, 정의되는 절두체일 수 있다.As described above, the
도 1과 관련하여 위에서 설명된 바와 같이, 배경 이미지 또는 텍스처는 가상 환경의 적어도 일부를 정의할 수 있다. 배경 이미지는 멀리 떨어져 나타나도록 의도된 가상 환경의 측면들을 캡처할 수 있다. 배경 이미지는 구(202) 상으로 매핑되는 텍스처일 수 있다. 가상 카메라(204)는 구(202)의 원점에 있을 수 있다. 이러한 방식으로, 가상 환경의 멀리 떨어진 특징물들이 효율적으로 렌더링될 수 있다.As described above with respect to FIG. 1 , a background image or texture may define at least a portion of the virtual environment. The background image may capture aspects of the virtual environment that are intended to appear at a distance. The background image may be a texture mapped onto the
다른 실시예들에서, 구(202) 대신에 다른 형상들이 배경 이미지를 텍스처 매핑하는 데 사용될 수 있다. 다양한 대안적인 실시예들에서, 형상은 원통, 입방체, 직사각형 프리즘, 또는 임의의 다른 3차원 기하형태일 수 있다.In other embodiments, other shapes may be used to texture map the background image instead of
도 3은 가상 환경에서 화상 회의를 제공하는 시스템(300)을 예시하는 다이어그램이다. 시스템(300)은 하나 이상의 네트워크(304)를 통해 디바이스들(306A 및 306B)에 결합되는 서버(302)를 포함한다.3 is a diagram illustrating a
서버(302)는 디바이스(306A)와 디바이스(306B) 사이에 화상 회의 세션을 연결시키기 위한 서비스들을 제공한다. 아래에서 보다 자세히 설명될 것인 바와 같이, 서버(302)는 새로운 참가자들이 회의에 합류할 때 및 기존의 참가자들이 회의에서 나갈 때 회의 참가자들의 디바이스들(예를 들면, 디바이스들(306A 및 306B))에 통지들을 통신한다. 서버(302)는 3차원 가상 공간 내의 각자의 참가자의 가상 카메라들에 대한 3차원 가상 공간에서의 위치 및 방향을 설명하는 메시지들을 통신한다. 서버(302)는 또한 참가자들의 각자의 디바이스들(예를 들면, 디바이스들(306A 및 306B)) 사이에서 비디오 및 오디오 스트림들을 통신한다. 마지막으로, 서버(302)는 3차원 가상 공간을 지정하는 데이터를 설명하는 데이터를 저장하고 각자의 디바이스들(306A 및 306B)에게 전송한다.Server 302 provides services for establishing a video conference session between
가상 회의에 필요한 데이터에 추가하여, 서버(302)는 대화형 회의를 제공하기 위해 데이터를 어떻게 렌더링해야 하는지에 대해 디바이스들(306A 및 306B)에게 알려 주는 실행 가능한 정보를 제공할 수 있다.In addition to the data needed for the virtual conference, server 302 may provide actionable information that tells
서버(302)는 응답으로 요청들에 대해 응답한다. 서버(302)는 웹 서버일 수 있다. 웹 서버는 월드 와이드 웹(World Wide Web)을 통해 이루어지는 클라이언트 요청들에 응답하기 위해 HTTP(Hypertext Transfer Protocol) 및 다른 프로토콜들을 사용하는 소프트웨어 및 하드웨어이다. 웹 서버의 주된 일은, 웹 페이지들을 저장하고, 처리하며 사용자들에게 전달하는 것을 통해, 웹사이트 콘텐츠를 디스플레이하는 것이다.Server 302 responds to requests with a response. Server 302 may be a web server. A web server is software and hardware that uses the Hypertext Transfer Protocol (HTTP) and other protocols to respond to client requests made over the World Wide Web. A web server's main job is to display website content by storing, processing and delivering web pages to users.
대안적인 실시예에서, 디바이스들(306A 및 306B) 사이의 통신은 서버(302)를 통하지 않고 피어 투 피어 기반으로 발생한다. 해당 실시예에서, 각자의 참가자들의 위치 및 방향을 설명하는 데이터, 신규 및 기존 참가자들에 관한 통지들, 및 각자의 참가자들의 비디오 및 오디오 스트림들 중 하나 이상이 서버(302)를 통하지 않고 디바이스들(306A 및 306B) 사이에서 직접 통신된다.In an alternative embodiment, communication between
네트워크(304)는 다양한 디바이스들(306A 및 306B)과 서버(302) 사이의 통신을 가능하게 한다. 네트워크(304)는 애드혹 네트워크, 인트라넷, 엑스트라넷, VPN(virtual private network), LAN(local area network), WLAN(wireless LAN), WAN(wide area network), WWAN(wireless wide area network), MAN(metropolitan area network), 인터넷의 일 부분, PSTN(Public Switched Telephone Network)의 일 부분, 셀룰러 전화 네트워크, 무선 네트워크, WiFi 네트워크, WiMax 네트워크, 임의의 다른 유형의 네트워크, 또는 2 개 이상의 그러한 네트워크의 임의의 조합일 수 있다.
디바이스들(306A 및 306B)은 가상 회의의 각자의 참가자들의 각각의 디바이스들이다. 디바이스들(306A 및 306B) 각각은 가상 회의를 수행하는 데 필요한 데이터를 수신하고 가상 회의를 제공하는 데 필요한 데이터를 렌더링한다. 아래에서 보다 자세히 설명될 것인 바와 같이, 디바이스들(306A 및 306B)은 렌더링된 회의 정보를 제시하기 위한 디스플레이, 사용자가 가상 카메라를 제어할 수 있게 하는 입력들, 회의를 위해 사용자에게 오디오를 제공하기 위한 스피커(예컨대, 헤드셋), 사용자의 음성 입력을 캡처하기 위한 마이크로폰, 및 사용자의 얼굴의 비디오를 캡처하기 위해 배치된 카메라를 포함한다.
디바이스들(306A 및 306B)은, 랩톱, 데스크톱, 스마트폰, 또는 태블릿 컴퓨터, 또는 웨어러블 컴퓨터(예컨대, 스마트워치 또는 증강 현실 또는 가상 현실 헤드셋)를 포함한, 임의의 유형의 컴퓨팅 디바이스일 수 있다.
웹 브라우저(308A 및 308B)는 (통합 자원 로케이터(Uniform Resource Locator) 또는 URL과 같은) 링크 식별자에 의해 주소 지정되는 네트워크 자원(예컨대, 웹 페이지)을 검색하고 디스플레이하기 위해 네트워크 자원을 제시할 수 있다. 상세하게는, 웹 브라우저(308A 및 308B)는 월드 와이드 웹 상의 정보에 액세스하기 위한 소프트웨어 애플리케이션이다. 일반적으로, 웹 브라우저(308A 및 308B)는 하이퍼텍스트 전송 프로토콜(HTTP 또는 HTTPS)을 사용하여 이 요청을 한다. 사용자가 특정 웹사이트에 웹 페이지를 요청할 때, 웹 브라우저는 웹 서버로부터 필요한 콘텐츠를 검색하고, 콘텐츠를 해석하고 실행하며, 이어서 클라이언트/상대방 회의 애플리케이션(308A 및 308B)으로서 도시된 페이지를 디바이스(306A 및 306B) 상의 디스플레이 상에 디스플레이한다. 예들에서, 콘텐츠는 HTML 및, JavaScript와 같은, 클라이언트 측 스크립팅을 가질 수 있다. 일단 디스플레이되면, 사용자는 정보를 입력하고 페이지 상에서 선택들을 할 수 있으며, 이는 웹 브라우저(308A 및 308B)로 하여금 추가 요청들을 하게 할 수 있다.
회의 애플리케이션(310A 및 310B)은 서버(302)로부터 다운로드되고 각자의 웹 브라우저들(308A 및 308B)에 의해 실행되도록 구성된 웹 애플리케이션일 수 있다. 일 실시예에서, 회의 애플리케이션(310A 및 310B)은 JavaScript 애플리케이션일 수 있다. 일 예에서, 회의 애플리케이션(310A 및 310B)은, Typescript 언어와 같은, 보다 고수준의 언어로 작성되고 JavaScript로 번역되거나 컴파일될 수 있다. 회의 애플리케이션(310A 및 310B)은 WebGL JavaScript 애플리케이션 프로그래밍 인터페이스와 상호작용하도록 구성된다. 이는 JavaScript로 지정되는 제어 코드와 GLSL ES(OpenGL ES Shading Language)로 작성된 셰이더 코드(shader code)를 가질 수 있다. WebGL API를 사용하여, 회의 애플리케이션(310A 및 310B)은 디바이스(306A 및 306B)의 그래픽 처리 유닛(도시되지 않음)을 활용할 수 있다. 더욱이, 플러그인들을 사용하지 않는 대화형 2차원 및 3차원 그래픽의 OpenGL 렌더링.
회의 애플리케이션(310A 및 310B)은 다른 아바타들의 위치 및 방향을 설명하는 데이터 및 가상 환경을 설명하는 3차원 모델링 정보를 서버(302)로부터 수신한다. 추가적으로, 회의 애플리케이션(310A 및 310B)은 서버(302)로부터 다른 회의 참가자들의 비디오 및 오디오 스트림들을 수신한다.
회의 애플리케이션(310A 및 310B)은, 3차원 환경을 설명하는 데이터 및 각자의 참가자 아바타들을 표현하는 데이터를 포함한, 3차원 모델링 데이터를 렌더링한다. 이 렌더링은 래스터화, 텍스처 매핑, 광선 추적, 셰이딩, 또는 다른 렌더링 기술들을 수반할 수 있다. 일 실시예에서, 렌더링은 가상 카메라의 특성들에 기초한 광선 추적을 수반할 수 있다. 광선 추적은 이미지 평면에서의 픽셀들로서 광의 경로를 추적하고 가상 객체들과의 조우의 효과들을 시뮬레이션하는 것에 의해 이미지를 생성하는 것을 수반한다. 일부 실시예들에서, 사실감을 향상시키기 위해, 광선 추적은 반사, 굴절, 산란, 및 분산과 같은 광학 효과들을 시뮬레이션할 수 있다.
이러한 방식으로, 사용자는 웹 브라우저(308A 및 308B)를 사용하여 가상 공간에 입장한다. 장면이 사용자의 스크린 상에 디스플레이된다. 사용자의 웹캠 비디오 스트림 및 마이크로폰 오디오 스트림이 서버(302)에게 송신된다. 다른 사용자들이 가상 공간에 입장할 때, 이들에 대한 아바타 모델이 생성된다. 이 아바타의 위치는 서버에게 송신되고 다른 사용자들에 의해 수신된다. 다른 사용자들은 또한 오디오/비디오 스트림이 이용 가능하다는 통지를 서버(302)로부터 받는다. 사용자의 비디오 스트림은 해당 사용자를 위해 생성된 아바타 상에 배치된다. 오디오 스트림은 아바타의 위치로부터 오는 것처럼 재생된다.In this way, users enter the virtual space using
도 4a 내지 도 4c는 화상 회의를 제공하기 위해 도 3에서의 시스템의 다양한 컴포넌트들 사이에서 데이터가 어떻게 전송되는지를 예시한다. 도 3과 같이, 도 4a 내지 도 4c의 각각은 서버(302)와 디바이스들(306A 및 306B) 사이의 연결을 묘사한다. 상세하게는, 도 4a 내지 도 4c는 해당 디바이스들 사이의 예시적인 데이터 흐름들을 예시한다.4A-4C illustrate how data is transferred between various components of the system in FIG. 3 to provide video conferencing. Like FIG. 3 , each of FIGS. 4A-4C depicts a connection between server 302 and
도 4a는 서버(302)가 가상 환경을 설명하는 데이터를 디바이스들(306A 및 306B)에게 어떻게 전송하는지를 예시하는 다이어그램(400)을 예시한다. 상세하게는, 디바이스들(306A 및 306B) 양쪽 모두는 3차원 아레나(404), 배경 텍스처(402), 공간 계층구조(408) 및 임의의 다른 3차원 모델링 정보(406)를 서버(302)로부터 수신한다.4A illustrates a diagram 400 illustrating how server 302 transmits data describing a virtual environment to
위에서 설명된 바와 같이, 배경 텍스처(402)는 가상 환경의 멀리 떨어진 특징물들을 나타내는 이미지이다. 이미지는 규칙적(예컨대, 벽돌 벽)이거나 불규칙적일 수 있다. 배경 텍스처(402)는, 비트맵, JPEG, GIF, 또는 다른 파일 이미지 포맷과 같은, 임의의 공통 이미지 파일 포맷으로 인코딩될 수 있다. 이는, 예를 들어, 멀리 떨어져 있는 구에 대해 렌더링될 배경 이미지를 설명한다.As described above,
3차원 아레나(404)는 회의가 개최될 공간의 3차원 모델이다. 위에서 설명된 바와 같이, 이는, 예를 들어, 메시 및 어쩌면 자체 텍스처 정보가 설명하는 3차원 프리미티브들 상에 매핑될 자체 텍스처 정보를 포함할 수 있다. 이는 가상 카메라와 각자의 아바타들이 가상 환경 내에서 내비게이션할 수 있는 공간을 정의할 수 있다. 그에 따라, 이는 내비게이션 가능한 가상 환경의 외곽을 사용자들에게 나타내는 가장자리들(예컨대, 벽들 또는 울타리들)에 의해 경계지어질 수 있다.The
공간 계층구조(408)는 가상 환경에서의 파티션들을 지정하는 데이터이다. 이러한 파티션들은 참가자들 사이에서 전송되기 전에 사운드가 어떻게 처리되는지를 결정하는 데 사용된다. 아래에서 설명될 것인 바와 같이, 이 파티션 데이터는 계층적일 수 있고, 가상 회의의 참가자들이 사적인 대화 또는 부차적인 대화를 나눌 수 있는 영역들을 가능하게 하기 위한 사운드 처리를 설명할 수 있다.
3차원 모델(406)은 회의를 수행하는 데 필요한 임의의 다른 3차원 모델링 정보이다. 일 실시예에서, 이것은 각자의 아바타들을 설명하는 정보를 포함할 수 있다. 대안적으로 또는 추가적으로, 이 정보는 제품 시연들을 포함할 수 있다.The
회의를 수행하는 데 필요한 정보가 참가자들에게 송신되면, 도 4b 및 도 4c는 서버(302)가 하나의 디바이스로부터 다른 디바이스로 어떻게 정보를 전달하는지를 예시한다. 도 4b는 서버(302)가 각자의 디바이스들(306A 및 306B)로부터 어떻게 정보를 수신하는지를 보여주는 다이어그램(420)을 예시하고, 도 4c는 서버(302)가 정보를 각자의 디바이스들(306B 및 306A)에게 어떻게 전송하는지를 보여주는 다이어그램(420)을 예시한다. 상세하게는, 디바이스(306A)는 위치 및 방향(422A), 비디오 스트림(424A), 및 오디오 스트림(426A)을 서버(302)에게 전송하고, 서버(302)는 위치 및 방향(422A), 비디오 스트림(424A), 및 오디오 스트림(426A)을 디바이스(306B)에게 전송한다. 그리고 디바이스(306B)는 위치 및 방향(422B), 비디오 스트림(424B), 및 오디오 스트림(426B)을 서버(302)에게 전송하고, 서버(302)는 위치 및 방향(422B), 비디오 스트림(424B), 및 오디오 스트림(426B)을 디바이스(306A)에게 전송한다.Once the information needed to conduct the conference is transmitted to the participants, FIGS. 4B and 4C illustrate how the server 302 transfers the information from one device to another. 4B illustrates a diagram 420 showing how server 302 receives information from
위치 및 방향(422A 및 422B)은 디바이스(306A)를 사용하는 사용자에 대한 가상 카메라의 위치 및 방향을 설명한다. 위에서 설명된 바와 같이, 위치는 3차원 공간에서의 좌표(예를 들면, x, y, z 좌표)일 수 있고, 방향은 3차원 공간에서의 방향(예를 들어, 팬, 틸트, 롤(roll))일 수 있다. 일부 실시예들에서, 사용자는 가상 카메라의 롤을 제어할 수 없을 수 있으며, 따라서 방향은 팬 각도 및 틸트 각도만을 지정할 수 있다. 유사하게, 일부 실시예들에서, 사용자는 (아바타가 가상 중력에 의해 제한되기 때문에) 아바타의 z 좌표를 변경할 수 없을 수 있으며, z 좌표가 불필요할 수 있다. 이러한 방식으로, 위치 및 방향(422A 및 422B) 각각은 적어도 3차원 가상 공간에서의 수평 평면 상의 좌표 및 팬 및 틸트 값을 포함할 수 있다. 대안적으로 또는 추가적으로, 사용자는 자신의 아바타를 "점프"시킬 수 있으며, 따라서 Z 위치는 사용자가 자신의 아바타를 점프시키는지 여부의 표시에 의해서만 지정될 수 있다.Position and
상이한 예들에서, 위치 및 방향(422A 및 422B)은 HTTP 요청 응답들을 사용하여 또는 소켓 메시징을 사용하여 전송 및 수신될 수 있다.In different examples, location and
비디오 스트림(424A 및 424B)은 각자의 디바이스들(306A 및 306B)의 카메라로부터 캡처되는 비디오 데이터이다. 비디오는 압축될 수 있다. 예를 들어, 비디오는, MPEG-4, VP8, 또는 H.264를 포함한, 임의의 통상적으로 알려진 비디오 코덱들을 사용할 수 있다. 비디오는 실시간으로 캡처되어 전송될 수 있다.Video streams 424A and 424B are video data captured from the cameras of
유사하게, 오디오 스트림(426A 및 426B)은 각자의 디바이스들의 마이크로폰으로부터 캡처되는 오디오 데이터이다. 오디오는 압축될 수 있다. 예를 들어, 오디오는, MPEG-4 또는 vorbis를 포함한, 임의의 통상적으로 알려진 오디오 코덱들을 사용할 수 있다. 오디오는 실시간으로 캡처되어 전송될 수 있다. 비디오 스트림(424A) 및 오디오 스트림(426A)은 서로 동기하여 캡처되고, 전송되며, 제시된다. 유사하게, 비디오 스트림(424B) 및 오디오 스트림(426B)은 서로 동기하여 캡처되고, 전송되며, 제시된다.Similarly,
비디오 스트림(424A 및 424B) 및 오디오 스트림(426A 및 426B)은 WebRTC 애플리케이션 프로그래밍 인터페이스를 사용하여 전송될 수 있다. WebRTC는 JavaScript에서 이용 가능한 API이다. 위에서 설명된 바와 같이, 디바이스들(306A 및 306B)은, 회의 애플리케이션들(310A 및 310B)로서, 웹 애플리케이션들을 다운로드하고 실행하며, 회의 애플리케이션들(310A 및 310B)은 JavaScript로 구현될 수 있다. 회의 애플리케이션들(310A 및 310B)은 자신의 JavaScript로부터 API 호출들을 수행하는 것에 의해 비디오 스트림(424A 및 424B) 및 오디오 스트림(426A 및 426B)을 수신 및 전송하기 위해 WebRTC를 사용할 수 있다.Video streams 424A and 424B and
위에서 언급된 바와 같이, 사용자가 가상 회의에서 나갈 때, 이 퇴장이 모든 다른 사용자들에게 통신된다. 예를 들어, 디바이스(306A)가 가상 회의에서 빠져나가는 경우, 서버(302)는 해당 퇴장을 디바이스(306B)에게 통신할 것이다. 결과적으로, 디바이스(306B)는 디바이스(306A)에 대응하는 아바타를 렌더링하는 것을 중지하여, 가상 공간으로부터 아바타를 제거할 것이다. 추가적으로, 디바이스(306B)는 비디오 스트림(424A) 및 오디오 스트림(426A)을 수신하는 것을 중단할 것이다.As mentioned above, when a user leaves a virtual meeting, this exit is communicated to all other users. For example, if
위에서 설명된 바와 같이, 회의 애플리케이션들(310A 및 310B)은 각자의 비디오 스트림들(424A 및 424B), 위치 및 방향(422A 및 422B), 및 3차원 환경에 관한 새로운 정보에 기초하여 가상 공간을 주기적으로 또는 간헐적으로 재렌더링할 수 있다. 단순함을 위해, 이러한 업데이트들 각각이 이제 디바이스(306A)의 관점에서 설명된다. 그렇지만, 통상의 기술자는 유사한 변경들이 주어지면 디바이스(306B)가 유사하게 거동할 것임을 이해할 것이다.As described above,
디바이스(306A)가 비디오 스트림(424B)을 수신할 때, 디바이스(306A)는 비디오 스트림(424A)으로부터의 프레임들을 디바이스(306B)에 대응하는 아바타 상으로 텍스처 매핑한다. 해당 텍스처 매핑된 아바타는 3차원 가상 공간 내에서 재렌더링되고 디바이스(306A)의 사용자에게 제시된다.When
디바이스(306A)가 새로운 위치 및 방향(422B)을 수신할 때, 디바이스(306A)는 새로운 위치에 배치되고 새로운 방향으로 배향된 디바이스(306B)에 대응하는 아바타를 생성한다. 생성된 아바타는 3차원 가상 공간 내에서 재렌더링되고 디바이스(306A)의 사용자에게 제시된다.When
일부 실시예들에서, 서버(302)는 3차원 가상 환경을 설명하는 업데이트된 모델 정보를 송신할 수 있다. 예를 들어, 서버(302)는 업데이트된 정보(402, 404, 406, 또는 408)를 송신할 수 있다. 그러한 일이 발생할 때, 디바이스(306A)는 업데이트된 정보에 기초하여 가상 환경을 재렌더링할 것이다. 이것은 시간이 지남에 따라 환경이 변할 때 유용할 수 있다. 예를 들어, 야외 이벤트는 이벤트가 진행됨에 따라 낮으로부터 해질녘으로 바뀔 수 있다.In some embodiments, server 302 may transmit updated model information describing the three-dimensional virtual environment. For example, server 302 may transmit updated
다시 말하지만, 디바이스(306B)가 가상 회의에서 빠져나갈 때, 서버(302)는 디바이스(306B)가 더 이상 회의에 참여하고 있지 않음을 나타내는 통지를 디바이스(306A)에게 송신한다. 그 경우에, 디바이스(306A)는 디바이스(306B)에 대한 아바타를 갖지 않는 가상 환경을 재렌더링할 것이다.Again, when device 306B exits the virtual conference, server 302 sends a notification to
도 3 및 도 4a 내지 도 4c가 단순함을 위해 2 개의 디바이스로 예시되어 있지만, 통상의 기술자는 본 명세서에서 설명되는 기술들이 임의의 수의 디바이스들로 확장될 수 있음을 이해할 것이다. 또한, 도 3 및 도 4a 내지 도 4c가 단일 서버(302)를 예시하지만, 통상의 기술자는 서버(302)의 기능이 복수의 컴퓨팅 디바이스들 간에 분산될 수 있음을 이해할 것이다. 일 실시예에서, 도 4a에서 전송되는 데이터는 서버(302)에 대한 하나의 네트워크 주소로부터 올 수 있는 반면, 도 4b 및 도 4c에서 전송되는 데이터는 서버(302)에 대한 다른 네트워크 주소로/로부터 전송될 수 있다.Although FIGS. 3 and 4A-4C are illustrated with two devices for simplicity, one skilled in the art will appreciate that the techniques described herein may be extended to any number of devices. Further, while FIGS. 3 and 4A-4C illustrate a single server 302 , those skilled in the art will understand that the functionality of server 302 may be distributed among multiple computing devices. In one embodiment, the data transmitted in FIG. 4A may come from one network address for server 302, while the data transmitted in FIGS. 4B and 4C are to/from another network address for server 302. can be transmitted
일 실시예에서, 참가자들은 가상 회의에 입장하기 전에 자신의 웹캠, 마이크로폰, 스피커들 및 그래픽 설정들을 설정할 수 있다. 대안적인 실시예에서, 애플리케이션을 시작한 후에, 사용자들은 가상 로비에 들어갈 수 있으며, 거기에서 실제 사람에 의해 제어되는 아바타의 인사를 받는다. 이 사람은 사용자의 웹캠, 마이크로폰, 스피커들 및 그래픽 설정들을 보고 수정할 수 있다. 안내원은 또한, 예를 들어, 보기, 이동 및 상호작용에 관해 사용자들에게 가르치는 것에 의해 가상 환경을 어떻게 사용하는지에 대해 사용자에게 알려 줄 수 있다. 준비가 될 때, 사용자는 자동으로 가상 대기실에서 나와서 실제 가상 환경에 합류한다.In one embodiment, participants may set their webcam, microphone, speakers and graphics settings prior to entering the virtual meeting. In an alternative embodiment, after launching the application, users may enter a virtual lobby, where they are greeted by an avatar controlled by a real person. This person can view and modify the user's webcam, microphone, speakers and graphics settings. The guide may also inform the user how to use the virtual environment, for example by teaching the user about viewing, moving and interacting. When ready, the user automatically exits the virtual waiting room and joins the real virtual environment.
가상 환경에서의 화상 회의를 위한 볼륨의 조정Adjustment of volume for video conference in virtual environment
실시예들은 또한 가상 회의 내에서의 위치 및 공간의 감각을 제공하기 위해 볼륨을 조정한다. 이는, 예를 들어, 도 5 내지 도 7, 도 8a 및 도 8b 및 도 9a 내지 도 9c에 예시되어 있으며, 이들 각각은 아래에 설명되어 있다.Embodiments also adjust the volume to provide a sense of position and space within the virtual meeting. This is illustrated, for example, in FIGS. 5-7 , 8A and 8B and 9A-9C , each of which is described below.
도 5는 화상 회의 동안 가상 환경에서 위치 감각을 제공하기 위해 상대적인 좌우 볼륨을 조정하기 위한 방법(500)을 예시하는 플로차트이다.5 is a flowchart illustrating a
단계(502)에서, 아바타들 사이의 거리에 기초하여 볼륨이 조정된다. 위에서 설명된 바와 같이, 다른 사용자의 디바이스의 마이크로폰으로부터의 오디오 스트림이 수신된다. 제2 위치와 제1 위치 사이의 거리에 기초하여 제1 오디오 스트림과 제2 오디오 스트림 양쪽 모두의 볼륨이 조정된다. 이것은 도 6에 예시되어 있다.In
도 6은 아바타들 사이의 거리가 증가함에 따라 볼륨이 어떻게 롤오프되는지를 예시하는 차트(600)를 도시한다. 차트(600)는 x 축 및 y 축에 볼륨(602)을 예시한다. 사용자들 사이의 거리가 증가함에 따라, 볼륨은 기준 거리(602)에 도달할 때까지 일정하게 유지된다. 그 시점에서, 볼륨이 하강하기 시작한다. 이러한 방식으로, 모든 다른 조건이 동일하다면, 보다 가까운 사용자는 보다 멀리 있는 사용자보다 종종 더 크게 들릴 것이다.6 shows a
사운드가 얼마나 빨리 하강하는지는 롤 오프 율(roll off factor)에 의존한다. 이것은 화상 회의 시스템 또는 클라이언트 디바이스의 설정들에 내장된 계수일 수 있다. 라인(608) 및 라인(610)에 의해 예시된 바와 같이, 보다 큰 롤 오프 율은 보다 작은 롤 오프 율보다 볼륨을 더 빠르게 떨어뜨릴 것이다.How fast the sound descends depends on the roll off factor. This may be a coefficient built into the settings of the video conferencing system or client device. As illustrated by
도 5로 돌아가면, 단계(504)에서, 아바타가 위치하는 방향에 기초하여 상대적인 좌우 오디오가 조정된다. 즉, 말하는 사용자의 아바타가 어디에 위치하는지의 감각을 제공하기 위해 사용자의 스피커(예를 들면, 헤드셋)에서 출력되는 오디오의 볼륨이 변할 것이다. 오디오를 수신하는 사용자가 위치하는 위치(예를 들면, 가상 카메라의 위치)를 기준으로 오디오 스트림을 생성하는 사용자가 위치하는 위치(예를 들어, 말하는 사용자의 아바타의 위치)의 방향에 기초하여 좌우 오디오 스트림들의 상대적인 볼륨이 조정된다. 위치들은 3차원 가상 공간 내의 수평 평면에 있을 수 있다. 제2 위치가 3차원 가상 공간에서 제1 위치를 기준으로 어디에 있는지의 감각을 제공하기 위해 좌측 오디오 스트림과 우측 오디오 스트림의 상대적인 볼륨이 조정된다.Returning to Figure 5, in
예를 들어, 단계(504)에서, 오디오가 수신하는 사용자의 좌측 귀에서 우측 귀에서보다 더 높은 볼륨으로 출력되도록 가상 카메라의 좌측에 있는 아바타에 대응하는 오디오가 조정될 것이다. 유사하게, 오디오가 수신하는 사용자의 우측 귀에서 좌측 귀에서보다 더 높은 볼륨으로 출력되도록 가상 카메라의 우측에 있는 아바타에 대응하는 오디오가 조정될 것이다.For example, at
단계(506)에서, 상대적인 좌우 오디오는 하나의 아바타가 다른 아바타를 기준으로 배향되는 방향에 기초하여 조정된다. 가상 카메라가 향하고 있는 방향과 아바타가 향하고 있는 방향 사이의 각도에 기초하여, 이 각도가 더 수직인 것이 좌측 오디오 스트림과 우측 오디오 스트림 사이의 더 큰 볼륨 차이를 갖는 경향이 있도록, 좌측 오디오 스트림과 우측 오디오 스트림의 상대적인 볼륨이 조정된다.In
예를 들어, 아바타가 가상 카메라를 바로 마주하고 있을 때, 단계(506)에서 아바타의 대응하는 오디오 스트림의 상대적인 좌우 볼륨은 전혀 조정되지 않을 수 있다. 아바타가 가상 카메라의 좌측을 향하고 있을 때, 아바타의 대응하는 오디오 스트림의 상대적인 좌우 볼륨은 좌측이 우측보다 더 크도록 조정될 수 있다. 그리고, 아바타가 가상 카메라의 우측을 향하고 있을 때, 아바타의 대응하는 오디오 스트림의 상대적인 좌우 볼륨은 우측이 좌측보다 더 크도록 조정될 수 있다.For example, when the avatar is directly facing the virtual camera, the relative left and right volumes of the avatar's corresponding audio streams at
일 예에서, 단계(506)에서의 계산은 가상 카메라가 향하고 있는 각도와 아바타가 향하고 있는 각도의 외적을 취하는 것을 수반할 수 있다. 각도들은 수평 평면에서 이들이 향하고 있는 방향일 수 있다.In one example, the calculation at
일 실시예에서, 사용자가 사용하고 있는 오디오 출력 디바이스를 결정하기 위해 검사가 수행될 수 있다. 오디오 출력 디바이스가 스테레오 효과를 제공하는 헤드폰 세트 또는 다른 유형의 스피커가 아닌 경우, 단계(504 및 506)에서의 조정들이 발생하지 않을 수 있다.In one embodiment, a check may be performed to determine the audio output device the user is using. Adjustments in
단계들(502 내지 506)은 모든 다른 참가자로부터 수신되는 모든 오디오 스트림에 대해 반복된다. 단계들(502 내지 506)에서의 계산들에 기초하여, 모든 다른 참가자에 대해 좌측 및 우측 오디오 이득이 계산된다.
이러한 방식으로, 각각의 참가자에 대한 오디오 스트림들은 참가자의 아바타가 3차원 가상 환경에서 어디에 위치하는지의 감각을 제공하도록 조정된다.In this way, the audio streams for each participant are tailored to provide a sense of where the participant's avatar is located in the three-dimensional virtual environment.
오디오 스트림은 아바타들이 어디에 위치하는지의 감각을 제공하도록 조정될 뿐만 아니라, 특정 실시예들에서, 오디오 스트림은 사적인 또는 준사적인(semi-private) 볼륨 영역들을 제공하도록 조정될 수 있다. 이러한 방식으로, 가상 환경은 사용자들이 사적인 대화를 나눌 수 있게 한다. 또한, 이는 사용자들이 서로 어울릴 수 있게 하고, 종래의 화상 회의 소프트웨어에서는 가능하지 않은 개별적이고 부차적인 대화를 할 수 있게 한다. 이것은, 예를 들어, 도 7과 관련하여 예시된다.Not only is the audio stream adjusted to provide a sense of where the avatars are located, but in certain embodiments, the audio stream can be adjusted to provide private or semi-private volume regions. In this way, virtual environments allow users to have private conversations. It also allows users to mingle with each other and have individual, side conversations that are not possible with conventional videoconferencing software. This is illustrated, for example, with respect to FIG. 7 .
도 7은 화상 회의 동안 가상 환경에서 상이한 볼륨 영역들을 제공하기 위해 상대적인 볼륨을 조정하기 위한 방법(700)을 예시하는 플로차트이다.7 is a flowchart illustrating a
위에서 설명된 바와 같이, 서버는 클라이언트 디바이스들에게 사운드 또는 볼륨 영역들의 사양을 제공할 수 있다. 가상 환경은 상이한 볼륨 영역들로 분할될 수 있다. 단계(702)에서, 디바이스는 각자의 아바타들 및 가상 카메라가 어느 사운드 영역들에 위치하는지를 결정한다.As described above, the server may provide the client devices with a specification of sound or volume fields. A virtual environment can be partitioned into different volume areas. In
예를 들어, 도 8a 및 도 8b는 화상 회의 동안 가상 환경에서의 상이한 볼륨 영역들을 예시하는 다이어그램들이다. 도 8a는 아바타(806)를 제어하는 사용자와 가상 카메라를 제어하는 사용자 사이의 준사적이거나 부차적인 대화를 가능하게 하는 볼륨 영역(802)을 갖는 다이어그램(800)을 예시한다. 이러한 방식으로, 회의 테이블(810) 주위에 있는 사용자들은 방에 있는 다른 사람들을 방해하지 않고 대화를 나눌 수 있다. 가상 카메라에서의 아바타(806)를 제어하는 사용자로부터의 사운드는 가상 카메라가 볼륨 영역(802)에서 빠져나갈 때 떨어질 수 있지만 완전히 그러한 것은 아니다. 이것은 지나던 사람이 원하는 경우 대화에 합류할 수 있게 한다.For example, FIGS. 8A and 8B are diagrams illustrating different volume areas in a virtual environment during a videoconference. 8A illustrates a diagram 800 with a
인터페이스(800)는 아래에서 설명될 버튼들(804, 806, 및 808)을 또한 포함한다.
도 8b는 아바타(808)를 제어하는 사용자와 가상 카메라를 제어하는 사용자 사이의 사적인 대화를 가능하게 하는 볼륨 영역(804)을 갖는 다이어그램(800)을 예시한다. 일단 볼륨 영역(804) 내부에 들어가면, 아바타(808)를 제어하는 사용자 및 가상 카메라를 제어하는 사용자로부터의 오디오는 볼륨 영역(804) 내부에 있는 사람들에게만 출력될 수 있다. 해당 사용자들로부터의 오디오가 회의 내의 다른 사용자들에게 전혀 재생되지 않기 때문에, 해당 사용자들의 오디오 스트림들이 다른 사용자 디바이스들에게도 전혀 전송되지 않을 수 있다.8B illustrates a diagram 800 with a
볼륨 공간들은 도 9a 및 도 9b에 예시된 바와 같이 계층적일 수 있다. 도 9b는 계층구조로 배열된 상이한 볼륨 영역들을 갖는 레이아웃을 도시하는 다이어그램(930)이다. 볼륨 영역들(934 및 935)은 볼륨 영역(933) 내에 있고 볼륨 영역들(933 및 932)은 볼륨 영역(931) 내에 있다. 이러한 볼륨 영역들은, 다이어그램(900) 및 도 9a에 예시된 바와 같이, 계층적 트리로 표현된다.Volume spaces may be hierarchical as illustrated in FIGS. 9A and 9B. FIG. 9B is a diagram 930 illustrating a layout with different volume areas arranged in a hierarchical structure.
다이어그램(900)에서, 노드(901)는 볼륨 영역(931)을 나타내고 트리의 루트이다. 노드들(902 및 903)은 노드(901)의 자식들이며, 볼륨 영역들(932 및 933)을 나타낸다. 노드들(904 및 906)은 노드(903)의 자식들이며, 볼륨 영역들(934 및 935)을 나타낸다.In diagram 900,
영역(934)에 위치하는 사용자가 영역(932)에 위치하는 사용자의 말을 듣고자 하는 경우, 오디오 스트림은, 오디오 스트림을 각각 감쇠시키는, 다수의 상이한 가상 "벽들"을 통과해야 한다. 상세하게는, 사운드는 영역(932)의 벽, 영역(933)의 벽, 및 영역(934)의 벽을 통과해야 한다. 각각의 벽은 특정 인자에 의해 감쇠된다. 이 계산은 도 7에서의 단계들(704 및 706)과 관련하여 설명된다.If the user located in
단계(704)에서, 아바타들 사이에 어떤 다양한 사운드 영역들이 있는지를 결정하기 위해 계층구조가 순회된다. 이것은, 예를 들어, 도 9c에 예시되어 있다. 말소리(speaking voice)의 가상 영역에 대응하는 노드(이 경우에 노드(904))로부터 시작하여, 수신하는 사용자의 노드(이 경우에, 노드(902))로의 경로가 결정된다. 경로를 결정하기 위해, 노드에서 노드로 가는 링크들(952)이 결정된다. 이러한 방식으로, 아바타를 포함하는 영역과 가상 카메라를 포함하는 영역 사이의 영역 서브세트가 결정된다.At
단계(706)에서, 말하는 사용자로부터의 오디오 스트림이 영역 서브세트의 각자의 벽 투과 율들에 기초하여 감쇠된다. 각각의 각자의 벽 투과 율은 오디오 스트림이 얼마나 감쇠되는지를 지정한다.In
추가적으로 또는 대안적으로, 그 경우에 상이한 영역들은 상이한 롤 오프 율들을 가지며, 각자의 롤 오프 율들에 기초하여 방법(600)에 도시된 거리 기반 계산이 개별 영역들에 적용될 수 있다. 이러한 방식으로, 가상 환경의 상이한 영역들은 상이한 레이트들로 사운드를 투사한다. 도 5와 관련하여 위에서 설명된 바와 같은 방법에서 결정되는 오디오 이득들이 그에 따라 좌측 및 우측 오디오를 결정하기 위해 오디오 스트림에 적용될 수 있다. 이러한 방식으로, 포괄적인 오디오 경험을 제공하기 위해 벽 투과 율, 롤 오프 율, 및 사운드의 방향 감각을 제공하기 위한 좌우 조정 모두가 함께 적용될 수 있다.Additionally or alternatively, in that case different areas have different roll off rates, and the distance-based calculation shown in
상이한 오디오 영역들은 상이한 기능을 가질 수 있다. 예를 들어, 볼륨 영역은 연단 영역일 수 있다. 사용자가 연단 영역에 위치하는 경우, 도 5 또는 도 7과 관련하여 설명되는 감쇠의 일부 또는 전부가 발생하지 않을 수 있다. 예를 들어, 롤 오프 율 또는 벽 투과 율로 인해 감쇠가 발생하지 않을 수 있다. 일부 실시예들에서, 상대적인 좌우 오디오는 여전히 방향 감각을 제공하도록 조정될 수 있다.Different audio regions may have different functions. For example, the volume area may be a podium area. When the user is located in the podium area, some or all of the attenuation described with respect to FIG. 5 or FIG. 7 may not occur. Attenuation may not occur, for example, due to roll off ratio or wall permeability. In some embodiments, the relative left and right audio can still be adjusted to provide a sense of direction.
예시 목적으로, 도 5 및 도 7과 관련하여 설명되는 방법들은 대응하는 아바타를 갖는 사용자로부터의 오디오 스트림들을 설명하고 있다. 그렇지만, 아바타들 이외의 다른 사운드 소스들에 동일한 방법들이 적용될 수 있다. 예를 들어, 가상 환경은 스피커들의 3차원 모델들을 가질 수 있다. 프레젠테이션으로 인해 또는 단순히 배경 음악을 제공하기 위해, 위에서 설명된 아바타 모델들과 동일한 방식으로 스피커들로부터 사운드가 방출될 수 있다.For illustrative purposes, the methods described with respect to FIGS. 5 and 7 describe audio streams from a user with a corresponding avatar. However, the same methods can be applied to other sound sources than avatars. For example, a virtual environment may have three-dimensional models of speakers. Sound may be emitted from the speakers in the same way as the avatar models described above, either due to a presentation or simply to provide background music.
위에서 언급된 바와 같이, 오디오를 완전히 격리시키기 위해 벽 투과 율이 사용될 수 있다. 일 실시예에서, 이것은 가상 사무실을 생성하는 데 사용될 수 있다. 일 예에서, 각각의 사용자는 가상 사무실에서 지속적으로 켜져 있고 가상 사무실에 로그인되어 있는 회의 애플리케이션을 디스플레이하는 모니터를 자신의 물리적(아마도 집) 사무실에 가질 수 있다. 사용자가 사무실에 있는지 또는 방해받지 않아야 하는지를 사용자가 표시할 수 있게 하는 기능이 있을 수 있다. 방해 금지 표시기가 꺼져 있는 경우, 동료 또는 관리자는 가상 공간 내에 들어와 실제 사무실에서와 같이 노크하거나 걸어 들어갈 수 있다. 방문자는 직원이 사무실에 없을 경우 메모를 남길 수 있다. 직원이 돌아올 때, 직원은 방문자가 남긴 메모를 읽을 수 있다. 가상 사무실은 사용자를 위한 메시지들을 디스플레이하는 화이트보드 및/또는 인터페이스를 가질 수 있다. 메시지들은 이메일일 수 있고/있거나 캘리포니아주 샌프란시스코의 Slack Technologies, Inc.로부터 이용 가능한 SLACK 애플리케이션과 같은 메시징 애플리케이션으로부터의 것일 수 있다.As mentioned above, wall transmittance can be used to completely isolate the audio. In one embodiment, this may be used to create a virtual office. In one example, each user may have a monitor in their physical (possibly home) office that displays a conferencing application that is constantly on in the virtual office and logged into the virtual office. There may be a feature that allows the user to indicate whether the user is in the office or should not be disturbed. When the do not disturb indicator is off, co-workers or managers can enter the virtual space and knock or walk in, just like in a real office. Visitors can leave notes when staff are not in the office. When the staff returns, they can read the notes left by the visitor. The virtual office may have a whiteboard and/or interface displaying messages for the user. The messages may be email and/or may be from a messaging application such as the SLACK application available from Slack Technologies, Inc. of San Francisco, CA.
사용자들은 자신의 가상 사무실들을 맞춤화하거나 개인화할 수 있다. 예를 들어, 사용자들은 포스터들 또는 다른 벽 장식품들의 모델들을 세울 수 있다. 사용자들은 책상 또는, 식물 재배와 같은, 장식용 장식품의 모델들 또는 배향을 변경할 수 있다. 사용자들은 조명을 바꾸거나 창 밖을 볼 수 있다.Users can customize or personalize their virtual offices. For example, users can erect models of posters or other wall ornaments. Users can change the models or orientation of a desk or decorative ornament, such as a planter. Users can change the lighting or look out the window.
다시 도 8a로 돌아가서, 인터페이스(800)는 다양한 버튼들(804, 806, 및 808)을 포함한다. 사용자가 버튼(804)을 누를 때, 도 5 및 도 7에서의 방법들과 관련하여 위에서 설명된 감쇠가 발생하지 않을 수 있거나, 보다 적은 양으로만 발생할 수 있다. 그 상황에서, 사용자의 음성이 다른 사용자들에게 균일하게 출력되어, 사용자가 회의의 모든 참가자들에게 말을 할 수 있게 한다. 아래에서 설명될 것인 바와 같이, 사용자 비디오가 또한 가상 환경 내의 프레젠테이션 화면에도 출력될 수 있다. 사용자가 버튼(806)을 누를 때, 스피커 모드가 인에이블된다. 그 경우에, 배경 음악을 재생하는 것과 같이, 가상 환경 내의 사운드 소스들로부터 오디오가 출력된다. 사용자가 버튼(808)을 누를 때, 화면 공유 모드가 인에이블될 수 있어, 사용자가 다른 사용자들과 자신의 디바이스 상의 화면 또는 창의 콘텐츠를 공유할 수 있게 한다. 콘텐츠는 프레젠테이션 모델 상에 제시될 수 있다. 이것도 아래에서 설명될 것이다.Returning to FIG. 8A ,
3차원 환경에서 프레젠테이션하기Presenting in a 3D Environment
도 10은 3차원 가상 환경에서의 3차원 모델(1004)과의 인터페이스(1000)를 예시한다. 도 1과 관련하여 위에서 설명된 바와 같이, 인터페이스(1000)는 가상 환경 주위를 내비게이션할 수 있는 사용자에게 디스플레이될 수 있다. 인터페이스(1000)에 예시된 바와 같이, 가상 환경은 아바타(1004) 및 3차원 모델(1002)을 포함한다.10 illustrates an
3차원 모델(1002)은 가상 공간 내부에 배치되는 제품의 3D 모델이다. 사람들은 모델을 관찰하기 위해 이 가상 공간에 합류할 수 있고, 그 주위를 걸을 수 있다. 제품은 경험을 향상시키기 위해 로컬화된 사운드를 가질 수 있다.The
보다 상세하게는, 가상 공간에 있는 발표자가 3D 모델을 보여주기를 원할 때, 발표자는 인터페이스로부터 원하는 모델을 선택한다. 이것은 세부 사항들(모델의 이름 및 경로를 포함함)을 업데이트하라는 메시지를 서버에게 송신한다. 이것은 자동으로 클라이언트들에게 통신될 것이다. 이러한 방식으로, 3차원 모델은 비디오 스트림을 제시하는 것과 동시에 디스플레이하기 위해 렌더링될 수 있다. 사용자들은 제품의 3차원 모델 주위에서 가상 카메라를 내비게이션할 수 있다.More specifically, when a presenter in the virtual space wants to show a 3D model, the presenter selects the desired model from the interface. This sends a message to the server to update the details (including the model's name and path). This will be automatically communicated to clients. In this way, the three-dimensional model can be rendered for display concurrently with presenting the video stream. Users can navigate a virtual camera around a three-dimensional model of a product.
상이한 예들에서, 객체는 제품 시연일 수 있거나, 제품에 대한 광고일 수 있다.In different examples, the object may be a product demonstration or may be an advertisement for a product.
도 11은 화상 회의에 사용되는 3차원 가상 환경에서의 프레젠테이션 화면 공유를 갖는 인터페이스(1100)를 예시한다. 도 1과 관련하여 위에서 설명된 바와 같이, 인터페이스(1100)는 가상 환경 주위를 내비게이션할 수 있는 사용자에게 디스플레이될 수 있다. 인터페이스(1100)에 예시된 바와 같이, 가상 환경은 아바타(1104) 및 프레젠테이션 화면(1106)을 포함한다.11 illustrates an
이 실시예에서, 회의의 참가자의 디바이스로부터의 프레젠테이션 스트림이 수신된다. 프레젠테이션 스트림은 프레젠테이션 화면(1106)의 3차원 모델 상으로 텍스처 매핑된다. 일 실시예에서, 프레젠테이션 스트림은 사용자의 디바이스 상의 카메라로부터의 비디오 스트림일 수 있다. 다른 실시예에서, 프레젠테이션 스트림은, 모니터 또는 창이 공유되는, 사용자의 디바이스로부터의 화면 공유일 수 있다. 화면 공유를 통해 또는 다른 방식으로, 프레젠테이션 비디오 및 오디오 스트림은 또한 외부 소스, 예를 들어, 이벤트의 라이브 스트림으로부터의 것일 수 있다. 사용자가 발표자 모드를 인에이블시킬 때, 사용자가 사용하기를 원하는 화면의 이름으로 태깅된 사용자의 프레젠테이션 스트림(및 오디오 스트림)이 서버에 게시된다. 다른 클라이언트들은 새로운 스트림이 이용 가능하다는 통지를 받는다.In this embodiment, a presentation stream from a device of a participant in a conference is received. The presentation stream is texture mapped onto the 3D model of the
발표자는 또한 청중 구성원들의 위치와 배향을 제어할 수 있다. 예를 들어, 발표자는 프레젠테이션 화면을 향하도록 배치되고 배향되도록 회의의 모든 다른 참가자들을 재배열하도록 선택하는 옵션을 가질 수 있다.The presenter can also control the position and orientation of audience members. For example, the presenter may have the option of choosing to rearrange all other participants in the conference so that they are positioned and oriented towards the presentation screen.
오디오 스트림은 프레젠테이션 스트림과 동기하여 제1 참가자의 디바이스의 마이크로폰으로부터 캡처된다. 사용자의 마이크로폰으로부터의 오디오 스트림은 프레젠테이션 화면(1106)으로부터 나오는 것처럼 다른 사용자들에게 들릴 수 있다. 이러한 방식으로, 프레젠테이션 화면(1106)은 위에서 설명된 바와 같은 사운드 소스일 수 있다. 사용자의 오디오 스트림이 프레젠테이션 화면(1106)으로부터 투사되기 때문에, 사용자의 아바타로부터 오는 것이 억제될 수 있다. 이러한 방식으로, 오디오 스트림은 3차원 가상 공간 내의 화면(1106) 상에 프레젠테이션 스트림을 디스플레이하는 것과 동기하여 재생되도록 출력된다.The audio stream is captured from the microphone of the first participant's device in synchronization with the presentation stream. The audio stream from the user's microphone can be heard by other users as coming from the
사용자들 사이의 거리에 기초한 대역폭 할당Bandwidth allocation based on distance between users
도 12는 3차원 가상 환경 내에서의 아바타들의 상대적인 위치에 기초하여 이용 가능한 대역폭을 배분하기 위한 방법(1200)을 예시하는 플로차트이다.12 is a flowchart illustrating a
단계(1202)에서, 가상 회의 공간에서의 제1 사용자와 제2 사용자 사이의 거리가 결정된다. 거리는 3차원 공간에서 수평 평면에서의 그들 사이의 거리일 수 있다.In
단계(1204)에서, 보다 가까운 사용자들의 비디오 스트림들이 보다 멀리 있는 사용자들로부터의 비디오 스트림들보다 우선순위를 부여받도록 수신된 비디오 스트림들에 우선순위가 부여된다. 우선순위 값은 도 13에 예시된 바와 같이 결정될 수 있다.In
도 13은 y 축 상의 우선순위(1306) 및 거리(1302)를 보여주는 차트(1300)를 도시한다. 라인(1306)에 의해 예시된 바와 같이, 기준 거리(1304)에 도달할 때까지 우선순위 상태가 일정한 레벨을 유지한다. 기준 거리에 도달한 후에, 우선순위가 떨어지기 시작한다.13 shows a
단계(1206)에서, 사용자 디바이스에 이용 가능한 대역폭이 다양한 비디오 스트림들 간에 배분된다. 이것은 단계(1204)에서 결정되는 우선순위 값들에 기초하여 수행될 수 있다. 예를 들어, 우선순위들은 모두의 합이 1이 되도록 비례적으로 조정될 수 있다. 불충분한 대역폭이 이용 가능한 임의의 비디오들의 경우, 상대적인 우선순위가 0이 될 수 있다. 그러면, 나머지 비디오 스트림들에 대해 우선순위들이 또다시 조정된다. 대역폭은 이러한 상대적인 우선순위 값들에 기초하여 할당된다. 추가적으로, 오디오 스트림들을 위한 대역폭이 예약될 수 있다. 이것은 도 14에 예시되어 있다.At
도 14는 대역폭(1406)을 나타내는 y 축 및 상대적인 우선순위를 나타내는 x 축을 갖는 차트(1400)를 예시한다. 비디오가 유효한 최소 대역폭(1406)을 할당받은 후에, 비디오 스트림에 할당되는 대역폭(1406)은 그의 상대적인 우선순위에 비례하여 증가한다.14 illustrates a
일단 할당된 대역폭이 결정되면, 클라이언트는 비디오를 해당 비디오에 대해 선택되고 할당된 대역폭/비트레이트/프레임 레이트/해상도로 서버에 요청할 수 있다. 이것은 지정된 대역폭으로 비디오를 스트리밍하기 시작하기 위해 클라이언트와 서버 사이의 협상 프로세스를 시작할 수 있다. 이러한 방식으로, 이용 가능한 비디오 및 오디오 대역폭은 모든 사용자들에 걸쳐 공정하게 분배되며, 여기서 두 배의 우선순위를 갖는 사용자들은 두 배의 대역폭을 받을 것이다.Once the allocated bandwidth is determined, the client can request video from the server at the selected and allocated bandwidth/bitrate/frame rate/resolution for that video. This may initiate a negotiation process between the client and server to start streaming video with the specified bandwidth. In this way, the available video and audio bandwidth is divided fairly among all users, where users with twice the priority will receive twice the bandwidth.
하나의 가능한 구현에서, 사이멀캐스트(simulcast)를 사용하여, 모든 클라이언트들이, 상이한 비트레이트들 및 해상도들로, 다수의 비디오 스트림들을 서버에게 송신한다. 다른 클라이언트들은 그러면 이러한 스트림들 중 어느 것에 관심이 있고 수신하기를 원하는지를 서버에 알려 줄 수 있다.In one possible implementation, all clients transmit multiple video streams to the server, at different bitrates and resolutions, using simulcast. Other clients can then tell the server which of these streams they are interested in and want to receive.
단계(1208)에서, 가상 회의 공간에서 제1 사용자와 제2 사용자 사이에서 이용 가능한 대역폭이 해당 거리에서의 비디오의 디스플레이를 비효과적이게 하는지 여부가 결정된다. 이 결정은 클라이언트 또는 서버에 의해 수행될 수 있다. 클라이언트에 의한 경우, 클라이언트는 클라이언트로의 비디오의 전송을 중단하라는 서버에 대한 메시지를 송신한다. 비효과적인 경우, 제2 사용자의 디바이스로의 비디오 스트림의 전송이 중단되고, 제2 사용자의 디바이스는 비디오 스트림을 정지 이미지로 대체하도록 통지받는다. 정지 이미지는 단순히 수신된 마지막 비디오 프레임들(또는 수신된 마지막 비디오 프레임들 중 하나)일 수 있다.In
일 실시예에서, 오디오에 대해 유사한 프로세스가 실행될 수 있어, 오디오에 대해 예약된 부분의 크기가 주어진 경우 품질을 감소시킬 수 있다. 다른 실시예에서, 각각의 오디오 스트림은 일관된 대역폭을 부여받는다.In one embodiment, a similar process can be performed for audio, reducing the quality given the size of the portion reserved for audio. In another embodiment, each audio stream is given a consistent bandwidth.
이러한 방식으로, 실시예들은 모든 사용자들에 대해 성능을 증가시키고, 서버의 경우 보다 멀리 떨어져 있고/있거나 덜 중요한 사용자들에 대해 비디오 및 오디오 스트림 품질이 감소될 수 있다. 충분한 대역폭 버짓이 이용 가능할 때 이것은 수행되지 않는다. 감소는 비트레이트 및 해상도 양쪽 모두에서 수행된다. 이것은 비디오 품질을 개선시키는데, 그 이유는 해당 사용자에 이용 가능한 대역폭이 인코더에 의해 보다 효율적으로 활용될 수 있기 때문이다.In this way, the embodiments increase performance for all users, and video and audio stream quality may be reduced for users who are more distant and/or less important than in the case of the server. This is not done when sufficient bandwidth budget is available. Reduction is done in both bitrate and resolution. This improves video quality because the bandwidth available to that user can be utilized more efficiently by the encoder.
이와는 별개로, 비디오 해상도가 거리에 기초하여 축소되며, 두 배 더 멀리 떨어져 있는 사용자들은 절반의 해상도를 갖는다. 이러한 방식으로, 화면 해상도의 제한이 주어진 경우, 불필요한 해상도는 다운로드되지 않을 수 있다. 따라서, 대역폭이 보존된다.Separately, video resolution is scaled down based on distance, and users twice as far away have half the resolution. In this way, given the limitations of screen resolution, unnecessary resolutions may not be downloaded. Thus, bandwidth is conserved.
도 15는 가상 환경 내에서 화상 회의를 제공하기 위해 사용되는 디바이스들의 컴포넌트들을 예시하는 시스템(1500)의 다이어그램이다. 다양한 실시예들에서, 시스템(1500)은 위에서 설명된 방법들에 따라 작동할 수 있다.15 is a diagram of a
디바이스(306A)는 사용자 컴퓨팅 디바이스이다. 디바이스(306A)는 데스크톱 또는 랩톱 컴퓨터, 스마트폰, 태블릿, 또는 웨어러블(예를 들면, 시계 또는 헤드 마운티드 디바이스)일 수 있다. 디바이스(306A)는 마이크로폰(1502), 카메라(1504), 스테레오 스피커(1506), 입력 디바이스(1512)를 포함한다. 도시되어 있지 않지만, 디바이스(306A)는 프로세서 및 영구적, 비일시적 및 휘발성 메모리를 또한 포함한다. 프로세서들은 하나 이상의 중앙 처리 유닛, 그래픽 처리 유닛 또는 이들의 임의의 조합을 포함할 수 있다.
마이크로폰(1502)은 사운드를 전기 신호로 변환한다. 마이크로폰(1502)은 디바이스(306A)의 사용자의 음성을 캡처하도록 배치된다. 상이한 예들에서, 마이크로폰(1502)은 콘덴서 마이크로폰, 일렉트릿 마이크로폰, 이동 코일 마이크로폰, 리본 마이크로폰, 탄소 마이크로폰, 압전 마이크로폰, 광섬유 마이크로폰, 레이저 마이크로폰, 물 마이크로폰, 또는 MEMS 마이크로폰일 수 있다.A
카메라(1504)는 일반적으로 하나 이상의 렌즈를 통해 광을 캡처하는 것에 의해 이미지 데이터를 캡처한다. 카메라(1504)는 디바이스(306A)의 사용자의 사진 이미지들을 캡처하도록 배치된다. 카메라(1504)는 이미지 센서(도시되지 않음)를 포함한다. 이미지 센서는, 예를 들어, CCD(charge coupled device) 센서 또는 CMOS(complementary metal oxide semiconductor) 센서일 수 있다. 이미지 센서는 광을 검출하고 전기 신호들로 변환하는 하나 이상의 광검출기를 포함할 수 있다. 유사한 시간 프레임에서 함께 캡처되는 이러한 전기 신호들은 정지 사진 이미지를 구성한다. 일정한 간격으로 캡처되는 일련의 정지 사진 이미지들은 함께 비디오를 구성한다. 이러한 방식으로, 카메라(1504)는 이미지들 및 비디오들을 캡처한다.Camera 1504 captures image data, typically by capturing light through one or more lenses. Camera 1504 is positioned to capture photographic images of a user of
스테레오 스피커(1506)는 전기 오디오 신호를 대응하는 좌우 사운드로 변환하는 디바이스이다. 스테레오 스피커(1506)는 오디오 프로세서(1520)(아래)에 의해 생성되는 좌측 오디오 스트림과 우측 오디오 스트림을 스테레오로 디바이스(306A)의 사용자에게 재생되도록 출력한다. 스테레오 스피커(1506)는 사용자의 좌측 귀와 우측 귀에 직접적으로 사운드를 재생하도록 설계된 주변 스피커들 및 헤드폰들 양쪽 모두를 포함한다. 예시적인 스피커들은 가동 철편(moving-iron) 라우드스피커, 압전 스피커, 정자기 라우드스피커, 정전기 라우드스피커, 리본 및 평면 자기 라우드스피커, 굽힘파 라우드스피커, 평면 패널 라우드스피커, 하일 에어 모션 트랜스듀서(heil air motion transducer), 투명 이온 전도 스피커, 플라즈마 아크 스피커, 열음향 스피커, 로터리 우퍼, 가동 코일, 정전기, 일렉트릿, 평면 자기, 및 균형 전기자(balanced armature)를 포함한다.The
네트워크 인터페이스(1508)는 컴퓨터 네트워크에서 2 개의 장비 또는 프로토콜 계층 사이의 소프트웨어 또는 하드웨어 인터페이스이다. 네트워크 인터페이스(1508)는 회의의 각자의 참가자들에 대한 서버(302)로부터의 비디오 스트림을 수신한다. 비디오 스트림은 화상 회의의 다른 참가자의 디바이스 상의 카메라로부터 캡처된다. 네트워크 인터페이스(1508)는 또한 서버(302)로부터 3차원 가상 공간 및 그 안의 임의의 모델들을 지정하는 데이터를 수신한다. 다른 참가자들 각각에 대해, 네트워크 인터페이스(1508)는 3차원 가상 공간에서의 위치 및 방향을 수신한다. 위치 및 방향은 각자의 다른 참가자들 각각에 의해 입력된다.
네트워크 인터페이스(1508)는 또한 데이터를 서버(302)에게 전송한다. 이는 렌더러(1518)에 의해 사용되는 디바이스(306A)의 사용자의 가상 카메라의 위치를 전송하고, 카메라(1504)와 마이크로폰(1502)으로부터의 비디오 및 오디오 스트림들을 전송한다.
디스플레이(1510)는 시각적 또는 촉각적 형태(후자는, 예를 들어, 시각 장애인을 위한 촉각 전자 디스플레이들에서 사용됨)로 전자 정보를 제시하기 위한 출력 디바이스이다. 디스플레이(1510)는 텔레비전 세트, 컴퓨터 모니터, 헤드 마운티드 디스플레이, 헤드업 디스플레이, 증강 현실 또는 가상 현실 헤드셋의 출력, 방송 참조 모니터(broadcast reference monitor), 의료 모니터, (모바일 디바이스를 위한) 모바일 디스플레이, (스마트폰을 위한) 스마트폰 디스플레이일 수 있다. 정보를 제시하기 위해, 디스플레이(1510)는 전자발광(ELD) 디스플레이, 액정 디스플레이(LCD), 발광 다이오드(LED) 백라이트 LCD, 박막 트랜지스터(TFT) LCD, 발광 다이오드(LED) 디스플레이, OLED 디스플레이, AMOLED 디스플레이, 플라즈마(PDP) 디스플레이, 양자점(QLED) 디스플레이를 포함할 수 있다.
입력 디바이스(1512)는 컴퓨터 또는 정보 기기와 같은 정보 처리 시스템에 데이터 및 제어 신호들을 제공하는 데 사용되는 장비이다. 입력 디바이스(1512)는 사용자가 렌더러(1518)에 의해 사용되는 가상 카메라의 새로운 원하는 위치를 입력할 수 있게 함으로써, 3차원 환경에서 내비게이션을 가능하게 한다. 입력 디바이스의 예들은 키보드, 마우스, 스캐너, 조이스틱, 및 터치스크린을 포함한다.
웹 브라우저(308A) 및 웹 애플리케이션(310A)은 도 3과 관련하여 위에서 설명되었다. 웹 애플리케이션(310A)은 화면 캡처기(1514), 텍스처 매퍼(1516), 렌더러(1518), 및 오디오 프로세서(1520)를 포함한다.
화면 캡처기(1514)는 프레젠테이션 스트림, 상세하게는 화면 공유를 캡처한다. 화면 캡처기(1514)는 웹 브라우저(308A)에 의해 이용가능하게 되는 API와 상호작용할 수 있다. API로부터 이용 가능한 함수를 호출하는 것에 의해, 화면 캡처기(1514)는 웹 브라우저(308A)로 하여금 사용자가 어느 창 또는 화면을 공유하기를 원하는지를 사용자에게 질문하게 할 수 있다. 그 질의에 대한 답변에 기초하여, 웹 브라우저(308A)는 화면 공유에 대응하는 비디오 스트림을 화면 캡처기(1514)에 반환할 수 있고, 화면 캡처기(1514)는 서버(302) 및 궁극적으로 다른 참가자들의 디바이스들에게 전송하기 위해 이를 네트워크 인터페이스(1508)에 전달한다.The
텍스처 매퍼(1516)는 비디오 스트림을 아바타에 대응하는 3차원 모델 상으로 텍스처 매핑한다. 텍스처 매퍼(1516)는 비디오로부터의 각자의 프레임들을 아바타에 텍스처 매핑할 수 있다. 추가적으로, 텍스처 매퍼(1516)는 프레젠테이션 스트림을 프레젠테이션 화면의 3차원 모델에 텍스처 매핑할 수 있다.A
렌더러(1518)는, 디바이스(306A)의 사용자의 가상 카메라의 시점으로부터, 디스플레이(1510)에 출력하기 위해 수신된 대응하는 위치에 위치하고 그 방향으로 배향되는 각자의 참가자들에 대한 아바타들의 텍스처 매핑된 3차원 모델들을 포함하는 3차원 가상 공간을 렌더링한다. 렌더러(1518)는 또한, 예를 들어, 프레젠테이션 화면을 포함한 임의의 다른 3차원 모델들을 렌더링한다.Renderer 1518 renders, from the point of view of the user's virtual camera of
오디오 프로세서(1520)는 제2 위치가 3차원 가상 공간에서 제1 위치를 기준으로 어디에 있는지의 감각을 제공하도록 좌측 오디오 스트림 및 우측 오디오 스트림을 결정하기 위해 수신된 오디오 스트림의 볼륨을 조정한다. 일 실시예에서, 오디오 프로세서(1520)는 제2 위치와 제1 위치 사이의 거리에 기초하여 볼륨을 조정한다. 다른 실시예에서, 오디오 프로세서(1520)는 제2 위치로부터 제1 위치로의 방향에 기초하여 볼륨을 조절한다. 또 다른 실시예에서, 오디오 프로세서(1520)는 3차원 가상 공간 내의 수평 평면 상에서 제1 위치를 기준으로 제2 위치의 방향에 기초하여 볼륨을 조정한다. 또 다른 실시예에서, 오디오 프로세서(1520)는 가상 카메라가 3차원 가상 공간에서 향하고 있는 방향에 기초하여, 아바타가 가상 카메라의 좌측에 위치할 때는 좌측 오디오 스트림이 더 높은 볼륨을 갖는 경향이 있고 아바타가 가상 카메라의 우측에 위치할 때는 우측 오디오 스트림이 더 높은 볼륨을 가지는 경향이 있도록, 볼륨을 조정한다. 마지막으로, 또 다른 실시예에서, 오디오 프로세서(1520)는 가상 카메라가 향하고 있는 방향과 아바타가 향하고 있는 방향 사이의 각도에 기초하여, 이 각도가 아바타가 향하고 있는 곳에 더 수직인 것이 좌측 오디오 스트림과 우측 오디오 스트림 사이의 더 큰 볼륨 차이를 갖는 경향이 있도록, 볼륨을 조정한다.
오디오 프로세서(1520)는 또한 가상 카메라가 위치하는 영역을 기준으로 스피커가 위치하는 영역에 기초하여 오디오 스트림의 볼륨을 조정할 수 있다. 이 실시예에서, 3차원 가상 공간은 복수의 영역들로 분할된다. 이러한 영역들은 계층적일 수 있다. 스피커와 가상 카메라가 상이한 영역들에 위치할 때, 말하는 오디오 스트림의 볼륨을 감쇠시키기 위해 벽 투과 율이 적용될 수 있다.The
서버(302)는 참석 통지기(1522), 스트림 조정기(1524), 및 스트림 포워더(1526)를 포함한다.The server 302 includes an attendance notifier 1522 , a stream coordinator 1524 , and a stream forwarder 1526 .
참석 통지기(1522)는 참가자들이 회의에 합류하고 회의에서 나갈 때 회의 참가자들에게 통지한다. 새로운 참가자가 회의에 합류할 때, 참석 통지기(1522)는 새로운 참가자가 합류했다는 것을 나타내는 메시지를 회의의 다른 참가자들의 디바이스들에게 송신한다. 참석 통지기(1522)는 비디오, 오디오, 및 위치/방향 정보를 다른 참가자들에게 전달하기 시작하도록 스트림 포워더(1526)에 시그널링한다.Attendance notifier 1522 notifies conference participants when they join and leave the conference. When a new participant joins the conference, the attendance notifier 1522 sends a message to the devices of the other participants in the conference indicating that the new participant has joined. Attendance notifier 1522 signals stream forwarder 1526 to begin passing video, audio, and location/direction information to other participants.
스트림 조정기(1524)는 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신한다. 스트림 조정기(1524)는 가상 회의를 위한 데이터를 제2 사용자에게 전송하기 위해 이용 가능한 대역폭을 결정한다. 이는 가상 회의 공간에서의 제1 사용자와 제2 사용자 사이의 거리를 결정한다. 그리고, 이는 상대적인 거리에 기초하여 제1 비디오 스트림과 제2 비디오 스트림 간에 이용 가능한 대역폭을 배분한다. 이러한 방식으로, 스트림 조정기(1524)는 보다 멀리 있는 사용자들로부터의 비디오 스트림들보다 보다 가까운 사용자들의 비디오 스트림들에 우선순위를 부여한다. 추가적으로 또는 대안적으로, 스트림 조정기(1524)는, 아마도 웹 애플리케이션(310A)의 일부로서, 디바이스(306A) 상에 위치할 수 있다.Stream coordinator 1524 receives a video stream captured from a camera on a first user's device. Stream coordinator 1524 determines available bandwidth for transmitting data for the virtual conference to the second user. This determines the distance between the first user and the second user in the virtual meeting space. And, it distributes the available bandwidth between the first video stream and the second video stream based on the relative distance. In this way, the stream coordinator 1524 prioritizes video streams of closer users over video streams from more distant users. Additionally or alternatively, stream coordinator 1524 may be located on
스트림 포워더(1526)는 수신되는 위치/방향 정보, 비디오, 오디오, 및 화면 공유 화면들을 (스트림 조정기(1524)에 의해 이루어진 조정들과 함께) 브로드캐스트한다. 스트림 포워더(1526)는 회의 애플리케이션(310A)으로부터의 요청에 응답하여 정보를 디바이스(306A)에게 송신할 수 있다. 회의 애플리케이션(310A)은 참석 통지기(1522)로부터의 통지에 응답하여 해당 요청을 송신할 수 있다.Stream forwarder 1526 broadcasts (with adjustments made by stream coordinator 1524) the received position/orientation information, video, audio, and screen sharing screens. Stream forwarder 1526 may transmit information to
네트워크 인터페이스(1528)는 컴퓨터 네트워크에서 2 개의 장비 또는 프로토콜 계층 사이의 소프트웨어 또는 하드웨어 인터페이스이다. 네트워크 인터페이스(1528)는 모델 정보를 다양한 참가자들의 디바이스들에게 전송한다. 네트워크 인터페이스(1528)는 다양한 참가자들로부터 비디오, 오디오, 및 화면 공유 화면들을 수신한다.
화면 캡처기(1514), 텍스처 매퍼(1516), 렌더러(1518), 오디오 프로세서(1520), 참석 통지기(1522), 스트림 조정기(1524), 및 스트림 포워더(1526)는 각각 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다.
"(a)," "(b)," "(i)," "(ii)" 등과 같은, 식별자들은 때때로 상이한 요소들 또는 단계들에 사용된다. 이러한 식별자들은 명확함을 위해 사용되며 반드시 요소들 또는 단계들의 순서를 지정하는 것은 아니다.Identifiers, such as "(a)," "(b)," "(i)," "(ii)", etc., are sometimes used for different elements or steps. These identifiers are used for clarity and do not necessarily specify a sequence of elements or steps.
본 발명은 지정된 기능들 및 그 관계들의 구현을 예시하는 기능 빌딩 블록들의 도움을 받아 위에서 설명되었다. 이러한 기능 빌딩 블록들의 경계들은 설명의 편의를 위해 본 명세서에서 임의로 정의되었다. 지정된 기능들 및 그 관계들이 적절하게 수행되는 한, 대안의 경계들이 정의될 수 있다.The invention has been described above with the aid of functional building blocks that illustrate the implementation of specified functions and their relationships. The boundaries of these functional building blocks have been arbitrarily defined herein for convenience of explanation. Alternate boundaries may be defined, as long as the specified functions and their relationships are properly performed.
다른 실시예들이 과도한 실험 없이 그리고 본 발명의 일반적인 개념을 벗어나지 않으면서, 당해 기술 분야의 지식을 적용하는 것에 의해, 특정 실시예들과 같은 다양한 응용들을 위해 용이하게 수정 및/또는 적응될 수 있도록, 특정 실시예들에 대한 전술한 설명은 따라서 본 발명의 일반적인 특성을 충분히 드러낼 것이다. 따라서, 그러한 적응 및 수정은 본 명세서에서 제시되는 교시 및 지침에 기초하여 개시된 실시예들의 균등물들의 의미 및 범위 내에 있는 것으로 의도된다. 본 명세서의 전문용어 또는 어구가 교시 및 지침을 바탕으로 통상의 기술자에 의해 해석될 수 있도록, 본 명세서에서의 어구 또는 전문용어가 설명을 위한 것이고 제한을 위한 것이 아님이 이해되어야 한다.that other embodiments may be readily modified and/or adapted for various applications, such as specific embodiments, by applying knowledge in the art, without undue experimentation and without departing from the general concept of the invention; The foregoing description of specific embodiments will thus fully reveal the general nature of the present invention. Accordingly, such adaptations and modifications are intended to be within the meaning and scope of equivalents of the disclosed embodiments based on the teaching and guidance presented herein. It should be understood that the terminology or phraseology in this specification is for descriptive purposes and not for limitation, so that terminology or phraseology in this specification can be interpreted by those skilled in the art based on the teachings and guidelines.
본 발명의 폭 및 범위가 위에서 설명된 예시적인 실시예들 중 어느 것에 의해서도 제한되어서는 안되고, 첨부된 청구항들 및 그들의 등가물들에 따라서만 한정되어야 한다.The breadth and scope of this invention should not be limited by any of the exemplary embodiments described above, but only in accordance with the appended claims and their equivalents.
Claims (146)
메모리에 결합되는 프로세서;
디스플레이 스크린;
(i) 3차원 가상 공간을 지정하는 데이터, (ii) 상기 3차원 가상 공간에서의 위치 및 방향 - 상기 위치 및 방향은 상기 제1 사용자에 의해 입력됨 -, 및 상기 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 - 을 수신하도록 구성된 네트워크 인터페이스;
상기 프로세서에서 구현되고, 서버로부터 웹 애플리케이션을 다운로드하고 상기 웹 애플리케이션을 실행하도록 구성된 웹 브라우저를 포함하며, 상기 웹 애플리케이션은:
상기 비디오 스트림을 아바타의 3차원 모델 상으로 텍스처 매핑하도록 구성된 텍스처 매퍼, 및
렌더러를 포함하고, 상기 렌더러는:
(i) 상기 제2 사용자의 가상 카메라의 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하고,
(ii) 상기 가상 카메라의 상기 시점을 변경하고자 하는 요망을 나타내는 상기 제2 사용자로부터의 입력이 수신될 때, 상기 제2 사용자의 상기 가상 카메라의 상기 시점을 변경하며,
(iii) 상기 가상 카메라의 상기 변경된 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 재렌더링하도록 구성되는, 시스템.A system for enabling videoconferencing between a first user and a second user, comprising:
a processor coupled to the memory;
display screen;
(i) data specifying a three-dimensional virtual space, (ii) a position and direction in the three-dimensional virtual space, the position and direction being input by the first user, and a camera on the first user's device. a network interface configured to receive a video stream captured from the camera, wherein the camera is arranged to capture photographic images of the first user;
and a web browser implemented in the processor and configured to download a web application from a server and execute the web application, wherein the web application:
a texture mapper configured to texture map the video stream onto a three-dimensional model of an avatar; and
A renderer, wherein the renderer:
(i) from the point of view of the second user's virtual camera, the three-dimensional virtual space comprising the texture-mapped three-dimensional model of the avatar located at the location and oriented in the direction for display to the second user; render,
(ii) change the viewpoint of the virtual camera of the second user when input is received from the second user indicating a desire to change the viewpoint of the virtual camera;
(iii) re-rendering, from the changed viewpoint of the virtual camera, the three-dimensional virtual space including the texture-mapped three-dimensional model of the avatar located at the location and oriented in the direction for display to the second user. A system configured to do so.
웹 애플리케이션을, 상기 제1 사용자의 제1 클라이언트 디바이스 및 상기 제2 사용자의 제2 클라이언트 디바이스에게, 전송하는 단계;
(i) 3차원 가상 공간에서의 위치 및 방향 - 상기 위치 및 방향은 상기 제1 사용자에 의해 입력됨 - 및 (ii) 상기 제1 클라이언트 디바이스 상의 카메라로부터 캡처되는 비디오 스트림 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 - 을, 상기 웹 애플리케이션을 실행하는 상기 제1 클라이언트 디바이스로부터, 수신하는 단계; 및
상기 위치 및 방향 및 상기 비디오 스트림을, 상기 제2 사용자의 상기 제2 클라이언트 디바이스에게, 전송하는 단계를 포함하며, 상기 웹 애플리케이션은, 웹 브라우저 상에서 실행될 때, 상기 제2 클라이언트 디바이스로 하여금:
(i) 상기 비디오 스트림을 아바타의 3차원 모델 상으로 텍스처 매핑하게 하고, (ii) 상기 제2 사용자의 가상 카메라의 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하게 하며,
(ii) 상기 가상 카메라의 상기 시점을 변경하고자 하는 요망을 나타내는 상기 제2 사용자로부터의 입력이 수신될 때, 상기 제2 사용자의 상기 가상 카메라의 상기 시점을 변경하게 하고,
(iii) 상기 가상 카메라의 상기 변경된 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 재렌더링하게 하는 실행 가능한 명령어들을 포함하는, 방법.A computer implemented method for enabling a video conference between a first user and a second user, comprising:
transmitting a web application to a first client device of the first user and a second client device of the second user;
(i) a position and orientation in a three-dimensional virtual space, wherein the position and orientation are input by the first user, and (ii) a video stream captured from a camera on the first client device, wherein the camera is arranged to capture photo images of a user; receiving, from the first client device running the web application; and
transmitting the location and direction and the video stream to the second client device of the second user, wherein the web application, when executed on a web browser, causes the second client device to:
(i) cause the video stream to be texture mapped onto a three-dimensional model of an avatar, and (ii) located at the location and oriented in the direction for display to the second user, from the viewpoint of the second user's virtual camera. render the 3D virtual space including the texture-mapped 3D model of the avatar;
(ii) when input is received from the second user indicating a desire to change the viewpoint of the virtual camera, cause the second user to change the viewpoint of the virtual camera;
(iii) re-rendering, from the changed viewpoint of the virtual camera, the three-dimensional virtual space including the texture-mapped three-dimensional model of the avatar located at the location and oriented in the direction for display to the second user. A method comprising executable instructions that cause
3차원 가상 공간을 지정하는 데이터를 수신하는 단계;
상기 3차원 가상 공간에서의 위치 및 방향을 수신하는 단계 - 상기 위치 및 방향은 상기 제1 사용자에 의해 입력됨 -;
상기 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 단계 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
웹 브라우저에서 구현되는 웹 애플리케이션에 의해, 상기 비디오 스트림을 아바타의 3차원 모델 상으로 텍스처 매핑하는 단계; 및
상기 웹 브라우저에서 구현되는 상기 웹 애플리케이션에 의해, 상기 제2 사용자의 가상 카메라의 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하는 단계;
상기 가상 카메라의 상기 시점을 변경하고자 하는 요망을 나타내는 상기 제2 사용자로부터의 입력이 수신될 때:
상기 제2 사용자의 상기 가상 카메라의 상기 시점을 변경하는 단계; 및
상기 가상 카메라의 상기 변경된 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 재렌더링하는 단계를 포함하는, 방법.A computer implemented method for enabling a video conference between a first user and a second user, comprising:
Receiving data specifying a 3D virtual space;
receiving a position and direction in the three-dimensional virtual space, wherein the position and direction are input by the first user;
receiving a video stream captured from a camera on the device of the first user, the camera arranged to capture photographic images of the first user;
texture mapping the video stream onto a three-dimensional model of an avatar by a web application implemented in a web browser; and
The texture-mapped three-dimensional model of the avatar positioned at the location and oriented in the direction for display to the second user, from the viewpoint of the second user's virtual camera, by the web application implemented in the web browser. Rendering the 3D virtual space including;
When input from the second user indicating a desire to change the viewpoint of the virtual camera is received:
changing the viewpoint of the virtual camera of the second user; and
re-rendering, from the changed viewpoint of the virtual camera, the three-dimensional virtual space including the texture-mapped three-dimensional model of the avatar located at the location and oriented in the direction for display to the second user; Including, how.
상기 제1 사용자의 상기 디바이스의 마이크로폰으로부터 상기 비디오 스트림과 동기하여 캡처되는 오디오 스트림을 수신하는 단계 - 상기 마이크로폰은 상기 제1 사용자의 발화(speech)를 캡처하도록 배치됨 -; 및
상기 3차원 가상 공간 내에서 상기 비디오 스트림의 디스플레이와 동기하여 상기 제2 사용자에게 재생하기 위해 상기 오디오 스트림을 출력하는 단계
를 더 포함하는, 방법.According to claim 5,
receiving an audio stream captured in synchronization with the video stream from a microphone of the device of the first user, the microphone being arranged to capture speech of the first user; and
outputting the audio stream for playback to the second user in synchronism with the display of the video stream in the three-dimensional virtual space;
Further comprising a method.
상기 제2 사용자에게 디스플레이하기 위해 상기 새로운 위치에 위치하고 상기 새로운 방향으로 배향되는 상기 아바타의 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 재렌더링하는 단계를 더 포함하는, 방법.6. The method of claim 5, when the new position and orientation of the first user in the three-dimensional virtual space are received:
re-rendering the three-dimensional virtual space comprising a texture-mapped three-dimensional model of the avatar positioned in the new location and oriented in the new direction for display to the second user.
상기 제1 사용자가 더 이상 참석하고 있지 않다는 것을 나타내는 통지를, 상기 서버로부터, 수신하는 단계; 및
상기 웹 브라우저 상에서 상기 제2 사용자에게 디스플레이하기 위해 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 갖지 않는 상기 3차원 가상 공간을 재렌더링하는 단계를 더 포함하는, 방법.According to claim 10,
receiving, from the server, a notification indicating that the first user is no longer present; and
re-rendering the three-dimensional virtual space without the texture-mapped three-dimensional model of the avatar for display to the second user on the web browser.
제3 사용자가 상기 3차원 가상 공간에 입장했다는 것을 나타내는 통지를, 상기 서버로부터, 수신하는 단계;
상기 3차원 가상 공간에서의 상기 제3 사용자의 제2 위치 및 제2 방향을 수신하는 단계;
상기 제3 사용자의 디바이스 상의 카메라로부터 캡처되는 제2 비디오 스트림을 수신하는 단계 - 상기 카메라는 상기 제3 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
상기 제2 비디오 스트림을 제2 아바타의 제2 3차원 모델 상으로 텍스처 매핑하는 단계; 및
상기 제2 사용자의 상기 가상 카메라의 상기 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 제2 위치에 위치하고 상기 제2 방향으로 배향되는 상기 제2 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하는 단계를 더 포함하는, 방법.According to claim 11,
receiving, from the server, a notification indicating that a third user has entered the three-dimensional virtual space;
receiving a second location and a second direction of the third user in the 3D virtual space;
receiving a second video stream captured from a camera on the device of the third user, the camera arranged to capture photographic images of the third user;
texture mapping the second video stream onto a second three-dimensional model of a second avatar; and
the 3D virtual model comprising the second texture-mapped 3D model located at the second position and oriented in the second direction for display to the second user, from the viewpoint of the virtual camera of the second user. The method further comprising rendering the space.
3차원 가상 공간을 지정하는 데이터를 수신하는 동작;
상기 3차원 가상 공간에서의 위치 및 방향을 수신하는 동작 - 상기 위치 및 방향은 상기 제1 사용자에 의해 입력됨 -;
상기 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 동작 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
상기 비디오 스트림을 아바타의 3차원 모델 상으로 텍스처 매핑하는 동작;
상기 제2 사용자의 가상 카메라의 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하는 동작;
상기 가상 카메라의 상기 시점을 변경하고자 하는 요망을 나타내는 상기 제2 사용자로부터의 입력이 수신될 때:
상기 제2 사용자의 상기 가상 카메라의 상기 시점을 변경하는 동작; 및
상기 가상 카메라의 상기 변경된 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 재렌더링하는 동작을 포함하며,
상기 데이터, 상기 위치 및 방향, 및 상기 비디오 스트림은 서버로부터 웹 브라우저에 수신되고, 상기 텍스처 매핑 및 렌더링은 상기 웹 브라우저에 의해 실행되는, 디바이스.A non-transitory tangible computer readable device having stored thereon instructions that, when executed by at least one computing device, cause the at least one computing device to perform operations for enabling a video conference between a first user and a second user, , the operations are:
receiving data designating a 3-dimensional virtual space;
receiving a position and direction in the 3D virtual space, the position and direction being input by the first user;
receiving a video stream captured from a camera on the device of the first user, the camera arranged to capture photographic images of the first user;
texture mapping the video stream onto a 3D model of an avatar;
rendering the 3D virtual space including the texture-mapped 3D model of the avatar located at the location and oriented in the direction, from the viewpoint of the second user's virtual camera, for display to the second user; ;
When input from the second user indicating a desire to change the viewpoint of the virtual camera is received:
changing the viewpoint of the virtual camera of the second user; and
re-rendering, from the changed viewpoint of the virtual camera, the 3D virtual space including the texture-mapped 3D model of the avatar located at the location and oriented in the direction for display to the second user; contains,
wherein the data, the position and direction, and the video stream are received from a server to a web browser, and the texture mapping and rendering are performed by the web browser.
상기 제1 사용자의 상기 디바이스의 마이크로폰으로부터 상기 비디오 스트림과 동기하여 캡처되는 오디오 스트림을 수신하는 동작 - 상기 마이크로폰은 상기 제1 사용자의 발화를 캡처하도록 배치됨 -; 및
상기 3차원 가상 공간 내에서 상기 비디오 스트림의 디스플레이와 동기하여 상기 제2 사용자에게 재생하기 위해 상기 오디오 스트림을 출력하는 동작을 더 포함하는, 디바이스.15. The method of claim 14, wherein the operations are:
receiving an audio stream captured in synchronization with the video stream from a microphone of the device of the first user, the microphone being positioned to capture utterances of the first user; and
and outputting the audio stream for playback to the second user in synchronism with the display of the video stream in the 3D virtual space.
상기 제2 사용자에게 디스플레이하기 위해 상기 새로운 위치에 위치하고 상기 새로운 방향으로 배향되는 상기 아바타의 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 재렌더링하는 동작을 더 포함하는, 디바이스.15. The method of claim 14, wherein the actions are: when a new position and orientation of the first user in the three-dimensional virtual space are received:
and re-rendering the three-dimensional virtual space including the texture-mapped three-dimensional model of the avatar located in the new location and oriented in the new direction for display to the second user.
상기 제1 사용자가 더 이상 참석하고 있지 않다는 것을 나타내는 통지를, 상기 서버로부터, 수신하는 동작; 및
상기 웹 브라우저 상에서 상기 제2 사용자에게 디스플레이하기 위해 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 갖지 않는 상기 3차원 가상 공간을 재렌더링하는 동작을 더 포함하는, 디바이스.15. The method of claim 14, wherein the operations are:
receiving, from the server, a notification indicating that the first user is no longer present; and
and re-rendering the three-dimensional virtual space without the texture-mapped three-dimensional model of the avatar for display to the second user on the web browser.
제3 사용자가 상기 3차원 가상 공간에 입장했다는 것을 나타내는 통지를, 상기 서버로부터, 수신하는 동작;
상기 3차원 가상 공간에서의 상기 제3 사용자의 제2 위치 및 제2 방향을 수신하는 동작;
상기 제3 사용자의 디바이스 상의 카메라로부터 캡처되는 제2 비디오 스트림을 수신하는 동작 - 상기 카메라는 상기 제3 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
상기 제2 비디오 스트림을 제2 아바타의 제2 3차원 모델 상으로 텍스처 매핑하는 동작; 및
상기 제2 사용자의 상기 가상 카메라의 상기 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 제2 위치에 위치하고 상기 제2 방향으로 배향되는 상기 제2 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하는 동작을 더 포함하는, 디바이스.20. The method of claim 19, wherein the operations are:
receiving, from the server, a notification indicating that a third user has entered the three-dimensional virtual space;
receiving a second position and a second direction of the third user in the 3D virtual space;
receiving a second video stream captured from a camera on the device of the third user, the camera arranged to capture photographic images of the third user;
texture mapping the second video stream onto a second 3-dimensional model of a second avatar; and
the 3D virtual model comprising the second texture-mapped 3D model located at the second position and oriented in the second direction for display to the second user, from the viewpoint of the virtual camera of the second user. A device further comprising an operation of rendering a space.
3차원 가상 공간을 지정하는 데이터를 수신하는 단계;
상기 3차원 가상 공간에서의 위치 및 방향을 수신하는 단계 - 상기 위치 및 방향은 상기 제1 사용자에 의해 입력됨 -;
상기 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 단계 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
웹 브라우저에서 구현되는 웹 애플리케이션에 의해, 상기 비디오 스트림을 아바타의 3차원 모델 상으로 텍스처 매핑하는 단계;
상기 웹 브라우저에서 구현되는 상기 웹 애플리케이션에 의해, 상기 제2 사용자의 가상 카메라의 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하는 단계;
상기 제1 사용자가 더 이상 참석하고 있지 않다는 것을 나타내는 통지를, 서버로부터, 수신하는 단계; 및
상기 웹 브라우저 상에서 상기 제2 사용자에게 디스플레이하기 위해 상기 아바타의 상기 텍스처 매핑된 3차원 모델을 갖지 않는 상기 3차원 가상 공간을 재렌더링하는 단계를 포함하는, 방법.A computer implemented method for enabling a video conference between a first user and a second user, comprising:
Receiving data specifying a 3D virtual space;
receiving a position and direction in the three-dimensional virtual space, wherein the position and direction are input by the first user;
receiving a video stream captured from a camera on the device of the first user, the camera arranged to capture photographic images of the first user;
texture mapping the video stream onto a three-dimensional model of an avatar by a web application implemented in a web browser;
The texture-mapped three-dimensional model of the avatar positioned at the location and oriented in the direction for display to the second user, from the viewpoint of the second user's virtual camera, by the web application implemented in the web browser. Rendering the 3D virtual space including;
receiving, from a server, a notification indicating that the first user is no longer present; and
re-rendering the three-dimensional virtual space without the texture-mapped three-dimensional model of the avatar for display to the second user on the web browser.
제3 사용자가 상기 3차원 가상 공간에 입장했다는 것을 나타내는 통지를, 상기 서버로부터, 수신하는 단계;
상기 3차원 가상 공간에서의 상기 제3 사용자의 제2 위치 및 제2 방향을 수신하는 단계;
상기 제3 사용자의 디바이스 상의 카메라로부터 캡처되는 제2 비디오 스트림을 수신하는 단계 - 상기 카메라는 상기 제3 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
상기 제2 비디오 스트림을 제2 아바타의 제2 3차원 모델 상으로 텍스처 매핑하는 단계; 및
상기 제2 사용자의 상기 가상 카메라의 상기 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 제2 위치에 위치하고 상기 제2 방향으로 배향되는 상기 제2 텍스처 매핑된 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하는 단계를 더 포함하는, 방법.The method of claim 22,
receiving, from the server, a notification indicating that a third user has entered the three-dimensional virtual space;
receiving a second location and a second direction of the third user in the 3D virtual space;
receiving a second video stream captured from a camera on the device of the third user, the camera arranged to capture photographic images of the third user;
texture mapping the second video stream onto a second three-dimensional model of a second avatar; and
the 3D virtual model comprising the second texture-mapped 3D model located at the second position and oriented in the second direction for display to the second user, from the viewpoint of the virtual camera of the second user. The method further comprising rendering the space.
메모리에 결합되는 프로세서;
디스플레이 스크린;
(i) 3차원 가상 공간을 지정하는 데이터, (ii) 상기 3차원 가상 공간에서의 위치 및 방향 - 상기 위치 및 방향은 상기 제1 사용자에 의해 입력됨 -, 및 상기 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 - 을 수신하도록 구성된 네트워크 인터페이스;
상기 프로세서에서 구현되고, 서버로부터 웹 애플리케이션을 다운로드하고 상기 웹 애플리케이션을 실행하도록 구성된 웹 브라우저를 포함하며, 상기 웹 애플리케이션은:
상기 비디오 스트림을 아바타의 3차원 모델 상으로 매핑하도록 구성된 매퍼, 및
상기 제2 사용자의 가상 카메라의 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 매핑된 비디오 스트림을 갖는 상기 아바타의 상기 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하도록 구성된 렌더러를 포함하는, 시스템.A system for enabling videoconferencing between a first user and a second user, comprising:
a processor coupled to the memory;
display screen;
(i) data specifying a three-dimensional virtual space, (ii) a position and direction in the three-dimensional virtual space, the position and direction being input by the first user, and a camera on the first user's device. a network interface configured to receive a video stream captured from the camera, wherein the camera is arranged to capture photographic images of the first user;
and a web browser implemented in the processor and configured to download a web application from a server and execute the web application, wherein the web application:
a mapper configured to map the video stream onto a three-dimensional model of an avatar; and
the three-dimensional virtual space comprising the three-dimensional model of the avatar with the mapped video stream located at the location and oriented in the direction, from the viewpoint of the second user's virtual camera, for display to the second user. A system, including a renderer configured to render.
웹 애플리케이션을, 상기 제1 사용자의 제1 클라이언트 디바이스 및 상기 제2 사용자의 제2 클라이언트 디바이스에게, 전송하는 단계;
(i) 3차원 가상 공간에서의 위치 및 방향 - 상기 위치 및 방향은 상기 제1 사용자에 의해 입력됨 - 및 (ii) 상기 제1 클라이언트 디바이스 상의 카메라로부터 캡처되는 비디오 스트림 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 - 을, 상기 웹 애플리케이션을 실행하는 상기 제1 클라이언트 디바이스로부터, 수신하는 단계; 및
상기 위치 및 방향 및 상기 비디오 스트림을, 상기 제2 사용자의 상기 제2 클라이언트 디바이스에게, 전송하는 단계를 포함하며, 상기 웹 애플리케이션은, 웹 브라우저 상에서 실행될 때, 상기 비디오 스트림을 아바타의 3차원 모델 상으로 매핑하고, 상기 제2 사용자의 가상 카메라의 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 비디오 스트림으로 매핑된 상기 아바타의 상기 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하는 실행 가능한 명령어들을 포함하는, 시스템.A computer implemented method for enabling a video conference between a first user and a second user, comprising:
transmitting a web application to a first client device of the first user and a second client device of the second user;
(i) a position and orientation in a three-dimensional virtual space, wherein the position and orientation are input by the first user, and (ii) a video stream captured from a camera on the first client device, wherein the camera is arranged to capture photo images of a user; receiving, from the first client device running the web application; and
and transmitting the location and direction and the video stream to the second client device of the second user, wherein the web application, when executed on a web browser, transmits the video stream to a three-dimensional model of an avatar. and the three-dimensional model of the avatar mapped from the viewpoint of the second user's virtual camera to the video stream located at the location and oriented in the direction for display to the second user. A system comprising executable instructions that render a dimensional virtual space.
3차원 가상 공간을 지정하는 데이터를 수신하는 단계;
상기 3차원 가상 공간에서의 위치 및 방향을 수신하는 단계 - 상기 위치 및 방향은 상기 제1 사용자에 의해 입력됨 -;
상기 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 단계 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
웹 브라우저에서 구현되는 웹 애플리케이션에 의해, 상기 비디오 스트림을 아바타의 3차원 모델 상으로 매핑하는 단계; 및
상기 웹 브라우저에서 구현되는 상기 웹 애플리케이션에 의해, 상기 제2 사용자의 가상 카메라의 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하는 단계를 포함하는, 방법.A computer implemented method for enabling a video conference between a first user and a second user, comprising:
Receiving data specifying a 3D virtual space;
receiving a position and direction in the three-dimensional virtual space, wherein the position and direction are input by the first user;
receiving a video stream captured from a camera on the device of the first user, the camera arranged to capture photographic images of the first user;
mapping, by a web application implemented in a web browser, the video stream onto a three-dimensional model of an avatar; and
comprising the three-dimensional model of the avatar located at the location and oriented in the direction for display to the second user, from the viewpoint of the second user's virtual camera, by the web application implemented in the web browser; and rendering the three-dimensional virtual space.
상기 제1 사용자의 상기 디바이스의 마이크로폰으로부터 상기 비디오 스트림과 동기하여 캡처되는 오디오 스트림을 수신하는 단계 - 상기 마이크로폰은 상기 제1 사용자의 발화를 캡처하도록 배치됨 -; 및
상기 3차원 가상 공간 내에서 상기 비디오 스트림의 디스플레이와 동기하여 상기 제2 사용자에게 재생하기 위해 상기 오디오 스트림을 출력하는 단계를 더 포함하는, 방법.According to claim 28,
receiving an audio stream captured in synchronization with the video stream from a microphone of the device of the first user, the microphone being arranged to capture utterances of the first user; and
outputting the audio stream for playback to the second user in synchronization with the display of the video stream within the three-dimensional virtual space.
상기 제2 사용자의 상기 가상 카메라의 상기 시점을 변경하는 단계; 및
상기 가상 카메라의 상기 변경된 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 3차원 모델을 포함하는 상기 3차원 가상 공간을 재렌더링하는 단계를 더 포함하는, 방법.29. The method of claim 28, wherein when input from the second user indicating a desire to change the viewpoint of the virtual camera is received:
changing the viewpoint of the virtual camera of the second user; and
Re-rendering, from the changed viewpoint of the virtual camera, the three-dimensional virtual space including the three-dimensional model of the avatar located at the location and oriented in the direction for display to the second user. , Way.
상기 제2 사용자에게 디스플레이하기 위해 상기 새로운 위치에 위치하고 상기 새로운 방향으로 배향되는 상기 아바타의 3차원 모델을 포함하는 상기 3차원 가상 공간을 재렌더링하는 단계를 더 포함하는, 방법.29. The method of claim 28, wherein when a new position and orientation of the first user in the three-dimensional virtual space is received:
re-rendering the three-dimensional virtual space including the three-dimensional model of the avatar positioned in the new location and oriented in the new direction for display to the second user.
상기 제1 사용자가 더 이상 참석하고 있지 않다는 것을 나타내는 통지를, 상기 서버로부터, 수신하는 단계; 및
상기 웹 브라우저 상에서 상기 제2 사용자에게 디스플레이하기 위해 상기 아바타의 상기 3차원 모델을 갖지 않는 상기 3차원 가상 공간을 재렌더링하는 단계를 더 포함하는, 방법.35. The method of claim 34,
receiving, from the server, a notification indicating that the first user is no longer present; and
re-rendering the three-dimensional virtual space without the three-dimensional model of the avatar for display to the second user on the web browser.
제3 사용자가 상기 3차원 가상 공간에 입장했다는 것을 나타내는 통지를, 상기 서버로부터, 수신하는 단계;
상기 3차원 가상 공간에서의 상기 제3 사용자의 제2 위치 및 제2 방향을 수신하는 단계;
상기 제3 사용자의 디바이스 상의 카메라로부터 캡처되는 제2 비디오 스트림을 수신하는 단계 - 상기 카메라는 상기 제3 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
상기 제2 비디오 스트림을 제2 아바타의 제2 3차원 모델 상으로 매핑하는 단계; 및
상기 제2 사용자의 상기 가상 카메라의 상기 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 제2 위치에 위치하고 상기 제2 방향으로 배향되는 상기 제2 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하는 단계를 더 포함하는, 방법.The method of claim 35,
receiving, from the server, a notification indicating that a third user has entered the three-dimensional virtual space;
receiving a second location and a second direction of the third user in the 3D virtual space;
receiving a second video stream captured from a camera on the device of the third user, the camera arranged to capture photographic images of the third user;
mapping the second video stream onto a second three-dimensional model of a second avatar; and
Rendering of the three-dimensional virtual space including the second three-dimensional model located at the second position and oriented in the second direction for display to the second user, from the viewpoint of the virtual camera of the second user A method further comprising the step of doing.
3차원 가상 공간을 지정하는 데이터를 수신하는 동작;
상기 3차원 가상 공간에서의 위치 및 방향을 수신하는 동작 - 상기 위치 및 방향은 상기 제1 사용자에 의해 입력됨 -;
상기 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 동작 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
상기 비디오 스트림을 아바타의 3차원 모델 상으로 매핑하는 동작; 및
상기 제2 사용자의 가상 카메라의 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하는 동작을 포함하는, 디바이스.A non-transitory tangible computer readable device having stored thereon instructions that, when executed by at least one computing device, cause the at least one computing device to perform operations for enabling a video conference between a first user and a second user, , the operations are:
receiving data designating a 3-dimensional virtual space;
receiving a position and direction in the 3D virtual space, the position and direction being input by the first user;
receiving a video stream captured from a camera on the device of the first user, the camera arranged to capture photographic images of the first user;
mapping the video stream onto a 3D model of an avatar; and
Rendering, from the viewpoint of the second user's virtual camera, the three-dimensional virtual space including the three-dimensional model of the avatar located at the position and oriented in the direction for display to the second user. , device.
상기 제1 사용자의 상기 디바이스의 마이크로폰으로부터 상기 비디오 스트림과 동기하여 캡처되는 오디오 스트림을 수신하는 동작 - 상기 마이크로폰은 상기 제1 사용자의 발화를 캡처하도록 배치됨 -; 및
상기 3차원 가상 공간 내에서 상기 비디오 스트림의 디스플레이와 동기하여 상기 제2 사용자에게 재생하기 위해 상기 오디오 스트림을 출력하는 동작을 더 포함하는, 디바이스.39. The method of claim 38, wherein the operations are:
receiving an audio stream captured in synchronization with the video stream from a microphone of the device of the first user, the microphone being positioned to capture utterances of the first user; and
and outputting the audio stream for playback to the second user in synchronism with the display of the video stream in the 3D virtual space.
상기 제2 사용자의 상기 가상 카메라의 상기 시점을 변경하는 동작; 및
상기 가상 카메라의 상기 변경된 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 3차원 모델을 포함하는 상기 3차원 가상 공간을 재렌더링하는 동작을 더 포함하는, 디바이스.39. The method of claim 38, wherein the operations are: when input from the second user indicating a desire to change the viewpoint of the virtual camera is received:
changing the viewpoint of the virtual camera of the second user; and
Re-rendering, from the changed viewpoint of the virtual camera, the 3D virtual space including the 3D model of the avatar located at the location and oriented in the direction for display to the second user. , device.
상기 제2 사용자에게 디스플레이하기 위해 상기 새로운 위치에 위치하고 상기 새로운 방향으로 배향되는 상기 아바타의 3차원 모델을 포함하는 상기 3차원 가상 공간을 재렌더링하는 동작을 더 포함하는, 디바이스.39. The method of claim 38, wherein the operations are: when a new position and orientation of the first user in the three-dimensional virtual space is received:
and re-rendering the three-dimensional virtual space including the three-dimensional model of the avatar located in the new location and oriented in the new direction for display to the second user.
상기 제1 사용자가 더 이상 참석하고 있지 않다는 것을 나타내는 통지를, 상기 서버로부터, 수신하는 동작; 및
상기 웹 브라우저 상에서 상기 제2 사용자에게 디스플레이하기 위해 상기 아바타의 상기 3차원 모델을 갖지 않는 상기 3차원 가상 공간을 재렌더링하는 동작을 더 포함하는, 디바이스.45. The method of claim 44, wherein the operations are:
receiving, from the server, a notification indicating that the first user is no longer present; and
and re-rendering the three-dimensional virtual space without the three-dimensional model of the avatar for display to the second user on the web browser.
제3 사용자가 상기 3차원 가상 공간에 입장했다는 것을 나타내는 통지를, 상기 서버로부터, 수신하는 동작;
상기 3차원 가상 공간에서의 상기 제3 사용자의 제2 위치 및 제2 방향을 수신하는 동작;
상기 제3 사용자의 디바이스 상의 카메라로부터 캡처되는 제2 비디오 스트림을 수신하는 동작 - 상기 카메라는 상기 제3 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
상기 제2 비디오 스트림을 제2 아바타의 제2 3차원 모델 상으로 매핑하는 동작; 및
상기 제2 사용자의 상기 가상 카메라의 상기 시점으로부터, 상기 제2 사용자에게 디스플레이하기 위해 상기 제2 위치에 위치하고 상기 제2 방향으로 배향되는 상기 제2 3차원 모델을 포함하는 상기 3차원 가상 공간을 렌더링하는 동작을 더 포함하는, 디바이스.46. The method of claim 45, wherein the operations are:
receiving, from the server, a notification indicating that a third user has entered the three-dimensional virtual space;
receiving a second position and a second direction of the third user in the 3D virtual space;
receiving a second video stream captured from a camera on the device of the third user, the camera arranged to capture photographic images of the third user;
mapping the second video stream onto a second 3-dimensional model of a second avatar; and
Rendering of the three-dimensional virtual space including the second three-dimensional model located at the second position and oriented in the second direction for display to the second user, from the viewpoint of the virtual camera of the second user A device further comprising an operation of doing.
3차원 가상 공간을 지정하는 데이터를 수신하는 단계;
상기 3차원 가상 공간에서의 위치 및 방향을 수신하는 단계 - 상기 위치 및 방향은 상기 가상 회의의 상기 복수의 참가자들 중 제1 참가자에 의해 입력됨 -;
상기 제1 참가자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 단계 - 상기 카메라는 상기 제1 참가자의 사진 이미지들을 캡처하도록 배치됨 -;
상기 비디오 스트림을 아바타의 3차원 모델 상으로 매핑하는 단계;
상기 제1 참가자의 상기 디바이스로부터 프레젠테이션 스트림을 수신하는 단계;
상기 프레젠테이션 스트림을 프레젠테이션 화면의 3차원 모델 상으로 매핑하는 단계; 및
상기 복수의 참가자들 중 제2 참가자의 가상 카메라의 시점으로부터, 상기 제2 참가자에게 디스플레이하기 위해 상기 매핑된 아바타 및 상기 매핑된 프레젠테이션 화면을 갖는 상기 3차원 가상 공간을 렌더링하는 단계를 포함하는, 방법.A computer implemented method for presenting in a virtual conference involving a plurality of participants, comprising:
Receiving data specifying a 3D virtual space;
receiving a position and direction in the three-dimensional virtual space, the position and direction being input by a first participant of the plurality of participants of the virtual conference;
receiving a video stream captured from a camera on the device of the first participant, the camera arranged to capture photographic images of the first participant;
mapping the video stream onto a three-dimensional model of an avatar;
receiving a presentation stream from the device of the first participant;
mapping the presentation stream onto a 3D model of a presentation screen; and
rendering, from the viewpoint of a virtual camera of a second participant of the plurality of participants, the three-dimensional virtual space having the mapped avatar and the mapped presentation screen for display to the second participant; .
상기 제1 참가자의 상기 디바이스의 마이크로폰으로부터 상기 프레젠테이션 스트림과 동기하여 캡처되는 오디오 스트림을 수신하는 단계 - 상기 마이크로폰은 상기 제1 참가자의 발화를 캡처하도록 배치됨 -; 및
상기 3차원 가상 공간 내에서 상기 프레젠테이션 스트림의 디스플레이와 동기하여 상기 제2 참가자에게 재생하기 위해 상기 오디오 스트림을 출력하는 단계를 더 포함하는, 방법.The method of claim 48,
receiving an audio stream captured in synchronization with the presentation stream from a microphone of the device of the first participant, the microphone being arranged to capture utterances of the first participant; and
outputting the audio stream for playback to the second participant in synchronization with the display of the presentation stream within the three-dimensional virtual space.
상기 복수의 참가자들 중 제3 참가자의 상기 3차원 가상 공간에서의 위치를 수신하는 단계;
상기 제3 참가자의 디바이스의 마이크로폰으로부터 오디오 스트림을 수신하는 단계 - 상기 마이크로폰은 상기 제3 참가자의 발화를 캡처하도록 배치됨 -; 및
상기 가상 카메라의 위치를 기준으로 상기 제3 참가자의 상기 3차원 가상 공간에서의 상기 수신된 위치의 감각을 제공하기 위해 상기 오디오 스트림을 조정하는 단계를 더 포함하며,
상기 렌더링하는 단계는 상기 제2 참가자에게 디스플레이하기 위해 상기 수신된 위치에서 상기 제3 참가자에 대한 아바타를 갖는 상기 3차원 가상 공간을 렌더링하는 단계를 포함하는, 방법.The method of claim 48,
receiving a position of a third participant among the plurality of participants in the 3D virtual space;
receiving an audio stream from a microphone of the third participant's device, the microphone being arranged to capture the third participant's utterance; and
adjusting the audio stream to provide a sense of the received position of the third participant in the three-dimensional virtual space relative to the position of the virtual camera;
wherein the rendering comprises rendering the three-dimensional virtual space with an avatar for the third participant at the received location for display to the second participant.
상기 제1 참가자의 상기 3차원 가상 공간에서의 위치를 수신하는 단계;
상기 제1 참가자의 디바이스의 마이크로폰으로부터 오디오 스트림을 수신하는 단계 - 상기 마이크로폰은 상기 제1 참가자의 발화를 캡처하도록 배치됨 -;
상기 가상 카메라의 위치를 기준으로 상기 제1 참가자의 상기 3차원 가상 공간에서의 상기 수신된 위치의 감각을 제공하기 위해 상기 오디오 스트림을 조정하는 단계;
상기 제2 참가자에게 디스플레이하기 위해 상기 수신된 위치에서 상기 제3 참가자에 대한 아바타를 갖는 상기 3차원 가상 공간을 렌더링하는 단계; 및
프레젠테이션 모드에 진입할 때, 상기 가상 카메라의 위치를 기준으로 상기 매핑된 프레젠테이션 화면의 위치의 감각을 제공하기 위해 상기 오디오 스트림을 조정하는 단계를 더 포함하는, 방법.The method of claim 48,
receiving a position of the first participant in the 3-dimensional virtual space;
receiving an audio stream from a microphone of the first participant's device, the microphone being arranged to capture the first participant's utterance;
adjusting the audio stream to provide a sense of the received position of the first participant in the three-dimensional virtual space relative to the position of the virtual camera;
rendering the three-dimensional virtual space with an avatar for the third participant at the received location for display to the second participant; and
adjusting the audio stream to provide a sense of the location of the mapped presentation screen relative to the location of the virtual camera when entering presentation mode.
상기 3차원 가상 공간에서의 새로운 방향을 수신하는 단계 - 상기 새로운 방향은 상기 제1 참가자에 의해 입력됨 -;
상기 제2 참가자의 상기 가상 카메라의 상기 시점으로부터, 상기 제2 참가자에게 디스플레이하기 위해 상기 텍스처 매핑된 아바타의 상기 표면이 상기 새로운 방향으로 배향되도록 상기 3차원 가상 공간을 재렌더링하는 단계를 더 포함하는, 방법.56. The method of claim 55, wherein the rendering step comprises rendering the avatar positioned at the position in the three-dimensional virtual space and the surface oriented in the direction in the three-dimensional virtual space;
receiving a new direction in the three-dimensional virtual space, the new direction being input by the first participant;
re-rendering the three-dimensional virtual space from the viewpoint of the virtual camera of the second participant such that the surface of the texture-mapped avatar is oriented in the new orientation for display to the second participant. , Way.
3차원 가상 공간을 지정하는 데이터를 수신하는 동작;
상기 3차원 가상 공간에서의 위치 및 방향을 수신하는 동작 - 상기 위치 및 방향은 상기 가상 회의의 상기 복수의 참가자들 중 제1 참가자에 의해 입력됨 -;
상기 제1 참가자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 동작 - 상기 카메라는 상기 제1 참가자의 사진 이미지들을 캡처하도록 배치됨 -;
상기 비디오 스트림을 아바타의 3차원 모델 상으로 매핑하는 동작;
상기 제1 참가자의 상기 디바이스로부터 프레젠테이션 스트림을 수신하는 동작;
상기 프레젠테이션 스트림을 프레젠테이션 화면의 3차원 모델 상으로 매핑하는 동작; 및
상기 복수의 참가자들 중 제2 참가자의 가상 카메라의 시점으로부터, 상기 제2 참가자에게 디스플레이하기 위해 상기 매핑된 아바타 및 상기 매핑된 프레젠테이션 화면을 갖는 상기 3차원 가상 공간을 렌더링하는 동작을 포함하는, 디바이스.A non-transitory tangible computer readable device having stored thereon instructions that, when executed by at least one computing device, cause the at least one computing device to perform operations for a presentation in a virtual conference including a plurality of participants, the operations comprising: :
receiving data designating a 3-dimensional virtual space;
receiving a position and direction in the three-dimensional virtual space, the position and direction being input by a first participant among the plurality of participants of the virtual conference;
receiving a video stream captured from a camera on the first participant's device, the camera arranged to capture photographic images of the first participant;
mapping the video stream onto a 3D model of an avatar;
receiving a presentation stream from the device of the first participant;
mapping the presentation stream onto a 3D model of a presentation screen; and
and rendering the three-dimensional virtual space having the mapped avatar and the mapped presentation screen for display to the second participant from a viewpoint of a virtual camera of a second participant among the plurality of participants. .
상기 제1 참가자의 상기 디바이스의 마이크로폰으로부터 상기 프레젠테이션 스트림과 동기하여 캡처되는 오디오 스트림을 수신하는 동작 - 상기 마이크로폰은 상기 제1 참가자의 발화를 캡처하도록 배치됨 -; 및
상기 3차원 가상 공간 내에서 상기 프레젠테이션 스트림의 디스플레이와 동기하여 상기 제2 참가자에게 재생하기 위해 상기 오디오 스트림을 출력하는 동작을 더 포함하는, 디바이스.60. The method of claim 59, wherein the operations are:
receiving an audio stream captured in synchronization with the presentation stream from a microphone of the device of the first participant, the microphone being positioned to capture utterances of the first participant; and
and outputting the audio stream for playback to the second participant in synchronism with the display of the presentation stream within the 3D virtual space.
상기 복수의 참가자들 중 제3 참가자의 상기 3차원 가상 공간에서의 위치를 수신하는 동작;
상기 제3 참가자의 디바이스의 마이크로폰으로부터 오디오 스트림을 수신하는 동작 - 상기 마이크로폰은 상기 제3 참가자의 발화를 캡처하도록 배치됨 -; 및
상기 가상 카메라의 위치를 기준으로 상기 제3 참가자의 상기 3차원 가상 공간에서의 상기 수신된 위치의 감각을 제공하기 위해 상기 오디오 스트림을 조정하는 동작을 더 포함하며,
상기 렌더링하는 동작은 상기 제2 참가자에게 디스플레이하기 위해 상기 수신된 위치에서 상기 제3 참가자에 대한 아바타를 갖는 상기 3차원 가상 공간을 렌더링하는 동작을 포함하는, 디바이스.60. The method of claim 59, wherein the operations are:
receiving a location of a third participant among the plurality of participants in the 3D virtual space;
receiving an audio stream from a microphone of the third participant's device, the microphone being positioned to capture the third participant's utterance; and
adjusting the audio stream to provide a sense of the received position of the third participant in the three-dimensional virtual space relative to the position of the virtual camera;
wherein the act of rendering comprises rendering the three-dimensional virtual space with an avatar for the third participant at the received location for display to the second participant.
상기 제1 참가자의 상기 3차원 가상 공간에서의 위치를 수신하는 동작;
상기 제1 참가자의 디바이스의 마이크로폰으로부터 오디오 스트림을 수신하는 동작 - 상기 마이크로폰은 상기 제1 참가자의 발화를 캡처하도록 배치됨 -;
상기 가상 카메라의 위치를 기준으로 상기 제1 참가자의 상기 3차원 가상 공간에서의 상기 수신된 위치의 감각을 제공하기 위해 상기 오디오 스트림을 조정하는 동작;
상기 제2 참가자에게 디스플레이하기 위해 상기 수신된 위치에서 상기 제3 참가자에 대한 아바타를 갖는 상기 3차원 가상 공간을 렌더링하는 동작; 및
프레젠테이션 모드에 진입할 때, 상기 가상 카메라의 위치를 기준으로 상기 매핑된 프레젠테이션 화면의 위치의 감각을 제공하기 위해 상기 오디오 스트림을 조정하는 동작을 더 포함하는, 디바이스.60. The method of claim 59, wherein the operations are:
receiving a location of the first participant in the 3D virtual space;
receiving an audio stream from a microphone of the first participant's device, the microphone being positioned to capture the first participant's utterance;
adjusting the audio stream to provide a sense of the received position of the first participant in the three-dimensional virtual space relative to the position of the virtual camera;
rendering the three-dimensional virtual space with an avatar for the third participant at the received location for display to the second participant; and
and adjusting the audio stream to provide a sense of the location of the mapped presentation screen relative to the location of the virtual camera when entering a presentation mode.
메모리에 결합되는 프로세서;
(i) 3차원 가상 공간을 지정하는 데이터, (ii) 상기 3차원 가상 공간에서의 위치 및 방향 - 상기 위치 및 방향은 상기 가상 회의의 상기 복수의 참가자들 중 제1 참가자에 의해 입력됨 -, (iii) 상기 제1 참가자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림 - 상기 카메라는 상기 제1 참가자의 사진 이미지들을 캡처하도록 배치됨 -, 및 (iv) 상기 제1 참가자의 디바이스로부터의 프레젠테이션 스트림을 수신하도록 구성된 네트워크 인터페이스;
상기 프로세서에서 구현되고, 상기 비디오 스트림을 아바타의 3차원 모델 상으로 매핑하고 상기 프레젠테이션 스트림을 프레젠테이션 화면의 3차원 모델 상으로 매핑하도록 구성된 매퍼; 및
상기 프로세서 상에서 구현되고, 상기 복수의 참가자들 중 제2 참가자의 가상 카메라의 시점으로부터, 상기 제2 참가자에게 디스플레이하기 위해 상기 매핑된 아바타 및 상기 매핑된 프레젠테이션 화면을 갖는 상기 3차원 가상 공간을 렌더링하도록 구성된 렌더러를 포함하는, 시스템.A system for presenting in a virtual conference involving a plurality of participants, comprising:
a processor coupled to the memory;
(i) data designating a three-dimensional virtual space, (ii) a position and direction in the three-dimensional virtual space, wherein the position and direction are input by a first participant of the plurality of participants of the virtual conference; (iii) a video stream captured from a camera on the first participant's device, the camera being arranged to capture photographic images of the first participant; and (iv) receiving a presentation stream from the first participant's device. configured network interface;
a mapper implemented in the processor and configured to map the video stream onto a 3-dimensional model of an avatar and map the presentation stream onto a 3-dimensional model of a presentation screen; and
implemented on the processor, to render, from a viewpoint of a virtual camera of a second participant of the plurality of participants, the three-dimensional virtual space having the mapped avatar and the mapped presentation screen for display to the second participant; A system, containing a configured renderer.
상기 가상 회의의 상기 복수의 참가자들 중 제1 참가자의 제1 디바이스로부터, (i) 상기 3차원 가상 공간에서의 위치 및 방향 - 상기 위치 및 방향은 상기 제1 참가자에 의해 입력됨 -, (ii) 상기 제1 디바이스 상의 카메라로부터 캡처되는 비디오 스트림 - 상기 카메라는 상기 제1 참가자의 사진 이미지들을 캡처하도록 배치됨 -, 및 (iii) 프레젠테이션 스트림을 수신하는 단계; 및
상기 프레젠테이션 스트림을, 상기 복수의 참가자들 중 제2 참가자의 제2 디바이스에게, 전송하는 단계를 포함하며, 상기 제2 디바이스는 (i) 상기 프레젠테이션 스트림을 프레젠테이션 화면의 3차원 모델 상으로 매핑하고, (ii) 상기 비디오 스트림을 아바타에 매핑하며, (iii) 상기 복수의 참가자들 중 상기 제2 참가자의 가상 카메라의 시점으로부터, 상기 제2 참가자에게 디스플레이하기 위해 상기 위치에 위치하고 상기 방향으로 배향되는 상기 아바타의 상기 매핑된 3차원 모델 및 상기 매핑된 프레젠테이션 화면 공간을 갖는 3차원 가상 공간을 렌더링하도록 구성되는, 방법.A computer implemented method for presenting in a virtual conference involving a plurality of participants, comprising:
From a first device of a first participant of the plurality of participants of the virtual conference, (i) a position and direction in the three-dimensional virtual space, the position and direction being input by the first participant, (ii) ) a video stream captured from a camera on the first device, the camera arranged to capture photographic images of the first participant, and (iii) receiving a presentation stream; and
transmitting the presentation stream to a second device of a second participant of the plurality of participants, wherein the second device (i) maps the presentation stream onto a three-dimensional model of a presentation screen; (ii) maps the video stream to an avatar; (iii) from the viewpoint of a virtual camera of the second participant of the plurality of participants, located at the location and oriented in the direction for display to the second participant; and render a three-dimensional virtual space having the mapped three-dimensional model of the avatar and the mapped presentation screen space.
상기 제2 디바이스가 상기 프레젠테이션 화면을 어떻게 매핑하고 렌더링하는지를 지정하는 실행 가능한 코드를 갖는 웹 애플리케이션을, 상기 제2 디바이스에게, 전송하는 단계를 더 포함하는, 방법.69. The method of claim 68,
The method further comprising transmitting, to the second device, a web application having executable code specifying how the second device maps and renders the presentation screen.
제1 사용자의 가상 카메라의 시점으로부터, 상기 제1 사용자에게 디스플레이하기 위해 3차원 가상 공간을 렌더링하는 단계 - 상기 3차원 가상 공간은 제2 사용자의 텍스처 매핑된 비디오를 갖는 아바타를 포함하고, 상기 가상 카메라는 상기 3차원 가상 공간에서 제1 위치에 있고 상기 아바타는 상기 3차원 가상 공간에서 제2 위치에 있음 -;
상기 제2 사용자의 디바이스의 마이크로폰으로부터 오디오 스트림을 수신하는 단계 - 상기 마이크로폰은 상기 제2 사용자의 발화를 캡처하도록 배치됨 -;
상기 제2 위치가 상기 3차원 가상 공간에서 상기 제1 위치를 기준으로 어디에 있는지의 감각을 제공하도록 좌측 오디오 스트림과 우측 오디오 스트림을 결정하기 위해 상기 수신된 오디오 스트림의 볼륨을 조정하는 단계; 및
상기 좌측 오디오 스트림과 상기 우측 오디오 스트림을 스테레오로 상기 제1 사용자에게 재생되도록 출력하는 단계를 포함하는, 방법.A computer implemented method for providing a virtual conference involving a plurality of participants, comprising:
rendering a three-dimensional virtual space from the point of view of a virtual camera of a first user for display to the first user, the three-dimensional virtual space including an avatar having texture-mapped video of a second user, wherein the virtual space includes an avatar of a second user; the camera is at a first position in the 3D virtual space and the avatar is at a second position in the 3D virtual space;
receiving an audio stream from a microphone of the second user's device, the microphone being arranged to capture the second user's utterance;
adjusting the volume of the received audio stream to determine a left audio stream and a right audio stream to provide a sense of where the second location is relative to the first location in the three-dimensional virtual space; and
and outputting the left audio stream and the right audio stream in stereo to be played back to the first user.
제1 사용자의 가상 카메라의 시점으로부터, 상기 제1 사용자에게 디스플레이하기 위해 3차원 가상 공간을 렌더링하는 동작 - 상기 3차원 가상 공간은 제2 사용자의 텍스처 매핑된 비디오를 갖는 아바타를 포함하고, 상기 가상 카메라는 상기 3차원 가상 공간에서 제1 위치에 있고 상기 아바타는 상기 3차원 가상 공간에서 제2 위치에 있음 -;
상기 제2 사용자의 디바이스의 마이크로폰으로부터 오디오 스트림을 수신하는 동작 - 상기 마이크로폰은 상기 제2 사용자의 발화를 캡처하도록 배치됨 -;
상기 제2 위치가 상기 3차원 가상 공간에서 상기 제1 위치를 기준으로 어디에 있는지의 감각을 제공하도록 좌측 오디오 스트림과 우측 오디오 스트림을 결정하기 위해 상기 수신된 오디오 스트림의 볼륨을 조정하는 동작; 및
상기 좌측 오디오 스트림과 상기 우측 오디오 스트림을 스테레오로 상기 제1 사용자에게 재생되도록 출력하는 동작을 포함하는, 디바이스.A non-transitory tangible computer readable device having stored thereon instructions that, when executed by at least one computing device, cause the at least one computing device to perform operations for a presentation in a virtual conference including a plurality of participants, the operations comprising: :
rendering a 3D virtual space from the viewpoint of a first user's virtual camera for display to the first user, the 3D virtual space including an avatar having a texture mapped video of a second user, the virtual space the camera is at a first position in the 3D virtual space and the avatar is at a second position in the 3D virtual space;
receiving an audio stream from a microphone of the second user's device, the microphone being positioned to capture the second user's utterance;
adjusting the volume of the received audio stream to determine a left audio stream and a right audio stream to provide a sense of where the second location is relative to the first location in the three-dimensional virtual space; and
and outputting the left audio stream and the right audio stream in stereo to be reproduced by the first user.
메모리에 결합되는 프로세서;
상기 프로세서에서 구현되고, 제1 사용자의 가상 카메라의 시점으로부터 상기 제1 사용자에게 디스플레이하기 위해 3차원 가상 공간을 렌더링하도록 구성된 렌더러 - 상기 3차원 가상 공간은 제2 사용자의 텍스처 매핑된 비디오를 갖는 아바타를 포함하고, 상기 가상 카메라는 상기 3차원 가상 공간에서 제1 위치에 있고 상기 아바타는 상기 3차원 가상 공간에서 제2 위치에 있음 -;
상기 제2 사용자의 디바이스의 마이크로폰으로부터 오디오 스트림을 수신하도록 구성된 네트워크 인터페이스 - 상기 마이크로폰은 상기 제2 사용자의 발화를 캡처하도록 배치됨 -;
상기 제2 위치가 상기 3차원 가상 공간에서 상기 제1 위치를 기준으로 어디에 있는지의 감각을 제공하도록 좌측 오디오 스트림과 우측 오디오 스트림을 결정하기 위해 상기 수신된 오디오 스트림의 볼륨을 조정하도록 구성된 오디오 프로세서; 및
상기 좌측 오디오 스트림과 상기 우측 오디오 스트림을 스테레오로 상기 제1 사용자에게 재생되도록 출력하는 스테레오 스피커를 포함하는, 시스템.A system for providing a virtual conference involving a plurality of participants, comprising:
a processor coupled to the memory;
a renderer embodied in the processor and configured to render a three-dimensional virtual space for display to the first user from the viewpoint of a first user's virtual camera, the three-dimensional virtual space avatar having texture-mapped video of a second user; including, wherein the virtual camera is at a first position in the 3D virtual space and the avatar is at a second position in the 3D virtual space;
a network interface configured to receive an audio stream from a microphone of the second user's device, the microphone being arranged to capture speech of the second user;
an audio processor configured to adjust a volume of the received audio stream to determine a left audio stream and a right audio stream to provide a sense of where the second location is relative to the first location in the three-dimensional virtual space; and
and a stereo speaker outputting the left audio stream and the right audio stream in stereo to be reproduced to the first user.
(a) 제1 사용자의 가상 카메라의 시점으로부터, 상기 제1 사용자에게 디스플레이하기 위해 3차원 가상 공간의 적어도 일 부분을 렌더링하는 단계 - 상기 3차원 가상 공간은 제2 사용자를 표현하는 아바타를 포함하고, 상기 가상 카메라는 상기 3차원 가상 공간에서 제1 위치에 있고 상기 아바타는 상기 3차원 가상 공간에서 제2 위치에 있으며, 상기 3차원 가상 공간은 복수의 영역들로 분할됨 -;
(b) 상기 제2 사용자의 디바이스의 마이크로폰으로부터 오디오 스트림을 수신하는 단계 - 상기 마이크로폰은 상기 제2 사용자의 발화를 캡처하도록 배치됨 -;
(c) 상기 가상 카메라와 상기 아바타가 상기 복수의 영역들 중 동일한 영역에 위치하는지 여부를 결정하는 단계;
(d) 상기 아바타가 상기 복수의 영역들 중 연단 영역에 있는지 여부를 결정하는 단계;
(e) 상기 가상 카메라와 상기 아바타가 상기 동일한 영역에 위치하지 않는 것으로 결정되고 상기 아바타가 상기 연단 영역에 있지 않은 것으로 결정될 때, 상기 오디오 스트림을 감쇠시키는 단계; 및
(f) 상기 오디오 스트림을 상기 제1 사용자에게 재생되도록 출력하는 단계를 포함하는, 컴퓨터 구현 방법.A computer implemented method for providing audio for a virtual conference, comprising:
(a) rendering, from the viewpoint of a first user's virtual camera, at least a portion of a three-dimensional virtual space for display to the first user, wherein the three-dimensional virtual space includes an avatar representing a second user; , the virtual camera is at a first position in the 3D virtual space and the avatar is at a second position in the 3D virtual space, the 3D virtual space is divided into a plurality of regions;
(b) receiving an audio stream from a microphone of the second user's device, the microphone being arranged to capture the second user's utterance;
(c) determining whether the virtual camera and the avatar are located in the same area among the plurality of areas;
(d) determining whether the avatar is in a podium area of the plurality of areas;
(e) attenuating the audio stream when it is determined that the virtual camera and the avatar are not located in the same area and the avatar is not located in the podium area; and
(f) outputting the audio stream to be played back to the first user.
(g) 상기 제1 사용자의 디바이스의 마이크로폰으로부터 제2 오디오 스트림을 수신하는 단계 - 상기 마이크로폰은 상기 제1 사용자의 발화를 캡처하도록 배치됨 -;
(h) 상기 제2 아바타와 상기 가상 카메라가 상기 가상 카메라가 위치하는 상기 동일한 영역과 상이한 상기 3차원 가상 공간의 영역에 위치한다고 결정하는 단계; 및
(i) 상기 제1 오디오 스트림과 상기 제2 오디오 스트림이 상기 제3 사용자에게 들리는 것을 방지하기 위해 상기 제1 오디오 스트림과 상기 제2 오디오 스트림을 감쇠시켜, 상기 제1 사용자와 상기 제2 사용자 사이의 사적인 대화를 가능하게 하는 단계를 더 포함하는, 컴퓨터 구현 방법.94. The method of claim 93, wherein the audio stream is a first audio stream, the three-dimensional virtual space includes a second avatar representing a third user, and the determining step (c) includes the virtual camera and the avatar Determining that they are located in the same area;
(g) receiving a second audio stream from a microphone of the first user's device, the microphone being arranged to capture speech of the first user;
(h) determining that the second avatar and the virtual camera are located in an area of the 3D virtual space different from the same area in which the virtual camera is located; and
(i) attenuating the first audio stream and the second audio stream to prevent the third user from hearing the first audio stream and the second audio stream, and between the first user and the second user; A computer implemented method further comprising enabling a pseudo-private conversation.
(g) 상기 3차원 가상 공간에서 상기 가상 카메라와 상기 아바타 사이의 거리를 결정하는 단계;
(h) 상기 가상 카메라와 상기 아바타 사이의 적어도 하나의 영역을 결정하는 단계; 및
(i) (g)에서 결정된 상기 거리 및 (h)에서 결정된 상기 적어도 하나의 영역에 대응하는 상기 거리 투과 율에 기초하여 상기 오디오 스트림을 감쇠시키는 단계를 더 포함하는, 컴퓨터 구현 방법.94. The method of claim 93, wherein each region of the plurality of regions has a distance transmission factor;
(g) determining a distance between the virtual camera and the avatar in the 3D virtual space;
(h) determining at least one region between the virtual camera and the avatar; and
(i) attenuating the audio stream based on the distance determined in (g) and the distance transmittance corresponding to the at least one region determined in (h).
(g) 상기 아바타를 포함하는 영역과 상기 가상 카메라를 포함하는 영역 사이의 상기 복수의 영역들 중의 영역 서브세트를 결정하기 위해 상기 계층구조를 순회하는 단계; 및
(h) (g)에서 결정된 상기 영역 서브세트에 대응하는 각자의 벽 투과 율에 기초하여 상기 오디오 스트림을 감쇠시키는 단계를 더 포함하는, 컴퓨터 구현 방법.98. The method of claim 97, wherein respective areas of the plurality of areas have a wall transmittance;
(g) traversing the hierarchy to determine a region subset of the plurality of regions between the region containing the avatar and the region containing the virtual camera; and
(h) attenuating the audio stream based on the respective wall transmittance corresponding to the region subset determined in (g).
(a) 제1 사용자의 가상 카메라의 시점으로부터, 상기 제1 사용자에게 디스플레이하기 위해 3차원 가상 공간의 적어도 일 부분을 렌더링하는 동작 - 상기 3차원 가상 공간은 제2 사용자를 표현하는 아바타를 포함하고, 상기 가상 카메라는 상기 3차원 가상 공간에서 제1 위치에 있고 상기 아바타는 상기 3차원 가상 공간에서 제2 위치에 있으며, 상기 3차원 가상 공간은 복수의 영역들로 분할됨 -;
(b) 상기 제2 사용자의 디바이스의 마이크로폰으로부터 오디오 스트림을 수신하는 동작 - 상기 마이크로폰은 상기 제2 사용자의 발화를 캡처하도록 배치됨 -;
(c) 상기 가상 카메라와 상기 아바타가 상기 복수의 영역들 중 동일한 영역에 위치하는지 여부를 결정하는 동작;
(d) 상기 아바타가 상기 복수의 영역들 중 연단 영역에 있는지 여부를 결정하는 동작;
(e) 상기 가상 카메라와 상기 아바타가 상기 동일한 영역에 위치하지 않는 것으로 결정되고 상기 아바타가 상기 연단 영역에 있지 않은 것으로 결정될 때, 상기 오디오 스트림을 감쇠시키는 동작; 및
(f) 상기 오디오 스트림을 상기 제1 사용자에게 재생되도록 출력하는 동작을 포함하는, 디바이스.A non-transitory tangible computer readable device having stored thereon instructions that, when executed by at least one computing device, cause the at least one computing device to perform operations to provide audio for a virtual meeting, the operations comprising:
(a) rendering at least a portion of a 3D virtual space for display to the first user, from the viewpoint of a first user's virtual camera, wherein the 3D virtual space includes an avatar representing a second user; , the virtual camera is at a first position in the 3D virtual space and the avatar is at a second position in the 3D virtual space, the 3D virtual space is divided into a plurality of regions;
(b) receiving an audio stream from a microphone of the second user's device, the microphone being positioned to capture the second user's utterance;
(c) determining whether the virtual camera and the avatar are located in the same area among the plurality of areas;
(d) determining whether the avatar is in a podium area among the plurality of areas;
(e) attenuating the audio stream when it is determined that the virtual camera and the avatar are not located in the same area and the avatar is not located in the podium area; and
(f) outputting the audio stream to be reproduced to the first user.
(g) 상기 제1 사용자의 디바이스의 마이크로폰으로부터 제2 오디오 스트림을 수신하는 동작 - 상기 마이크로폰은 상기 제1 사용자의 발화를 캡처하도록 배치됨 -;
(h) 상기 제2 아바타와 상기 가상 카메라가 상기 가상 카메라가 위치하는 상기 동일한 영역과 상이한 상기 3차원 가상 공간의 영역에 위치한다고 결정하는 동작; 및
(i) 상기 제1 오디오 스트림과 상기 제2 오디오 스트림이 상기 제3 사용자에게 들리는 것을 방지하기 위해 상기 제1 오디오 스트림과 상기 제2 오디오 스트림을 감쇠시켜, 상기 제1 사용자와 상기 제2 사용자 사이의 사적인 대화를 가능하게 하는 동작을 더 포함하는, 디바이스.101. The method of claim 99, wherein the audio stream is a first audio stream, the three-dimensional virtual space includes a second avatar representing a third user, and the determining operation (c) includes the virtual camera and the avatar and determining that they are located in the same area, wherein the operations are:
(g) receiving a second audio stream from a microphone of the first user's device, the microphone being positioned to capture speech of the first user;
(h) determining that the second avatar and the virtual camera are located in an area of the 3D virtual space different from the same area in which the virtual camera is located; and
(i) attenuating the first audio stream and the second audio stream to prevent the third user from hearing the first audio stream and the second audio stream, and between the first user and the second user; The device further comprising an operation enabling a pseudo-private conversation.
(g) 상기 3차원 가상 공간에서 상기 가상 카메라와 상기 아바타 사이의 거리를 결정하는 동작;
(h) 상기 가상 카메라와 상기 아바타 사이의 적어도 하나의 영역을 결정하는 동작; 및
(i) (g)에서 결정된 상기 거리 및 (h)에서 결정된 상기 적어도 하나의 영역에 대응하는 상기 거리 투과 율에 기초하여 상기 오디오 스트림을 감쇠시키는 동작을 더 포함하는, 디바이스.100. The method of claim 99, wherein each area of the plurality of areas has a distance transmittance, and the operations are:
(g) determining a distance between the virtual camera and the avatar in the 3D virtual space;
(h) determining at least one area between the virtual camera and the avatar; and
(i) attenuating the audio stream based on the distance determined in (g) and the distance transmittance corresponding to the at least one area determined in (h).
(g) 상기 아바타를 포함하는 영역과 상기 가상 카메라를 포함하는 영역 사이의 상기 복수의 영역들 중의 영역 서브세트를 결정하기 위해 상기 계층구조를 순회하는 동작; 및
(h) (g)에서 결정된 상기 영역 서브세트에 대응하는 각자의 벽 투과 율에 기초하여 상기 오디오 스트림을 감쇠시키는 동작을 더 포함하는, 디바이스.104. The method of claim 103, wherein respective areas of the plurality of areas have a wall transmittance, and the operations are to:
(g) traversing the hierarchy to determine a region subset of the plurality of regions between a region containing the avatar and a region containing the virtual camera; and
(h) attenuating the audio stream based on the respective wall transmittance corresponding to the region subset determined in (g).
메모리에 결합되는 프로세서;
프로세서에서 구현되고, 제1 사용자의 가상 카메라의 시점으로부터, 상기 제1 사용자에게 디스플레이하기 위해 3차원 가상 공간의 적어도 일 부분을 렌더링하도록 구성된 렌더러 - 상기 3차원 가상 공간은 제2 사용자를 표현하는 아바타를 포함하고, 상기 가상 카메라는 상기 3차원 가상 공간에서 제1 위치에 있고 상기 아바타는 상기 3차원 가상 공간에서 제2 위치에 있으며, 상기 3차원 가상 공간은 계층구조로서 구성된 복수의 영역들로 분할됨 -;
상기 제2 사용자의 디바이스의 마이크로폰으로부터 오디오 스트림을 수신하도록 구성된 네트워크 인터페이스 - 상기 마이크로폰은 상기 제2 사용자의 발화를 캡처하도록 배치됨 -; 및
상기 가상 카메라와 상기 아바타가 상기 복수의 영역들 중 동일한 영역에 있는지 여부와 상기 아바타가 상기 복수의 영역들 중 연단 영역에 있는지 여부를 결정하고, 상기 가상 카메라와 상기 아바타가 상기 동일한 영역에 위치하지 않는 것으로 결정되고 상기 아바타가 상기 연단 영역에 있지 않은 것으로 결정될 때, 상기 오디오 스트림을 감쇠시키며, 상기 오디오 스트림을 상기 제1 사용자에게 재생되게 출력하도록 구성되는 오디오 프로세서를 포함하는, 시스템.A system for providing audio for a virtual conference, comprising:
a processor coupled to the memory;
a renderer implemented on a processor and configured to render, from the viewpoint of a virtual camera of a first user, at least a portion of a three-dimensional virtual space for display to the first user, wherein the three-dimensional virtual space represents an avatar representing a second user; wherein the virtual camera is at a first position in the 3D virtual space and the avatar is at a second position in the 3D virtual space, and the 3D virtual space is divided into a plurality of regions configured as a hierarchical structure. become -;
a network interface configured to receive an audio stream from a microphone of the second user's device, the microphone being arranged to capture speech of the second user; and
determine whether the virtual camera and the avatar are in the same area of the plurality of areas and whether the avatar is in a podium area of the plurality of areas, and the virtual camera and the avatar are not located in the same area and an audio processor configured to attenuate the audio stream and output the audio stream to be played back to the first user when it is determined that the avatar is not in the podium area.
(a) 가상 회의 공간에서의 제1 사용자와 제2 사용자 사이의 거리를 결정하는 단계;
(b) 상기 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 단계 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
(c) 보다 가까운 거리가 보다 먼 거리보다 더 큰 해상도 또는 비트레이트를 결과하도록 상기 결정된 거리에 기초하여 상기 비디오 스트림의 감소된 해상도 또는 비트레이트를 선택하는 단계; 및
(d) 상기 가상 회의 공간 내의 상기 제2 사용자에게 디스플레이하기 위해 상기 감소된 해상도 또는 비트레이트의 상기 비디오 스트림을 상기 제2 사용자의 디바이스에게 전송하도록 요청하는 단계 - 상기 비디오 스트림은 상기 가상 회의 공간 내의 상기 제2 사용자에게 디스플레이를 위해 상기 제1 사용자의 아바타 상에 매핑됨 - 를 포함하는, 방법.A computer implemented method for streaming video for a virtual conference, comprising:
(a) determining a distance between a first user and a second user in the virtual meeting space;
(b) receiving a video stream captured from a camera on the device of the first user, the camera arranged to capture photographic images of the first user;
(c) selecting a reduced resolution or bitrate of the video stream based on the determined distance such that a closer distance results in a higher resolution or bitrate than a greater distance; and
(d) requesting transmission of the video stream at the reduced resolution or bitrate to the device of the second user for display to the second user within the virtual meeting space, wherein the video stream is transmitted within the virtual meeting space. mapped onto the first user's avatar for display to the second user.
(e) 제3 사용자의 디바이스 상의 카메라로부터 캡처되는 제2 비디오 스트림을 수신하는 단계 - 상기 카메라는 상기 제3 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
(f) 상기 가상 회의를 위한 데이터를 상기 제2 사용자에게 전송하기 위해 이용 가능한 대역폭을 결정하는 단계;
(g) 가상 회의 공간에서의 제1 사용자와 제2 사용자 사이의 제2 거리를 결정하는 단계; 및
(h) (a)에서 결정되는 상기 거리에 대한 (g)에서 결정되는 상기 제2 거리에 기초하여 (b)에서 수신되는 상기 비디오 스트림과 (e)에서 수신되는 상기 제2 비디오 스트림 간에 상기 이용 가능한 대역폭을 배분하는 단계를 더 포함하는, 방법.109. The method of claim 109,
(e) receiving a second video stream captured from a camera on a device of a third user, the camera arranged to capture photographic images of the third user;
(f) determining available bandwidth for transmitting data for the virtual conference to the second user;
(g) determining a second distance between the first user and the second user in the virtual meeting space; and
(h) the use between the video stream received in (b) and the second video stream received in (e) based on the second distance determined in (g) for the distance determined in (a). The method further comprises apportioning the available bandwidth.
(i) 상기 제1 사용자의 디바이스로부터 제1 오디오 스트림을 수신하는 단계;
(j) 상기 제3 사용자의 디바이스로부터 제2 오디오 스트림을 수신하는 단계를 더 포함하며, 상기 배분하는 단계 (h)는 상기 제1 및 제2 오디오 스트림들의 일 부분을 예약하는 단계를 포함하는, 방법.111. The method of claim 110,
(i) receiving a first audio stream from the device of the first user;
(j) further comprising receiving a second audio stream from the device of the third user, wherein the distributing (h) comprises reserving a portion of the first and second audio streams. Way.
(k) 상기 예약된 부분의 크기에 따라 상기 제1 및 제2 오디오 스트림들의 품질을 감소시키는 단계를 더 포함하는, 방법.112. The method of claim 112,
(k) reducing the quality of the first and second audio streams according to the size of the reserved portion.
(e) 상기 가상 회의 공간에서의 상기 제1 사용자와 상기 제2 사용자 사이의 상기 거리가 상기 거리에서의 비디오의 디스플레이를 비효과적이게 한다고 결정하는 단계;
(e)에서의 상기 결정에 응답하여:
(f) 상기 제2 사용자의 상기 디바이스로의 상기 비디오 스트림의 전송을 중단하는 단계; 및
(g) 상기 비디오 스트림을 정지 이미지로 대체하도록 상기 제2 사용자의 상기 디바이스에 통지하는 단계를 더 포함하는, 방법.109. The method of claim 109,
(e) determining that the distance between the first user and the second user at the virtual meeting space makes display of video at the distance ineffective;
In response to the determination in (e):
(f) stopping transmission of the video stream to the device of the second user; and
(g) notifying the device of the second user to replace the video stream with a still image.
(a) 가상 회의 공간에서의 제1 사용자와 제2 사용자 사이의 거리를 결정하는 동작;
(b) 상기 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 동작 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
(c) 보다 가까운 거리가 보다 먼 거리보다 더 큰 해상도 또는 비트레이트를 결과하도록 상기 결정된 거리에 기초하여 상기 비디오 스트림의 감소된 해상도 또는 비트레이트를 선택하는 동작; 및
(d) 상기 가상 회의 공간 내의 상기 제2 사용자에게 디스플레이하기 위해 상기 감소된 해상도 또는 비트레이트의 상기 비디오 스트림을 상기 제2 사용자의 디바이스에게 전송하도록 요청하는 동작 - 상기 비디오 스트림은 상기 가상 회의 공간 내의 상기 제2 사용자에게 디스플레이를 위해 상기 제1 사용자의 아바타 상에 매핑됨 - 을 포함하는, 디바이스.A non-transitory tangible computer readable device having stored thereon instructions that, when executed by at least one computing device, cause the at least one computing device to perform operations for streaming video for a virtual meeting, the operations comprising:
(a) determining a distance between a first user and a second user in the virtual meeting space;
(b) receiving a video stream captured from a camera on the device of the first user, the camera arranged to capture photographic images of the first user;
(c) selecting a reduced resolution or bitrate of the video stream based on the determined distance such that a closer distance results in a higher resolution or bitrate than a greater distance; and
(d) requesting transmission of the video stream at the reduced resolution or bitrate to the device of the second user for display to the second user within the virtual meeting space, wherein the video stream is transmitted within the virtual meeting space mapped onto the first user's avatar for display to the second user.
(e) 제3 사용자의 디바이스 상의 카메라로부터 캡처되는 제2 비디오 스트림을 수신하는 동작 - 상기 카메라는 상기 제3 사용자의 사진 이미지들을 캡처하도록 배치됨 -;
(f) 상기 가상 회의를 위한 데이터를 상기 제2 사용자에게 전송하기 위해 이용 가능한 대역폭을 결정하는 동작;
(g) 가상 회의 공간에서의 제1 사용자와 제2 사용자 사이의 제2 거리를 결정하는 동작; 및
(h) (a)에서 결정되는 상기 거리에 상대적인 (g)에서 결정되는 상기 제2 거리에 기초하여 (b)에서 수신되는 상기 비디오 스트림과 (e)에서 수신되는 상기 제2 비디오 스트림 간에 상기 이용 가능한 대역폭을 배분하는 동작을 더 포함하는, 디바이스.118. The method of claim 117, wherein the operations are:
(e) receiving a second video stream captured from a camera on a third user's device, the camera arranged to capture photographic images of the third user;
(f) determining an available bandwidth for transmitting data for the virtual conference to the second user;
(g) determining a second distance between the first user and the second user in the virtual meeting space; and
(h) the use between the video stream received in (b) and the second video stream received in (e) based on the second distance determined in (g) relative to the distance determined in (a). The device further comprising allocating available bandwidth.
(i) 상기 제1 사용자의 디바이스로부터 제1 오디오 스트림을 수신하는 동작;
(j) 상기 제3 사용자의 디바이스로부터 제2 오디오 스트림을 수신하는 동작을 더 포함하며, 상기 배분하는 동작 (h)는 상기 제1 및 제2 오디오 스트림들의 일 부분을 예약하는 동작을 포함하는, 디바이스.119. The method of claim 118, wherein the operations are:
(i) receiving a first audio stream from the device of the first user;
(j) further comprising receiving a second audio stream from the device of the third user, wherein the distributing (h) includes reserving a portion of the first and second audio streams; device.
(k) 상기 예약된 부분의 크기에 따라 상기 제1 및 제2 오디오 스트림들의 품질을 감소시키는 동작을 더 포함하는, 디바이스.121. The method of claim 120, wherein the actions are:
(k) reducing the quality of the first and second audio streams according to the size of the reserved portion.
(e) 상기 가상 회의 공간에서의 상기 제1 사용자와 상기 제2 사용자 사이의 상기 거리가 상기 거리에서의 비디오의 디스플레이를 비효과적이게 한다고 결정하는 동작;
(e)에서의 상기 결정에 응답하여:
(f) 상기 제2 사용자의 상기 디바이스로의 상기 비디오 스트림의 전송을 중단하는 동작; 및
(g) 상기 비디오 스트림을 정지 이미지로 대체하도록 상기 제2 사용자의 상기 디바이스에 통지하는 동작을 더 포함하는, 디바이스.118. The method of claim 117, wherein the operations are:
(e) determining that the distance between the first user and the second user at the virtual meeting space makes display of video at the distance ineffective;
In response to the determination in (e):
(f) stopping transmission of the video stream to the device of the second user; and
(g) notifying the device of the second user to replace the video stream with a still image.
메모리에 결합되는 프로세서;
제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 네트워크 인터페이스 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 -; 및
가상 회의 공간에서의 제1 사용자와 제2 사용자 사이의 거리를 결정하고, 보다 가까운 거리가 보다 먼 거리보다 더 큰 해상도 또는 비트레이트를 결과하도록 상기 결정된 거리에 기초하여 상기 비디오 스트림의 해상도를 감소시키도록 구성된 스트림 조정기를 포함하며,
상기 네트워크 인터페이스는 상기 가상 회의 공간 내의 상기 제2 사용자에게 디스플레이하기 위해 상기 감소된 해상도의 상기 비디오 스트림을 상기 제2 사용자의 디바이스에게 전송하도록 구성되는 - 상기 비디오 스트림은 상기 가상 회의 공간 내의 상기 제2 사용자에게 디스플레이를 위해 상기 제1 사용자의 아바타 상에 매핑됨 -, 시스템.A system for streaming video for a virtual conference, comprising:
a processor coupled to the memory;
a network interface that receives a video stream captured from a camera on a device of a first user, the camera arranged to capture photographic images of the first user; and
determining a distance between a first user and a second user in a virtual conference space, and reducing the resolution of the video stream based on the determined distance such that a closer distance results in a greater resolution or bitrate than a greater distance A stream conditioner configured to
wherein the network interface is configured to transmit the video stream of the reduced resolution to a device of the second user for display to the second user in the virtual meeting space, wherein the video stream is configured to transmit the video stream to the second user in the virtual meeting space. mapped onto the first user's avatar for display to the user -, system.
상기 스트림 조정기는 (i) 상기 가상 회의를 위한 데이터를 상기 제2 사용자에게 전송하기 위해 이용 가능한 대역폭을 결정하고, (ii) 가상 회의 공간에서의 제1 사용자와 제2 사용자 사이의 제2 거리를 결정하며, (iii) 상기 거리에 상대적인 상기 제2 거리에 기초하여 상기 비디오 스트림과 상기 제2 비디오 스트림 간에 상기 이용 가능한 대역폭을 배분하는, 시스템.126. The method of claim 125, wherein the network interface receives a second video stream captured from a camera on a third user's device, the camera arranged to capture photographic images of the third user;
The stream coordinator (i) determines an available bandwidth for transmitting data for the virtual meeting to the second user, and (ii) determines a second distance between the first user and the second user in the virtual meeting space. and (iii) allocate the available bandwidth between the video stream and the second video stream based on the second distance relative to the distance.
가상 환경의 3차원 모델을 수신하는 단계;
객체의 3차원 모델을 표현하는 메시를 수신하는 단계;
상기 가상 화상 회의의 제1 참가자의 비디오 스트림을 수신하는 단계 - 상기 비디오 스트림은 복수의 프레임들을 포함함 -;
상기 제1 참가자에 의해 내비게이션 가능한 아바타를 생성하기 위해 상기 비디오 스트림의 상기 복수의 프레임들의 각자의 프레임들을 메시에 의해 표현되는 3차원 모델 상으로 매핑하는 단계 - 상기 메시는 상기 비디오 스트림과 무관하게 생성됨 -; 및
제2 참가자의 가상 카메라의 시점으로부터, 상기 제2 참가자를 위해 디스플레이하기 위해 상기 매핑된 아바타 및 상기 가상 환경 내의 상기 객체의 상기 3차원 모델을 표현하는 상기 메시를 렌더링하는 단계를 포함하는, 방법.A computer implemented method for streaming video for a virtual video conference, comprising:
Receiving a 3D model of a virtual environment;
Receiving a mesh representing a 3D model of an object;
receiving a video stream of a first participant of the virtual video conference, the video stream comprising a plurality of frames;
mapping respective frames of the plurality of frames of the video stream onto a three-dimensional model represented by a mesh to create an avatar navigable by the first participant, the mesh being created independent of the video stream. -; and
rendering, from the viewpoint of a second participant's virtual camera, the mesh representing the mapped avatar and the three-dimensional model of the object in the virtual environment for display for the second participant.
상기 가상 회의 공간에서 상기 제품을 시연하는 단계를 더 포함하는, 방법.129. The method of claim 129,
and demonstrating the product at the virtual meeting space.
상기 제2 참가자로부터의 상기 제1 메시에 대한 요청을 전송하는 단계를 더 포함하며, 상기 제1 메시를 수신하는 상기 단계는 상기 요청에 응답하여 발생하는, 방법.130. The method of claim 129, wherein the mesh is a first mesh,
and sending a request for the first mesh from the second participant, wherein the step of receiving the first mesh occurs in response to the request.
상기 3차원 가상 공간에서의 상기 제1 사용자의 위치 및 방향을 수신하는 단계;
상기 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 단계 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 -; 및
상기 비디오 스트림을 아바타의 3차원 모델 상으로 매핑하는 단계를 더 포함하며; 상기 렌더링하는 단계는 상기 위치에 배치되고 상기 방향으로 배향되는 상기 아바타의 매핑된 3차원 모델을 포함하도록 상기 가상 회의를 렌더링하는 단계를 포함하는, 방법.129. The method of claim 129,
receiving the location and direction of the first user in the 3D virtual space;
receiving a video stream captured from a camera on the device of the first user, the camera arranged to capture photographic images of the first user; and
further comprising mapping the video stream onto a three-dimensional model of an avatar; wherein the rendering comprises rendering the virtual meeting to include a mapped three-dimensional model of the avatar positioned at the location and oriented in the orientation.
가상 환경의 3차원 모델을 수신하는 동작;
객체의 3차원 모델을 표현하는 메시를 수신하는 동작;
상기 가상 화상 회의의 제1 참가자의 비디오 스트림을 수신하는 동작 - 상기 비디오 스트림은 복수의 프레임들을 포함함 -;
상기 제1 참가자에 의해 내비게이션 가능한 아바타를 생성하기 위해 상기 비디오 스트림의 상기 복수의 프레임들의 각자의 프레임들을 메시에 의해 표현되는 3차원 모델 상으로 매핑하는 동작 - 상기 메시는 상기 비디오 스트림과 무관하게 생성됨 -; 및
제2 참가자의 가상 카메라의 시점으로부터, 상기 제2 참가자를 위해 디스플레이하기 위해 상기 매핑된 아바타 및 상기 가상 환경 내의 상기 객체의 상기 3차원 모델을 표현하는 상기 메시를 렌더링하는 동작을 포함하는, 비일시적 유형적 컴퓨터 판독 가능 디바이스.A non-transitory tangible computer readable device having stored thereon instructions that, when executed by at least one computing device, cause the at least one computing device to perform operations for streaming video for a virtual meeting, the operations comprising:
receiving a 3D model of the virtual environment;
receiving a mesh representing a 3D model of an object;
receiving a video stream of a first participant of the virtual video conference, the video stream comprising a plurality of frames;
mapping respective frames of the plurality of frames of the video stream onto a three-dimensional model represented by a mesh to create an avatar navigable by the first participant, the mesh being created independent of the video stream. -; and
rendering, from the viewpoint of a second participant's virtual camera, the mesh representing the mapped avatar and the three-dimensional model of the object in the virtual environment for display for the second participant. A tangible computer readable device.
상기 가상 회의 공간에서 상기 제품을 시연하는 동작을 더 포함하는, 비일시적 유형적 컴퓨터 판독 가능 디바이스.138. The method of claim 137, wherein the operations are:
A non-transitory tangible computer-readable device further comprising demonstrating the product in the virtual meeting space.
상기 제2 참가자로부터의 상기 제1 메시에 대한 요청을 전송하는 동작을 더 포함하며, 상기 제1 메시를 수신하는 상기 단계는 상기 요청에 응답하여 발생하는, 비일시적 유형적 컴퓨터 판독 가능 디바이스.137. The method of claim 136, wherein the mesh is a first mesh, and the operations are:
and sending a request for the first mesh from the second participant, wherein the step of receiving the first mesh occurs in response to the request.
상기 3차원 가상 공간에서의 상기 제1 사용자의 위치 및 방향을 수신하는 동작;
상기 제1 사용자의 디바이스 상의 카메라로부터 캡처되는 비디오 스트림을 수신하는 동작 - 상기 카메라는 상기 제1 사용자의 사진 이미지들을 캡처하도록 배치됨 -; 및
상기 비디오 스트림을 아바타의 3차원 모델 상으로 매핑하는 동작을 더 포함하며; 상기 렌더링하는 동작은 상기 위치에 배치되고 상기 방향으로 배향되는 상기 아바타의 매핑된 3차원 모델을 포함하도록 상기 가상 회의를 렌더링하는 동작을 포함하는, 비일시적 유형적 컴퓨터 판독 가능 디바이스.137. The method of claim 136, wherein the operations are:
receiving a location and direction of the first user in the 3D virtual space;
receiving a video stream captured from a camera on the device of the first user, the camera arranged to capture photographic images of the first user; and
further comprising mapping the video stream onto a 3D model of an avatar; Wherein the act of rendering comprises an act of rendering the virtual meeting to include a mapped three-dimensional model of the avatar disposed at the location and oriented in the direction.
메모리에 결합되는 프로세서;
(i) 가상 환경의 3차원 모델, (ii) 객체의 3차원 모델을 표현하는 메시, (iii) 상기 가상 화상 회의의 제1 참가자의 비디오 스트림을 수신하도록 구성된 네트워크 인터페이스 - 상기 비디오 스트림은 복수의 프레임들을 포함함 -;
상기 제1 참가자에 의해 내비게이션 가능한 아바타를 생성하기 위해 상기 비디오 스트림의 상기 복수의 프레임들의 각자의 프레임들을 메시에 의해 표현되는 3차원 모델 상으로 매핑하는 매퍼 - 상기 메시는 상기 비디오 스트림과 무관하게 생성됨 -; 및
제2 참가자의 가상 카메라의 시점으로부터, 상기 제2 참가자를 위해 디스플레이하기 위해 상기 매핑된 아바타 및 상기 가상 환경 내의 상기 객체의 상기 3차원 모델을 표현하는 상기 메시를 렌더링하도록 구성된 렌더러를 포함하는, 시스템.A system for streaming video for virtual videoconferencing, comprising:
a processor coupled to the memory;
(i) a three-dimensional model of a virtual environment, (ii) a mesh representing a three-dimensional model of an object, (iii) a network interface configured to receive a video stream of a first participant of the virtual video conference, the video stream comprising a plurality of contains frames -;
A mapper that maps respective frames of the plurality of frames of the video stream onto a three-dimensional model represented by a mesh to create an avatar navigable by the first participant, the mesh being created independent of the video stream. -; and
a renderer configured to render, from the viewpoint of a second participant's virtual camera, the mesh representing the mapped avatar and the three-dimensional model of the object in the virtual environment for display for the second participant. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020237026431A KR20230119261A (en) | 2020-10-20 | 2021-10-20 | A web-based videoconference virtual environment with navigable avatars, and applications thereof |
Applications Claiming Priority (15)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/075,390 | 2020-10-20 | ||
US17/075,454 US11457178B2 (en) | 2020-10-20 | 2020-10-20 | Three-dimensional modeling inside a virtual video conferencing environment with a navigable avatar, and applications thereof |
US17/075,428 | 2020-10-20 | ||
US17/075,408 US11070768B1 (en) | 2020-10-20 | 2020-10-20 | Volume areas in a three-dimensional virtual conference space, and applications thereof |
US17/075,408 | 2020-10-20 | ||
US17/075,428 US11076128B1 (en) | 2020-10-20 | 2020-10-20 | Determining video stream quality based on relative position in a virtual space, and applications thereof |
US17/075,362 US11095857B1 (en) | 2020-10-20 | 2020-10-20 | Presenter mode in a three-dimensional virtual conference space, and applications thereof |
US17/075,338 | 2020-10-20 | ||
US17/075,338 US10979672B1 (en) | 2020-10-20 | 2020-10-20 | Web-based videoconference virtual environment with navigable avatars, and applications thereof |
US17/075,390 US10952006B1 (en) | 2020-10-20 | 2020-10-20 | Adjusting relative left-right sound to provide sense of an avatar's position in a virtual space, and applications thereof |
US17/075,454 | 2020-10-20 | ||
US17/075,362 | 2020-10-20 | ||
US17/198,323 US11290688B1 (en) | 2020-10-20 | 2021-03-11 | Web-based videoconference virtual environment with navigable avatars, and applications thereof |
US17/198,323 | 2021-03-11 | ||
PCT/US2021/055875 WO2022087147A1 (en) | 2020-10-20 | 2021-10-20 | A web-based videoconference virtual environment with navigable avatars, and applications thereof |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237026431A Division KR20230119261A (en) | 2020-10-20 | 2021-10-20 | A web-based videoconference virtual environment with navigable avatars, and applications thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220160699A true KR20220160699A (en) | 2022-12-06 |
KR102580110B1 KR102580110B1 (en) | 2023-09-18 |
Family
ID=81289363
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237026431A KR20230119261A (en) | 2020-10-20 | 2021-10-20 | A web-based videoconference virtual environment with navigable avatars, and applications thereof |
KR1020227039238A KR102580110B1 (en) | 2020-10-20 | 2021-10-20 | Web-based video conferencing virtual environment with navigable avatars and its applications |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237026431A KR20230119261A (en) | 2020-10-20 | 2021-10-20 | A web-based videoconference virtual environment with navigable avatars, and applications thereof |
Country Status (9)
Country | Link |
---|---|
EP (1) | EP4122192A1 (en) |
JP (2) | JP7318139B1 (en) |
KR (2) | KR20230119261A (en) |
CN (1) | CN116018803A (en) |
AU (2) | AU2021366657B2 (en) |
BR (1) | BR112022024836A2 (en) |
CA (1) | CA3181367C (en) |
IL (2) | IL308489A (en) |
WO (1) | WO2022087147A1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11928774B2 (en) | 2022-07-20 | 2024-03-12 | Katmai Tech Inc. | Multi-screen presentation in a virtual videoconferencing environment |
WO2024020452A1 (en) * | 2022-07-20 | 2024-01-25 | Katmai Tech Inc. | Multi-screen presentation in a virtual videoconferencing environment |
WO2024020562A1 (en) * | 2022-07-21 | 2024-01-25 | Katmai Tech Inc. | Resituating virtual cameras and avatars in a virtual environment |
WO2024053845A1 (en) * | 2022-09-08 | 2024-03-14 | 삼성전자주식회사 | Electronic device and method for providing content sharing based on object |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070119018A (en) * | 2005-02-23 | 2007-12-18 | 크레이그 써머스 | Automatic scene modeling for the 3d camera and 3d video |
US20150215351A1 (en) * | 2014-01-24 | 2015-07-30 | Avaya Inc. | Control of enhanced communication between remote participants using augmented and virtual reality |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7576766B2 (en) * | 2005-06-30 | 2009-08-18 | Microsoft Corporation | Normalized images for cameras |
US20110225039A1 (en) * | 2010-03-10 | 2011-09-15 | Oddmobb, Inc. | Virtual social venue feeding multiple video streams |
WO2013119802A1 (en) * | 2012-02-11 | 2013-08-15 | Social Communications Company | Routing virtual area based communications |
US20130321564A1 (en) * | 2012-05-31 | 2013-12-05 | Microsoft Corporation | Perspective-correct communication window with motion parallax |
US8994780B2 (en) | 2012-10-04 | 2015-03-31 | Mcci Corporation | Video conferencing enhanced with 3-D perspective control |
WO2018226508A1 (en) * | 2017-06-09 | 2018-12-13 | Pcms Holdings, Inc. | Spatially faithful telepresence supporting varying geometries and moving users |
US11553158B2 (en) | 2018-11-09 | 2023-01-10 | Sony Group Corporation | Information processing apparatus, information processing method, and program |
JP6684952B1 (en) | 2019-06-28 | 2020-04-22 | 株式会社ドワンゴ | Content distribution device, content distribution program, content distribution method, content display device, content display program, and content display method |
-
2021
- 2021-10-20 KR KR1020237026431A patent/KR20230119261A/en active Application Filing
- 2021-10-20 IL IL308489A patent/IL308489A/en unknown
- 2021-10-20 EP EP21807405.2A patent/EP4122192A1/en active Pending
- 2021-10-20 WO PCT/US2021/055875 patent/WO2022087147A1/en unknown
- 2021-10-20 JP JP2022562717A patent/JP7318139B1/en active Active
- 2021-10-20 AU AU2021366657A patent/AU2021366657B2/en active Active
- 2021-10-20 CA CA3181367A patent/CA3181367C/en active Active
- 2021-10-20 IL IL298268A patent/IL298268B2/en unknown
- 2021-10-20 CN CN202180037563.6A patent/CN116018803A/en active Pending
- 2021-10-20 KR KR1020227039238A patent/KR102580110B1/en active IP Right Grant
- 2021-10-20 BR BR112022024836A patent/BR112022024836A2/en not_active Application Discontinuation
-
2023
- 2023-07-19 JP JP2023117467A patent/JP2023139110A/en active Pending
- 2023-09-14 AU AU2023229565A patent/AU2023229565B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070119018A (en) * | 2005-02-23 | 2007-12-18 | 크레이그 써머스 | Automatic scene modeling for the 3d camera and 3d video |
US20150215351A1 (en) * | 2014-01-24 | 2015-07-30 | Avaya Inc. | Control of enhanced communication between remote participants using augmented and virtual reality |
Also Published As
Publication number | Publication date |
---|---|
IL298268B2 (en) | 2024-05-01 |
CN116018803A (en) | 2023-04-25 |
AU2021366657B2 (en) | 2023-06-15 |
CA3181367C (en) | 2023-11-21 |
AU2023229565B2 (en) | 2024-08-15 |
WO2022087147A1 (en) | 2022-04-28 |
IL308489A (en) | 2024-01-01 |
KR20230119261A (en) | 2023-08-16 |
CA3181367A1 (en) | 2022-04-28 |
AU2023229565A1 (en) | 2023-10-05 |
BR112022024836A2 (en) | 2023-05-09 |
IL298268B1 (en) | 2024-01-01 |
IL298268A (en) | 2023-01-01 |
EP4122192A1 (en) | 2023-01-25 |
JP2023534092A (en) | 2023-08-08 |
JP7318139B1 (en) | 2023-07-31 |
JP2023139110A (en) | 2023-10-03 |
AU2021366657A1 (en) | 2022-12-08 |
KR102580110B1 (en) | 2023-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11290688B1 (en) | Web-based videoconference virtual environment with navigable avatars, and applications thereof | |
US10952006B1 (en) | Adjusting relative left-right sound to provide sense of an avatar's position in a virtual space, and applications thereof | |
US11076128B1 (en) | Determining video stream quality based on relative position in a virtual space, and applications thereof | |
US11095857B1 (en) | Presenter mode in a three-dimensional virtual conference space, and applications thereof | |
US11070768B1 (en) | Volume areas in a three-dimensional virtual conference space, and applications thereof | |
US12081908B2 (en) | Three-dimensional modeling inside a virtual video conferencing environment with a navigable avatar, and applications thereof | |
US11184362B1 (en) | Securing private audio in a virtual conference, and applications thereof | |
US11743430B2 (en) | Providing awareness of who can hear audio in a virtual conference, and applications thereof | |
KR102580110B1 (en) | Web-based video conferencing virtual environment with navigable avatars and its applications | |
US11700354B1 (en) | Resituating avatars in a virtual environment | |
US11741674B1 (en) | Navigating a virtual camera to a video avatar in a three-dimensional virtual environment, and applications thereof | |
US12028651B1 (en) | Integrating two-dimensional video conference platforms into a three-dimensional virtual environment | |
US20240029340A1 (en) | Resituating virtual cameras and avatars in a virtual environment | |
US11928774B2 (en) | Multi-screen presentation in a virtual videoconferencing environment | |
US11748939B1 (en) | Selecting a point to navigate video avatars in a three-dimensional environment | |
US20240031531A1 (en) | Two-dimensional view of a presentation in a three-dimensional videoconferencing environment | |
US20240007593A1 (en) | Session transfer in a virtual videoconferencing environment | |
WO2024020452A1 (en) | Multi-screen presentation in a virtual videoconferencing environment | |
EP4309361A1 (en) | Securing private audio in a virtual conference, and applications thereof | |
WO2024059606A1 (en) | Avatar background alteration | |
WO2024020562A1 (en) | Resituating virtual cameras and avatars in a virtual environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |