IP Library Granted Patent US 10,831,333
Granted Patent B2
US 10,831,333 · App. 15/660,284 · Granted Nov 10, 2020

Manipulating a camera perspective within a three-dimensional space

Inventors: Jonathan Eisenmann (San Francisco, CA); Bushra Mahmood (San Francisco, CA)
Assignee: ADOBE INC.
G06F3/04815G06T15/20G06T19/003G06T19/006G06T19/20G06T2200/24G06T2219/2004
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,831,333
App. No.
15/660,284
Granted
Nov 10, 2020
Kind
B2
Abstract

The present disclosure is directed toward systems and methods for manipulating a camera perspective within a digital environment for rendering three-dimensional objects against a background digital image. In particular, the systems and methods described herein display a view of a three-dimensional space including a horizon, a ground plane, and a three-dimensional object in accordance with a camera perspective of the three-dimensional space. The systems and methods further manipulate the camera perspective in response to, and in accordance with, user interaction with one or more options. The systems and methods manipulate the camera perspective relative to the three-dimensional space and thereby change the view of the three-dimensional space within a user interface.

Claims (78)

1. In a digital medium environment for rendering a three-dimensional object against a background comprising a digital image, a computer-implemented method of manipulating a camera perspective relative to a three-dimensional space comprising the three-dimensional object, the method comprising:

analyzing, by a processor of a camera perspective system, a background digital image to identify traits of the background digital image;

determining, by the processor of the camera perspective system and based on the traits of the background digital image, an alignment for rendering a horizon relative to the background digital image;

displaying, overlaid against the background digital image, a viewable portion of a three-dimensional space that is visible from a camera perspective of the three-dimensional space, the three-dimensional space extending beyond the viewable portion and comprising the horizon spanning the three-dimensional space and positioned according to the alignment relative to the background digital image, a ground plane extending from the horizon, and a three-dimensional object positioned relative to the ground plane;

providing, to a user by way of a user interface, a plurality of options for manipulating the camera perspective of the three-dimensional space to adjust the viewable portion of the three-dimensional space overlaid against the background digital image;

receiving a user interaction with one of the plurality of options for manipulating the camera perspective of the three-dimensional space; and

manipulating, in response to and in accordance with the user interaction, the camera perspective of the three-dimensional space to adjust the viewable portion of the three-dimensional space relative to the horizon, the ground plane, and the three-dimensional object of the three-dimensional space.

2. The computer-implemented method of claim 1 , wherein manipulating the camera perspective relative to the three-dimensional space comprises changing at least one of a positional coordinate of the camera perspective or a rotational coordinate of the camera perspective.

3. The computer-implemented method of claim 2 , wherein:

the positional coordinate comprises a positional x-axis value, a positional y-axis value, and a positional z-axis value; and

the rotational coordinate comprises a rotational x-axis value, a rotational y-axis value, and a rotational z-axis value.

4. The computer-implemented method of claim 3 , wherein:

the positional x-axis value comprises a first Cartesian coordinate value defining a position relative to an x-axis, wherein the x-axis is a horizontal axis;

the positional y-axis value comprises a second Cartesian coordinate value defining a position relative to a y-axis, wherein the y-axis is a vertical axis perpendicular to the x-axis;

the positional z-axis value comprises a third Cartesian coordinate value defining a position relative to a z-axis, wherein the z-axis is perpendicular to both the x-axis and the y-axis;

the rotational x-axis value comprises a first number of radians defining a first angle along a direction of the x-axis;

the rotational y-axis value comprises a second number of radians defining a second angle along a direction of the y-axis; and

the rotational z-axis value comprises a third number of radians defining a third angle along a direction of the z-axis.

5. The computer-implemented method of claim 4 , wherein:

providing the plurality of options for manipulating the camera perspective comprises providing an option for manipulating a pitch of the camera perspective;

the user interaction comprises an interaction with the option for manipulating the pitch of the camera perspective; and

