This application claims priority from European Application No. 15306405.0, entitled “ Methods and Apparatus Of Composing An Image Of A Textured Material Distorted When Rubbing A Touch Surface,” filed on Sep. 14, 2015, the contents of which are hereby incorporated by reference in its entirety.
The present disclosure relates to visual feedback, in particular touching and rubbing a touch surface, for example when the touch surface is a touch screen such as a tablet or a smartphone.
Tablets and smartphones allow users to use their sense of touch to interact with media content such as video and pictures. For example, a user may “feel” the texture or the roughness of an image when he/she is touching a device by the means of haptic effects such as vibrations generated by actuators embedded in the end-user devices or roughness variations using dedicated “smart surfaces” (see, for example, “Geometrical optimization of an ultrasonic tactile plate for surface texture rendering” by Peter Sergeant, Frédéric Giraud and Betty Lemaire-Semail in 2010).
Pseudo-haptic techniques allow a user to indirectly feel the texture or the surface embossment of an image when the user does not directly interact with their finger but rather by a device such as a mouse. Pseudo-haptic methods introduce a discrepancy between the motion of the handled device and the position of the cursor on the displayed image (see “Simulating haptic feedback using vision: A survey of research and applications of pseudo-haptic feedback”by Anatole Lécuyer in 2009).
To increase the quality of the feedback when a user touches the screen, it has been proposed to distort the image by simulating the distortion of the material which could occur during a real interaction. A radial distortion is applied by translating the pixels of the image toward the current contact point. In addition, 2D shadows are added over the resulting image. This approach is known to be specific to a punctual contact (such as a mouse click) and addresses the case of a static touch, i.e. when the user is interacting with a static position of the texture.
The purpose of the present disclosure is to overcome at least one of the disadvantages of the background. The present disclosure relates to a method of composing an image representative of a texture, the method comprising:
According to a particular characteristic, said parameters of the contact comprise a duration value, said duration value being used to compute a pressure value for the contact, the longer the contact, the higher the pressure.
Advantageously, the distortion behaviour model is based on a viscoelasticity model of the material.
According to a specific characteristic, said parameters of the contact comprise information representative of a touch area and the distortion behaviour model takes said area information into account to compute the distorted version of the 3D model of the material.
Advantageously, a parameter of pressure varies over the touch area.
According to a particular characteristic, a position and an orientation of the virtual camera and of at least one light used for composing the image varies over the time.
According to a specific characteristic, the touch surface is a touch screen, the method further comprising displaying the composed image on the touch screen.
The present disclosure also relates to a device configured for composing an image representative of a texture, the device comprising:
The present disclosure also relates to a device configured for composing an image representative of a textured material, the device comprising at least one processor configured to:
Optionally, the device further comprises a transmitter transmitting said image to a display device.
The present disclosure also relates to a computer program product comprising instructions of program code for executing, by at least one processor, the abovementioned method of composing an image representative of a texture, when the program is executed on a computer.
The present disclosure also relates to a (non-transitory) processor readable medium having stored therein instructions for causing a processor to perform at least the abovementioned method of composing an image representative of a texture.
The present disclosure will be better understood, and other specific features and advantages will emerge upon reading the following description, the description making reference to the annexed drawings wherein:
The subject matter is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the subject matter. It is understood that subject matter embodiments can be practiced without these specific details.
As used herein, a “texture” is an image that is representative of an aspect of a surface of a material. The material may have a shape in three dimensions (3D), for example flat or with bumps and/or holes, represented by a 3D model. A material is associated with a distortion behaviour model. This model describes the distortions that the shape of the material suffers from when pressed and/or rubbed by an object. A real material has viscosity and elasticity. The distortion behaviour model of a virtual material may be represented by a set of equations which may simulate the viscoelasticity properties of an equivalent, real-world material.
The present principles will be described in reference to a particular example of a method of composing an image representative of a texture when the user is touching and/or rubbing a touch surface. This distortion is realistic in regards to the distortion of the shape of the material that the texture is associated with if pressed and/or rubbed by such a contact with an object. Hereafter, a texture associated with a material is named textured material.
The textured material is associated with a 3D model that is representative of the shape of its surface. For instance, a sponge has an embossed surface, a velvet cushion is slightly rounded and a wooden table is flat. The 3D model is associated with a distortion behaviour model that is representative of the distortion of the surface of the material in function of contact parameters, such as pressure and area. For example, when pressed on, the surface of a sponge is significantly distorted, a velvet cushion is distorted following a different model and a wooden table keeps its shape. The distortion behaviour model may be based on viscoelasticity properties of the material. When receiving the parameters of a contact, the present principles use the distortion behaviour model to distort the 3D model. A virtual camera may capture and generate an image of the distorted version of the 3D model lighted by at least one virtual light source. The composed image has the advantage to be realistically representative of the textured material distorted as it would occur during a real interaction. In addition, viscoelasticity properties of the distortion behaviour model ensure the quality of the composed image when the user is rubbing the touch surface by introducing some inertia in the distortion of the 3D model.
A touch surface may map an image. Touching this touch surface at a point corresponds to touching the image of the texture at a mapped point. In the following of this document, the expression “a material distorted by a contact on a touch surface” will designate “a material distorted as it could occur when an object is in contact with the material, the contact having parameters as detected by a touch surface and/or computed to simulate a real interaction”.
The first distortion represents the distortion of the material over the surface of the object in contact with the material. The touch area (21) depends on the object in contact with the touch surface such as a thumb, an index finger, a little finger, a thin stylus or a big stylus. A 3D model is associated with the material. The material is mainly disposed along a reference plane (x,y). For the sake of clarity, let us consider a first variant, in which the touch area (11) is a disk of radius R centered around a point of contact detected by the touch surface. The pressure is simulated according to the duration parameter of the contact. The first pressure linearly increases over the time, for a duration going from zero to Tmax. The pressure is considered for its vertical component, on the z-axis of the 3D model. In this first variant, the pressure is equally applied on the whole disk of the touch area. The 3D model is distorted according to the associated 3D distortion behaviour model along the z-axis according to an equation such as [E1] for example.
In equation [E1], d is the distance to the center of the disk of the touch area and t, the duration normalized on the interval [0, Tmax].
The second distortion represents the distortion implied around the touch area. In the first variant, the second distortion is applied on ring from radius R to a radius M that is set according to the viscoelasticity properties of the material. The 3D model is distorted along its z-axis according to an equation such as [E2], for example.
In equation [E2], d is the distance to the center of the disk of the touch area and t, the duration normalized on the interval [0, Tmax]. This set of equations has the advantage to preserve the C0 continuity distortion between the two considered regions as well as the presence of a plateau associated to the touch area and a radial decrease of the distortion around the touch area. In other variants, the touch surface detects the shape of the touch area (21) that is different from a disk, and in some other variants, the touch surface detects the pressure varying over the touch area.
In a particular embodiment, the 3D model is lighted by a unique directional virtual light source (42). The position and the orientation of the light source (42) is set at an initialization phase of the present method. For example, the position and orientation of the light source (42) may be set an orthogonal position according to the surface of the textured material or, for example, with an angle set at 45° according to the surface of the textured material. According to another embodiment, the 3D scene contains two or more light sources. Light sources are for instance directional light or point light or ambient light or spot light. The different light sources of the 3D scene may be of different types. In a variant, The position and the orientation of each light source (42) may vary, for example, to follow the inclination of the display device on which the composed image is rendered. The detection of the inclination is ensured by the display device according to a dedicated method. This variant has the advantage of providing realistic and immersive shadows on the composed image.
Advantageously, the device (50) is connected to one or more display devices (58) of display screen type directly to the graphics card (52) to display images calculated in the graphics card. In a particular embodiment, the touch surface (55) is a touch screen and the display(58) is integrated to the device (50).
It is noted that the word “register” used in the description of memories (521), (53) and (54) designates in each of the memories mentioned, both a memory zone of low capacity (some binary data) as well as a memory zone of large capacity (enabling a whole program to be stored or all or part of the data representative of data calculated or to be displayed).
When switched-on, the microprocessor (51) loads and executes the instructions of the program contained in the RAM (54).
The random access memory (54) notably comprises:
According to one particular embodiment, the algorithms implementing the steps of the method specific to the present disclosure and described hereafter are advantageously stored in the memory GRAM (521) of the graphics card (52) associated with the device (50) implementing these steps. When switched on and once the data (541), (542) and (542) are loaded into the RAM (53), the graphic processors (520) of the graphics card (52) load these parameters into the GRAM (521) and execute the instructions of these algorithms in the form of microprograms of “shader” type using HLSL (High Level Shader Language) language or GLSL (OpenGL Shading Language) for example.
The random access memory GRAM (521) notably comprises data representative of an image representative of the textured material distorted by a contact in a register (5210).
According to another variant, a part of the RAM (53) is assigned by the CPU (51) for storage of the algorithms. This variant however causes greater latency time in the composition of an image as the data must be transmitted from the random access memory (53) to the graphics card (52) passing by the bus (56) for which the transmission capacities are generally inferior to those available in the graphics card for transmission of data from the GPUs to the GRAM and vice-versa.
According to another variant, the power supply (57) is external to the device (50).
In an initialization step (not represented on
A first step (61) consists in receiving parameters of a contact. In a first embodiment, the contact is detected on and by the touch surface. The data representative of the contact comprise parameters such as the touch area, the duration of the contact, the direction and the speed of the touch displacement and the pressure over the touch area. All these parameters are detected by the touch surface. In a second embodiment, the touch surface detects only a part of the parameters and the other ones are computed. For example, if the touch surface does not detect the pressure over the touch area, a pressure parameter is computed in function of the duration of the contact. In another embodiment, the device (50) is not equipped with a touch surface and the contact is, for example, a mouse click on the texture image. The device (50) is equipped with a receiver to receive the contact parameters from an external component. Every parameters are computed to simulate a real touch contact. When a change is detected in at least one parameter, the step (62) is executed. If no change is detected, the image does not need to be refreshed and the step (63) is not executed. According to a variant, the image is composed at a constant frequency and the step (62) is executed if every cases.
At step (62), a distorted version of the 3D model is computed according to the 3D distortion behaviour model using the parameters of the contact detected at step (61). According to a particular embodiment, the surface of the textured material is mainly disposed on the plane (x,y). A vertical distortion is computed using a system of equations like {[E1], [E2]} for every points of the touch area and for the surrounding area. Advantageously, the 3D distortion behaviour model is based on the viscoelasticity properties of the material. It requires a system of equation that takes a derivative function of the time into account like in equations [E3] and E[4]. Such a 3D distortion model has the advantage to realistically distort the model when the user is rubbing the touch surface as the 3D model does not retrieve its initial shape instantly but progressively. According to another embodiment, the 3D distortion behaviour model applies distortion with components on horizontal axis in addition to the vertical axis. When a change is operated on the 3D scene (i.e. a distortion of the 3D model or a change in the position or the orientation of the virtual camera (41) or one of the virtual light sources (42)), the step (63) is executed. If no change is detected, the image does not need to be refreshed and the step (63) is not executed. According to a variant, the image is composed at a constant frequency and the step (63) is executed if every cases.
At step (63) an image representative of the distorted version of the 3D model is composed (i.e. generated) as seen from the virtual camera (41) and lighted with the virtual light sources (42).
Naturally, the present disclosure is not limited to the embodiments previously described.
In particular, the present disclosure is not limited to a method of composing an image representative of a textured material distorted by a contact but also extends to any method of displaying the composed and to any device implementing this displaying method. The implementation of calculations necessary to compose said image is not limited either to an implementation in shader type microprograms but also extends to an implementation in any program type, for example programs that can be executed by a CPU type microprocessor. The use of the methods of the present disclosure is not limited to a live utilisation but also extends to any other utilisation, for example for processing known as postproduction processing in a recording studio.
The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method or a device), the implementation of features discussed may also be implemented in other forms (for example a program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, smartphones, tablets, computers, mobile phones, portable/personal digital assistants (“PDAs”), and other devices.
Implementations of the various processes and features described herein may be embodied in a variety of different equipment or applications, particularly, for example, equipment or applications associated with data encoding, data decoding, view generation, texture processing, and other processing of images and related texture information and/or depth information. Examples of such equipment include an encoder, a decoder, a post-processor processing output from a decoder, a pre-processor providing input to an encoder, a video coder, a video decoder, a video codec, a web server, a set-top box, a laptop, a personal computer, a cell phone, a PDA, and other communication devices. As should be clear, the equipment may be mobile and even installed in a mobile vehicle.
Additionally, the methods may be implemented by instructions being performed by a processor, and such instructions (and/or data values produced by an implementation) may be stored on a processor-readable medium such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact diskette (“CD”), an optical disc (such as, for example, a DVD, often referred to as a digital versatile disc or a digital video disc), a random access memory (“RAM”), or a read-only memory (“ROM”). The instructions may form an application program tangibly embodied on a processor-readable medium. Instructions may be, for example, in hardware, firmware, software, or a combination. Instructions may be found in, for example, an operating system, a separate application, or a combination of the two. A processor may be characterized, therefore, as, for example, both a device configured to carry out a process and a device that includes a processor-readable medium (such as a storage device) having instructions for carrying out a process. Further, a processor-readable medium may store, in addition to or in lieu of instructions, data values produced by an implementation.
As will be evident to one of skill in the art, implementations may produce a variety of signals formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described implementations. For example, a signal may be formatted to carry as data the rules for writing or reading the syntax of a described embodiment, or to carry as data the actual syntax-values written by a described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries may be, for example, analog or digital information. The signal may be transmitted over a variety of different wired or wireless links, as is known. The signal may be stored on a processor-readable medium.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, elements of different implementations may be combined, supplemented, modified, or removed to produce other implementations. Additionally, one of ordinary skill will understand that other structures and processes may be substituted for those disclosed and the resulting implementations will perform at least substantially the same function(s), in at least substantially the same way(s), to achieve at least substantially the same result(s) as the implementations disclosed. Accordingly, these and other implementations are contemplated by this application.
Number | Date | Country | Kind |
---|---|---|---|
15306405.0 | Sep 2015 | EP | regional |