This disclosure relates to arranging scenes of animated content to simulate three-dimensionality in the scenes presented via a two-dimensional display by positionally shifting objects corresponding to different depth layers of the scenes relative to each other, wherein the positional shift is based on a position and/or orientation of the display presenting the scenes relative to a user's view perspective of the display.
Animated content may be presented on two-dimensional displays of computing platforms (e.g., flat-screen displays). Animators may wish to create content in a manner to simulate three dimensional (“3D”) effects. Generating these effects may require substantial processing power and may not be suitable for all viewing situations. For example, mobile computing platforms such as smartphones or tables may not have requisite processing capabilities to facilitate three-dimensionality in presented scenes. As another example, viewing 3D scenes may require users to wear special glasses, which may be cumbersome, inconvenient, and/or otherwise undesirable.
One aspect of the disclosure relates to a system for arranging scenes of animated content to simulate three-dimensionality effects using one or more low processing cost techniques. One or more effects may be accomplished by shifting objects corresponding to different depth layers of the scenes relative to each other based on a position and/or orientation of a display of a computing platform presenting the scenes relative a user's perspective of the display.
In some implementations, the system may comprise one or more physical processor configured by machine-readable instructions. The machine-readable instructions may comprise one or more of a layer component, a relative projection component, a shift component, an arranging component, and/or other components.
The layer component may be configured to associate objects in the scenes of the animated content with discrete layers. The layers may correspond to depth positions of the objects within the scenes. In some implementations, individual layers may correspond to different depths of simulated depth-of-field within the scenes. By way of non-limiting example, a first object of a first scene may be associated with a first layer. A second object of the first scene may be associated with a second layer. The first layer may correspond to a first depth of a simulated depth-of-field of the first scene. The second layer may correspond to a second depth of the simulated depth-of-field of the first scene.
The relative projection component may be configured to determine relative projection information for individual ones of the scenes. The relative projection information may convey one or both of position and/or orientation of a display of a computing platform presenting the scenes relative to a user's perspective of the display. By way of non-limiting example, relative projection information may include first relative projection information associated with a first scene. The first relative projection information may convey one or more changes in the user's perspective of the display while viewing the first scene.
The shift component may be configured to determine relative positions of the objects in layers of the scenes based on the relative projection information. The shift component may be configured to determine other property changes to the objects in the scenes based on the relative projection information. By way of non-limiting example, the shift component may be configured to determine that the first object may positionally shift in relation to the second object responsive to a change in the user's perspective of the display while viewing the first scene. By way of non-limiting example, the positional shift and/or other property changes may facilitate simulating three-dimensionality of the first scene.
The arranging component may be configured to arrange the scenes based on the determined relative positions. By way of non-limiting example, the first scene may be arranged based on the determined positional shift of the first object relative the second object. In some implementations, views of the arranged scenes may be accessible by user via computing platforms associated with the users.
These and other features, and characteristics of the present technology, as well as the methods of operation and functions of the related elements of structure and the combination of parts and economies of manufacture, will become more apparent upon consideration of the following description and the appended claims with reference to the accompanying drawings, all of which form a part of this specification, wherein like reference numerals designate corresponding parts in the various figures. It is to be expressly understood, however, that the drawings are for the purpose of illustration and description only and are not intended as a definition of the limits of the invention. As used in the specification and in the claims, the singular forms of “a”, “an”, and “the” include plural referents unless the context clearly dictates otherwise.
In some implementations, three-dimensionality may be simulated by changing properties of objects within the scenes relative to each other. In some implementations, properties of an object may include one or more of a position within a layer of the scene, a simulated depth position, a size, an orientation, a simulated material property, and/or other properties of objects. In some implementations, the relative changes may be determined based on a position and/or orientation of a display of a computing platform presenting the scenes relative to a user's perspective of the display. User perspective may be associated with one or more of a distance of the user from the display, a viewing angle of the user relative the display, an orientation of the display, and/or other information.
By way of non-limiting example, by tilting a computing platform and/or otherwise changing an orientation of a display of the computing platform, the user's perspective of the display may change. These changes may result in property changes of one or more objects being effectuated throughout one or more frames of a scene. By way of non-limiting example, a change in the user's viewing perspective may cause one or more objects to positionally shift relative to other objects, and/or other changes. In some implementations, a positional shift may cause one or more surfaces of one or more objects that may have been occluded prior to the perspective change to subsequently be uncovered. In some implementations, a user may see partially around the sides of objects, observe parallax effects, observe dis-occlusions, and/or other three-dimensional effects. By way of non-limiting example, a positional shift may allow a user to “look around” objects presented in a scene.
In some implementations, individual ones of one or more objects depicted in one or more frames of a scene may be associated with a different depth layer of the scene. In some implementations, changing position, size, orientation, material properties, and/or other property of objects relative to each other may comprise changing properties of objects associated with a particular layer relative to objects associated with another layer. Depth layers may correspond to different depths in a simulated depth-of-field of the scenes. By way of non-limiting example, a foreground object presented in a scene may be associated with a layer having a closer simulated depth within a depth-of-field of a scene than a simulated depth of a layer associated with a background object. By way of non-limiting example, a middle ground object may be associated with a layer having a simulated depth within a depth-of-field of the scene that may be between simulated depths of a foreground object's layer and a background object's layer. In some implementations, objects in a scene may move between different simulated depth layers over the course of a scene (e.g., convey motion from a foreground position to a background position).
By way of non-limiting illustration,
Returning to
The server 102 may include one or more physical processors 104 and/or other physical components. The one or more physical processors 104 may be configured by machine-readable instructions 105. The machine-readable instructions 105 may comprise one or more of a layer component 106, a relative projection component 108, a shift component 110, an arranging component 112, and/or other components. Execution of the machine-readable instructions 105 may facilitate arranging scenes of animated content for presentation to users at computing platforms 118. In some implementations, information defining views and/or other information associated with the scenes of the animated content may be communicated (e.g., via streaming visual data, object/position data, and/or other state information) from server 102 to the computing platforms 118 for presentation on the computing platforms 118 via client/server architecture, and/or other communication scheme.
In some implementations, some or all of the functionality of server 102 may be attributed to computing platforms 118. By way of non-limiting example, in some implementations, the animated content may be hosted locally at the computing platforms 118 associated with the users. The computing platforms 118 may be configured by machine-readable instructions to arrange and/or present view of scenes of the animated content using information stored by and/or local to the computing platforms 118 (e.g., a cartridge, disk, a memory card/stick, flash memory, electronic storage, and/or other storage), and/or other information.
In some implementations, the layer component 106 may be configured to associate objects in the scenes of the animated content with discrete layers according to corresponding depth positions of the objects. Individual layers may correspond to different depths of simulated depth-of-field within the scenes (see, e.g.,
In some implementations, association of one or more objects with a layer may be determined and/or derived from the animated content after it has been created. That is, the source code and/or metadata of the animated content may or may not indicate object/layer associations and/or object/layer association may be determined in other ways. By way of non-limiting example, the layer component 106 may be configured to determine and/or derive object/layer associations based on the source code, presented views of the scenes, and/or other information. In some implementations, the layer component 106 may be configured to determine which objects within a frame and/or scene may be represented at different depths of a simulated depth-of-field within the view of the frame and/or scene. In some implementations, a human user may carry out one or more association tasks. By way of non-limiting example, a human user may watch the animated content and manually determine associations between one or more objects and layers based on a frame by frame and/or scene by scene viewing of the content.
In some implementations, the layer component 106 may be configured to associate within a given frame one or more layers, wherein individual ones of the layers may contain a given number of partly transparent areas. In some implementations, to reduce bandwidth and/or storage costs, areas which may be transparent across one or more layers may be identified in order to determine a series of areas that may minimally contain non-transparent pixels and/or may contain only transparent pixels. A bin-packing algorithm and/or other technique may be used to calculate an efficient placement of these non-transparent pixels, creating a single “collage” sequence containing all non-transparent pixel sections for individual ones of the layers. Metadata (e.g., from an XML source) may encode the relative displacement of the layers along the depth-of-field axis, and/or the static placement of these areas. In some implementations, transparent area determinations may be adjusted in real-time according to a playback scenario.
By way of illustration in
Returning to
User perspective may be determined in a variety of ways. In some implementations, user perspective relative a computing platform 118 may be accomplished by pose tracking, eye tracking, gaze tracking, face tracking, and/or other techniques. One or more techniques for determining user perspective may employ a camera and/or other imaging device included with or coupled to a computing platform 118. By way of non-limiting example, determining user perspective may be accomplished using a head-coupled perspective technique (HCP) such as the i3D application employed in iOS devices and/or other techniques.
In some implementations, user perspective may be determined based on sensor output from one or more orientation sensors, position sensors, accelerometers, and/or other sensors included in or coupled to the computing platform 118. By way of non-limiting example, assuming a “regular” and/or target viewing pose and/or orientation of a viewing user (e.g., a common viewing distances, viewing angle, and/or position of user viewing content on a display), by determining an orientation of a display of the computing platform 118 in three-dimensional space, a position and/or orientation of the display relative to the user may be determined.
By way of illustration in
It is noted that the above descriptions of ways in which a user's perspective relative a display of a computing platform may change are not intended to be limiting. Instead, they are provided for illustration purposes and should not be considered limiting with request to how a user may view a display of a computing platform and/or how user perspective may be determined. By way of non-limiting example, in some implementations, a user perspective may change based on combinations of user-based and display-based changes as described above in connection with
Returning to
By way of non-limiting example, a change in the user's viewing perspective may cause one or more objects to positionally shift relative other depicted objects and/or other property changes may occur. By way of non-limiting example, a positionally shift may result in one or more surfaces that may have been occluded prior to the perspective change to then be “uncovered.” By way of non-limiting example, a user may tilt a computing platform 118 in a first direction. One or more objects in a scene being presented may positionally shift in relation to the first direction. By way of non-limiting example, a user may turn their head in a second direction. One or more objects in a scene being presented may positionally shift in relation to the second direction.
In some implementations, a positional shift may allow a user to “look around” objects presented in a scene. By way of non-limiting example, in addition and/or alternatively to a positional shift, objects may change orientation (e.g., rotate), change simulated material properties, and/or may change in other ways in relation to the user's perspective.
By way of non-limiting example, changing properties of one or more objects in a scene based on user perspective may facilitate simulating a parallax effect within the presented scenes. Parallax may correspond to a displacement and/or difference in the apparent position of one or more objects viewed along different lines of sight (e.g., different user perspectives of a display). By way of non-limiting example, as a user's perspective moves from side to side relative a computing platform, the objects positioned deeper within a depth-of-field may appear to positionally shift slower relative to objects that may be shallower within the simulated depth-of-field.
By way of illustration in
In some implementations, a speed at which the first object 204 changes from a first position to a second position may be determined based on the determined change in user perspective. By way of non-limiting example, a speed at which objects may positionally shift based on user perspective may be based on one or more of a speed at which the users changes their perspective, the corresponding layer associated with the objects, and/or other information. By way of non-limiting example, to simulate a parallax effect, objects associated with layers that may be deeper within a simulated depth-of-field may positionally shift slower than objects associated with layers that may be shallower within the simulated depth-of-field. Other property changes may be determined.
By way of non-limiting example, the shift component 110 may be configured to determine relative orientation changes of the objects based on the relative projection information. By way of non-limiting example, based on change in user perspective conveyed by the first relative projection information 218, over the first period of time the first object 204 may have a first orientation within the first scene 200. During the second period of time, the first object 204 may then be determined to change to a second orientation within the first scene 200. By way of non-limiting example, the first object 204 may rotate in relation to the second object 210 responsive to the change in the user's perspective of the display while viewing the first scene 200.
By way of non-limiting example, the shift component 110 may be configured to determine relative size changes of the objects based on the relative projection information. By way of non-limiting example, the shift component 110 may be configured to determine, responsive to the change in the user's perspective of the display while viewing the first scene 200, that the first object 204 may increase in size relative the second object 210.
By way of non-limiting example, the shift component 110 may be configured to deterring surface property changes of the objects in the scenes based on the relative projection information. By way of non-limiting example, the shift component may be configured to determine that a first surface of the first object 204 may change from having a first surface property to having a second surface property responsive to the change in the user's perspective of the display while viewing the first scene 200.
Returning to
As an illustrative example in
The above descriptions of scene arrangements in
Returning to
The external resources 122 may include sources of information that are outside of system 100, external entities participating with system 100, and/or other resources. In some implementations, some or all of the functionality attributed herein to external resources 122 may be provided by resources included in system 100.
Server 102 may include electronic storage 114, one or more processors 104, and/or other components. Server 102 may include communication lines or ports to enable the exchange of information with a network and/or other computing platforms. Illustration of server 102 in
Electronic storage 114 may comprise electronic storage media that electronically stores information. The electronic storage media of the electronic storage may include one or both of storage that is provided integrally (i.e., substantially non-removable) with the respective device and/or removable storage that is removably connectable to the respective device. Removable storage may include, for example, a port or a drive. A port may include a USB port, a firewire port, and/or other port. A drive may include a disk drive and/or other drive. Electronic storage may include one or more of optically readable storage media (e.g., optical disks, etc.), magnetically readable storage media (e.g., magnetic tape, magnetic hard drive, floppy drive, etc.), electrical charge-based storage media (e.g., EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.), and/or other electronically readable storage media. The electronic storage 114 may include one or more virtual storage resources (e.g., cloud storage, a virtual private network, and/or other virtual storage resources). Electronic storage 114 may store files, software algorithms, information determined by processor(s), and/or other information that enables the respective devices to function as described herein.
Processor(s) 104 is configured to provide information-processing capabilities in the server 102. As such, processor(s) 104 may include one or more of a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information. Although the processor(s) 104 are shown in
For example, processor 104 may be configured to execute machine-readable instructions 105 including components 106, 108, 110, and/or 112. Processor 104 may be configured to execute components 106, 108, 110, and/or 112 by software; hardware; firmware; some combination of software, hardware, and/or firmware; and/or other mechanisms for configuring processing capabilities on processor 104. It should be appreciated that, although components 106, 108, 110, and/or 112 are illustrated in
In some implementations, method 1000 may be implemented in one or more processing devices (e.g., a computing platform, a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information) and/or one or more other components. The one or more processing devices may include one or more devices executing some or all of the operations of method 1000 in response to instructions stored electronically on an electronic storage medium. The one or more processing devices may include one or more devices configured through hardware, firmware, and/or software to be specifically designed for execution of one or more of the operations of method 1000.
Referring now to method 1000 in
At an operation 1004, relative projection information for individual ones of the scenes may be determined. In some implementations, operation 1004 may be performed by a relative projection component the same as or similar to relative projection component 108 (shown in
At an operation 1006, relative positions of the objects in two-dimensional layers of the scenes based on the relative projection information may be determined. Other property changes to the object in layers of the scenes may be determined. In some implementations, operation 1006 may be performed by a shift component the same as or similar to shift component 110 (shown in
At an operation 1008, scenes may be arranged based on the determined relative positions and/or other determined changes. In some implementations, operation 1008 may be performed by an arranging component the same as or similar to arranging component 112 (shown in
Although the present technology has been described in detail for the purpose of illustration based on what is currently considered to be the most practical and preferred implementations, it is to be understood that such detail is solely for that purpose and that the technology is not limited to the disclosed implementations, but, on the contrary, is intended to cover modifications and equivalent arrangements that are within the spirit and scope of the appended claims. For example, it is to be understood that the present technology contemplates that, to the extent possible, one or more features of any implementation can be combined with one or more features of any other implementation.