manipulating the camera perspective relative to the three-dimensional space comprises changing the pitch of the camera perspective.

6. The computer-implemented method of claim 5 , wherein changing the pitch of the camera perspective comprises:

changing the rotational coordinate of the camera perspective to change a vertical position of the horizon, the ground plane, and the three-dimensional object within the viewable portion of the three-dimensional space; and

maintaining the positional coordinate of the camera perspective.

7. The computer-implemented method of claim 6 , wherein:

providing the plurality of options for manipulating the camera perspective comprises providing an option for manipulating a roll of the camera perspective;

the user interaction comprises an interaction with the option for manipulating the roll of the camera perspective; and

manipulating the camera perspective relative to the three-dimensional space comprises changing the roll of the camera perspective.

8. The computer-implemented method of claim 7 , wherein changing the roll of the camera perspective comprises:

changing the rotational coordinate of the camera perspective to rotate the horizon, the ground plane, and the three-dimensional object within the viewable portion of the three-dimensional space; and

changing the positional coordinate of the camera perspective to maintain a coherent viewing perspective of the horizon, the ground plane, and the three-dimensional object.

9. The computer-implemented method of claim 8 , wherein changing the rotational coordinate of the camera perspective to rotate the horizon, the ground plane, and the three-dimensional object within the viewable portion of the three-dimensional space comprises pivoting the camera perspective about a point where the horizon meets an edge of the user interface.

10. The computer-implemented method of claim 4 , wherein:

providing the plurality of options for manipulating the camera perspective comprises providing an option for manipulating a yaw of the camera perspective;

the user interaction comprises an interaction with the option for manipulating the yaw of the camera perspective; and

manipulating the camera perspective relative to the three-dimensional space comprises changing the yaw of the camera perspective.

11. The computer-implemented method of claim 10 , wherein changing the yaw of the camera perspective comprises:

changing the positional coordinate and the rotational coordinate of the camera perspective to revolve the camera perspective about the y-axis around the three-dimensional object to maintain both a vertical position and a horizontal position of the horizon, the ground plane, and the three-dimensional object within the viewable portion of the three-dimensional space and to change an orientation of the ground plane and the three-dimensional object within the viewable portion of the three-dimensional space as the camera perspective revolves around the three-dimensional object.

12. The computer-implemented method of claim 10 , wherein:

changing the positional coordinate comprises:

changing the positional x-axis value and the positional z-axis value to revolve the camera perspective about the y-axis around the three-dimensional object, and

maintaining the positional y-axis value to maintain the vertical position of the horizon, the ground plane, and the three-dimensional object; and

changing the rotational coordinate comprises:

changing the rotational x-axis value, the rotational y-axis value, and the rotational z-axis value to, as the camera perspective revolves around the three-dimensional object, maintain both the vertical position and the horizontal position of the horizon, the ground plane, and the three-dimensional object within the viewable portion of the three-dimensional space and to change the orientation of the ground plane and the three-dimensional object within the viewable portion of the three-dimensional space, thereby changing a viewable portion of the three-dimensional object.

13. The computer-implemented method of claim 4 , wherein:

providing the plurality of options for manipulating the camera perspective comprises providing an option for manipulating an altitude of the camera perspective;

the user interaction comprises an interaction with the option for manipulating the altitude of the camera perspective; and

manipulating the camera perspective relative to the three-dimensional space comprises changing the altitude of the camera perspective.

14. The computer-implemented method of claim 13 , wherein changing the altitude of the camera perspective comprises:

changing the positional coordinate of the camera perspective by changing the positional y-axis value to move the ground plane and the three-dimensional object in a vertical direction within the viewable portion of the three-dimensional space and to maintain a vertical position of the horizon within the viewable portion of the three-dimensional space, thereby changing a viewable portion of the three-dimensional object; and

maintaining the rotational coordinate of the camera perspective.

