A user device and a server provide a VR experience service to a user without significant interruption in response to a user's movement. In particular, the server may create a stitched image of a 360-degree video of a predetermined virtual environment according to a user movement state and transmit the stitched image to a user device. The user device may i) receive, from a server through a wireless link, a stitched image of a 360-degree video of a predetermined virtual environment which is dynamically changed according to a user movement state and ii) render a stereoscopic image at a user's view-point which is dynamically changed according to a user's head movement, using the received stitched image of the 360-degree view of the predetermined virtual environment.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for providing, by a server, a virtual reality service to a user device, the method comprising: receiving user tracking information from the user device; creating a plurality of virtual cameras as a series of code sets with parameters and attributes and setting up the plurality of virtual cameras at predetermined locations corresponding to a user location in a predetermined virtual space based on the user tracking information by setting up different parameters and attributes of each virtual camera; determining a user movement state based on the user tracking information; controlling an operation state and a resolution of each of the plurality of virtual cameras based on the determined user movement state; rendering images of each of the plurality of virtual cameras based on the controlled operation state and the controlled resolution; stitching the rendered images of the plurality of virtual cameras; and transmitting the stitched images to the user device.
2. The method of claim 1 , wherein the predetermined virtual space is a virtual space created with three-dimensional graphic images generated by the server.
3. The method of claim 1 , wherein the plurality of virtual cameras include: an up virtual camera facing an up-direction from the user location in the virtual space for capturing an up-image of the virtual space that a user looks upwards at the user location in the virtual space; a down virtual camera facing a down-direction from the user location in the virtual space for capturing a down-image that the user looks downward from the user location; a left virtual camera facing a left-direction from the user location in the virtual space for capturing a left image that the user looks left from the user location; a right virtual camera facing a right-direction from the user location in the virtual space for capturing a right image that the user looks right from the user location; a front virtual camera facing a front-direction from the user location in the virtual space for capturing a front image that the user looks front from the user location; and a back virtual camera facing a back-direction from the user location in the virtual space for capturing a back image that the user looks back from the user location.
4. The method of claim 1 , wherein the user tracking information includes at least one of a position value, a rotational velocity, an acceleration value, and an angular velocity.
5. The method of claim 1 , wherein the determining a user movement state comprises: calculating a traveling speed of a user based on the user tracking information; and determining the user movement state as one of a walk-through state and a stay-still state based on a calculation result.
6. The method of claim 3 , further comprising controlling the plurality of virtual cameras comprises: when the user movement state indicates a walk-through state, controlling the back virtual camera to be turned off.
7. The method of claim 3 , further comprising controlling the plurality of virtual cameras comprises: when the user movement state indicates a walk-through state, controlling at least one of resolutions of the up virtual camera, the down virtual camera, the left virtual camera, and the right virtual camera to be lower than that of the front virtual camera.
8. The method of claim 3 , further comprising controlling the plurality of virtual cameras comprises: when the user movement state indicates a walk-through state, controlling at least one of resolutions of the up virtual camera, the down virtual camera, the left virtual camera, and the right virtual camera to be in inverse proportion to a travelling speed of the user.
9. The method of claim 3 , further comprising controlling the plurality of virtual cameras comprises: when the user movement state indicates a stay-still state, controlling all of the up virtual camera, the down virtual camera, the left virtual camera, the right virtual camera, the front virtual camera, and the back virtual camera to be turned on.
10. A user device for providing a virtual reality experience server to a user, the user device comprising: a communication circuit configured to communicate with a server and at least one motion tracking device through a communication network; a memory configured to store information received from at least one of the server and the motion tracking device and information generated by performing operations; and a processor configured to generate user tracking information that indicates a user movement state by controlling information from at least one of internal sensors and motion tracking devices and transmit the user tracking information to the server through the communication circuit, generate head tracking information that indicates a head movement state of the user using the internal sensors, receive a stitched image for a 360-degree image of a predetermined virtual space from the server; render a user-viewpoint image according to the head tracking information using the received stitched image, and display the rendered user-viewpoint image on a display, wherein the server creates the 360-degree image of the predetermined virtual space by i) creating a plurality of virtual cameras as a series of code sets with parameters and attributes and ii) setting up the plurality of virtual cameras at predetermined locations corresponding to a user location in the predetermined virtual space based on the user tracking information by setting up different parameters and attributes of each virtual camera.
11. The user device of claim 10 , wherein the stitched image is a stitched texture data generated by the server for enabling the user device to generate the 360-degree image of the predetermined virtual space.
12. The user device of claim 10 , wherein the processor is configured to: generate the 360-degree image of the virtual space by performing equirectangular texturing on a sphere mesh using the stitched image; render stereo-pair images of a user's viewpoint in the 360-degree image of the virtual space whenever head movement is detected based on the head tracking information.
13. The user device of claim 12 , wherein to render stereo-pair image, the processor is configured to perform i) a stereo rendering operation based on the head tracking information and ii) a lens-warping operation on the rendering.
14. The user device of claim 12 , the processor is configured to: obtain a user's coordinate from the head tracking information; determine a viewpoint of the virtual camera corresponding to the viewpoint of the user in the 360-degree image of the virtual space; and render images captured by the virtual camera based on the determined viewpoint, as a stereoscopic pair image.
15. A server for providing, by the server, a virtual reality service to a user device, the server comprising: a communication circuit configured to communicate with the user device and at least one motion tracking device through a communication network; a memory configured to store information received from at least one of the user device and the motion tracking device and information generated by performing operations; and a processor configured to receive user tracking information from the user device through the communication circuit; create a plurality of virtual cameras as a series of code sets with parameters and attributes and set up the plurality of virtual cameras at predetermined locations corresponding to a user location in a predetermined virtual space based on the user tracking information by setting up different parameters and attributes of each virtual camera; determine a user movement state based on the user tracking information; control an operation state and a resolution of each of the plurality of virtual cameras based on the determined user movement state; render images of each of the plurality of virtual cameras based on the controlled operation state and the controlled resolution; stitch the rendered images of the plurality of virtual cameras; and transmit the stitched images to the user device.
16. The server of claim 15 , wherein the plurality of virtual cameras include: an up virtual camera facing an up-direction from the user location in the virtual space for capturing an up-image of the virtual space that a user looks upwards at the user location in the virtual space; a down virtual camera facing a down-direction from the user location in the virtual space for capturing a down-image that the user looks downward from the user location; a left virtual camera facing a left-direction from the user location in the virtual space for capturing a left image that the user looks left from the user location; a right virtual camera facing a right-direction from the user location in the virtual space for capturing a right image that the user looks right from the user location; a front virtual camera facing a front-direction from the user location in the virtual space for capturing a front image that the user looks front from the user location; and a back virtual camera facing a back-direction from the user location in the virtual space for capturing a back image that the user looks back from the user location.
17. The server of claim 16 , wherein the processor is configured to: when the user movement state indicates a walk-through state, control the back virtual camera to be turned off.
18. The server of claim 16 , wherein the processor is configured to: when the user movement state indicates a walk-through state, control at least one of resolutions of the up virtual camera, the down virtual camera, the left virtual camera, and the right virtual camera to be lower than that of the front virtual camera.
19. The server of claim 16 , wherein the processor is configured to: when the user movement state indicates a walk-through state, control at least one of resolutions of the up virtual camera, the down virtual camera, the left virtual camera, and the right virtual camera to be in inverse proportion to a travelling speed of the user.
20. The server of claim 16 , wherein the processor is configured to: when the user movement state indicates a stay-still state, control all of the up virtual camera, the down virtual camera, the left virtual camera, the right virtual camera, the front virtual camera, and the back virtual camera to be turned on.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
June 19, 2018
August 25, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.