15. The computer-implemented method of claim 1 , further comprising:

detecting that the horizon spanning the three-dimensional space is outside of the viewable portion of the three-dimensional space;

providing, in response to detecting that the horizon is outside of the viewable portion, an indication that the horizon is outside of the viewable portion; and

providing, by way of the user interface and in further response to detecting that the horizon is outside of the viewable portion, one or more off-screen options for manipulating the camera perspective relative to the three-dimensional space.

16. A system for manipulating a camera perspective relative to a three-dimensional space comprising a three-dimensional object, the system comprising:

at least one processor;

a memory comprising:

background digital image data; and

three-dimensional space data; and

a server device comprising instructions thereon that, when executed by the at least one processor, cause the server device to:

analyze, by a processor of a camera perspective system, a background digital image to identify traits of the background digital image;

determine, by the processor of the camera perspective system and based on the traits of the background digital image, an alignment for rendering a horizon relative to the background digital image;

display, overlaid against the background digital image, a viewable portion of a three-dimensional space that is visible from a camera perspective of the three-dimensional space, the three-dimensional space extending beyond the viewable portion and comprising the horizon spanning the three-dimensional space and positioned according to the alignment relative to the background digital image, a ground plane extending from the horizon, and a three-dimensional object positioned relative to the ground plane;

provide, to a user by way of a user interface, a plurality of options for manipulating the camera perspective of the three-dimensional space to adjust the viewable portion of the three-dimensional space overlaid against the background image;

receive a user interaction with one of the plurality of options for manipulating the camera perspective of the three-dimensional space; and

manipulate, in response to and in accordance with the user interaction, the camera perspective of the three-dimensional space to adjust the viewable portion of the three-dimensional space relative to the horizon, the ground plane, and the three-dimensional object of the three-dimensional space.

17. A non-transitory computer readable medium comprising instructions that, when executed by at least one processor, cause a computing device to:

analyze, by a processor of a camera perspective system, a background digital image to identify traits of the background digital image;

determine, by the processor of the camera perspective system and based on the traits of the background digital image, an alignment for rendering a horizon relative to the background digital image;

display, overlaid against the background digital image, a viewable portion of a three-dimensional space that is visible from a camera perspective of the three-dimensional space, the three-dimensional space extending beyond the viewable portion and comprising the horizon spanning the three-dimensional space and positioned according to the alignment relative to the background digital image, a ground plane extending from the horizon, and a three-dimensional object positioned relative to the ground plane;

provide, to a user by way of a user interface, a plurality of options for manipulating the camera perspective of the three-dimensional space to adjust the viewable portion of the three-dimensional space overlaid against the background image;

receive a user interaction with one of the plurality of options for manipulating the camera perspective of the three-dimensional space; and

manipulate, in response to and in accordance with the user interaction, the camera perspective of the three-dimensional space to adjust the viewable portion of the three-dimensional space relative to the horizon, the ground plane, and the three-dimensional object of the three-dimensional space.

18. The non-transitory computer readable medium of claim 17 , further comprising instructions that, when executed by the at least one processor, cause the computing device to manipulate the camera perspective relative to the three-dimensional space by changing at least one of a positional coordinate of the camera perspective or a rotational coordinate of the camera perspective.

19. The non-transitory computer readable medium of claim 17 , further comprising instructions that, when executed by the at least one processor, cause the computing device to provide the plurality of options for manipulating the camera perspective by providing an option for manipulating a pitch of the camera perspective.

20. The non-transitory computer readable medium of claim 17 , further comprising instructions that, when executed by the at least one processor, cause the computing device to provide the plurality of options for manipulating the camera perspective by providing an option for manipulating a roll of the camera perspective.

Assignments (2)
CHANGE OF NAME Recorded Nov 30, 2018
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 047688/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2017
From: EISENMANN, JONATHAN; MAHMOOD, BUSHRA
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 043103/0385 →
Cited By (1)
US 12,387,304