Volume transparency and shadow of moving graphics

By applying Bill Lambert's law and other physical rendering techniques on mobile devices, the problem of rendering volume transparency and transparent shadows is solved, and efficient and realistic graphics rendering effects are achieved.

CN120051805APending Publication Date: 2025-05-27创峰科技
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280100739.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-11-03
Filing Date
2022-12-30
Publication Date
2025-05-27

AI Technical Summary

Technical Problem

Prior art is difficult to efficiently render advanced graphic effects such as volumetric transparency and transparent shadows on mobile devices with limited processing capabilities in real-time gaming applications, and traditional alpha-mixing methods lead to unrealistic appearance of transparent objects.

Method used

Bill-Lambert's law is used as visual approximation, and volume transparency and shadows are rendered by generating a three-dimensional model of the object, roughness and opacity approximation are used to calculate the attenuation of light, and backscattering and Fresnel attenuation are applied to improve the rendering effect.

Benefits of technology

It realizes efficient rendering of volume transparency and transparent shadows on mobile devices, improving the authenticity and quality of graphics rendering, while reducing the need for hardware components.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120051805A_ABST
    Figure CN120051805A_ABST
Patent Text Reader

Abstract

Systems and methods for determining volumetric transparency and transparent shadow of an object are provided. The system may use the attenuation of the object to determine the volumetric transparency and transparent shadow of the object. Roughness of the object may be used to determine frontal attenuation of the object. The back attenuation of the object may be determined using the opacity of the object and the distance between the back intersection and the front intersection. Objects may be rendered in a graphical interface with volumetric transparency and / or transparent shadows.
Need to check novelty before this filing date? Find Prior Art

Description

Cross - Reference to Related Applications

[0001] This application claims the benefit of U.S. Provisional Application No. 63 / 422,246, filed on November 3, 2022, titled "REAL - TIME RAY TRACED TRANSLUCENCY AND TRANSPARENT SHADOWS FOR MOBILE", which is hereby incorporated by reference in its entirety. This application is also related to the co - pending PCT application with law firm docket number 75EP - 368078 - WO, titled "SUBSURFACE SCATTERING FOR MOBILE APPLICATIONS". Technical Field

[0002] The disclosed technology generally relates to methods for rendering digital images at a user device. Specifically, the disclosed technology includes methods and systems for rendering light and shadow effects on objects with different levels of translucency. Background Art

[0003] Image rendering quality (including more realistic simulations of real - world objects, higher resolutions, or smoother frame rates) is an ongoing goal for a variety of technologies and applications. In real - time gaming applications, the trend towards processor - intensive graphics operation techniques such as path tracing has pressured innovators in the field to develop new methods. These new methods require fewer hardware components while providing the same or similar visual effects, and also give users of real - time gaming applications greater flexibility when customizing the user experience according to personal preferences. Brief Description of the Drawings

[0004] In accordance with one or more different embodiments, the present disclosure is described in detail with reference to the following drawings. The drawings are provided for illustrative purposes only and depict typical or exemplary embodiments.

[0005] Figure 1 An embodiment of a user experience rendering system according to some examples of the present disclosure is shown.

[0006] Figure 2 Examples of pipelines for rendering volumetric transparency and transparent shadows are shown.

[0007] Figure 3 Aspects of volumetric transparency applied when light hits / illuminates an object are shown.

[0008] Figure 4Shows aspects applied to volumetric shadows when light hits an object to produce a shadow.

[0009] Figure 5 Shows an example user interface for setting the volumetric transparency and transparent shadows of an object.

[0010] Figure 6 Shows a block diagram of an example computer system that can implement the various embodiments described herein.

[0011] The drawings are not exhaustive and do not limit the disclosure to the exact forms disclosed. Detailed Description

[0012] The graphics rendering technology of video games has been constantly advancing, especially in the fields of mobile devices and gaming. Since the processing power of mobile devices is not as powerful as that of desktop personal computers or gaming consoles, it is crucial to balance graphics quality and processing requirements for mobile applications. Real-time application rendering is typically achieved through the rasterization of triangle geometry. Triangle geometry refers to a list of positions defined for each vertex of a triangle within a given object. Each copy of an object has an independent matrix that is used to place and orient that specific copy in a common coordinate space called world space. An additional matrix associated with the camera is used to transform world space coordinates into view space coordinates, and finally, a projection matrix is used to project those 3D positions onto a 2D screen plane. The transformation and projection steps are typically performed in a stage called the "vertex shader", where a shader program is run for each vertex being processed. The rasterization pipeline (also known as the rasterization pipeline or pipeline) is named after the hardware-accelerated rasterization step that occurs after the vertex shader, which interpolates all the data defined per vertex onto all the pixels within the triangle being rendered, thus converting vertex-by-vertex data into pixel-by-pixel data. Next, a "pixel shader" is executed on all the pixels thus interpolated. Although many rasterization pipelines have additional stages, the vertex-raster-pixel pipeline is the core of all rasterization pipelines. Volume transparency and shadows are advanced graphics effects that are not common even in desktop and console applications. Real-time transparency in the rasterization pipeline is typically achieved through a method called alpha blending: that is, an object has a fixed or texture-mapped alpha value that is used to attenuate the output of the fragment shader for simple blending with the background color. This method achieves a flat and less realistic appearance for transparent objects and requires separate sorting and rendering of transparent objects in order to correctly render the overlapping parts of transparent objects with other objects. Ray tracing is an alternative rendering method that calculates the intersection of rays with objects, does not require separate rendering of transparent objects, and contributes to improved transparent rendering methods. Since ray tracing is much more expensive than rasterization, it is ideal to apply ray tracing only to problems that are difficult to solve with rasterization, such as rendering transparent objects.

[0013] Examples of the disclosed technology assist in rendering volumetric transparency and shadows during rasterization by applying the Beer-Lambert law as a visual approximation. Embodiments described herein relate to three-dimensional models of objects generated in a graphical environment. The generated three-dimensional models can relate to the appearance of the interaction of light and shadow with the model based on a theoretical light source. On the front face of the object, light from the light source can hit / shine on the object and undergo one or more bounces and scatter towards the viewing camera. A representation of this phenomenon can be generated based on the properties of the object. On the inner back face of the object, the light emitted by the light source can be attenuated based on the propagation distance from the front face to the back face of the object. A representation of this phenomenon can also be generated based on the properties of the object. The end result is a three-dimensional model that appears to interact with light in three dimensions. Embodiments use the Beer-Lambert law to leverage the physical properties of the generated model to avoid being traced step by step when light reaches and passes through the object. The Beer-Lambert law relates the attenuation of light to the properties of the propagating material. The law is expressed as: A = εlc where A is the attenuation of light, ε is the absorptivity of the object, e is the optical path length of the light, and c is the concentration of the material. This attenuation can be used to relate the transmitted spectral radiance power to the incident spectral radiance power and the absorption path: P t = P i * 10 -A where P t is the transmitted spectral radiance power and P i is the incident spectral radiance power. Embodiments of the disclosed technology can reformulate the Beer-Lambert law for ray tracing by assuming that the attenuation is proportional to the ratio of the transmitted power and the incident power, such that the value of complete attenuation is 0 and the value of no attenuation is 1. The product of the absorption coefficient e and the concentration c can be replaced by a material parameter that is inversely proportional to the attenuation: roughness for front hits and opacity for back hits. The path length l can be replaced by the minimum object thickness at the front ray hit and the ray length at the back ray hit. The attenuation can then be approximated as: Front attenuation = 10 -(粗糙度*薄物体厚度) Back attenuation = 10 -(不透明度*光线长度)

[0014] Roughness refers to the surface texture that causes irregularities such as bumps and hollows. Since roughness determines how light scatters on and passes through the object surface (especially when considering multiple scattering effects), roughness is a key property in the background of graphics rendering. Multiple scattering describes the interaction with the surface where light bounces more than once on the microfacets at the intersection point before reaching the camera. The roughness of the front side of the object (i.e., the surface where light first hits the object) can be considered to approximately calculate multiple scattering. Multiple scattering can be approximated as the attenuation of the single scattering intensity proportional to the roughness. Since multiple scattering events only occur at the boundaries of transparent geometries, they should not be proportional to the path length, so they can be approximated with a constant path length. To simplify calculations and improve performance, multiple scattering on the back side is ignored. Instead, on the back side of the object, where the light passes through and exits the object, opacity can be regarded as an abstract representation of the path-length-proportional absorptive properties of the material. Since the refractive index affects the path length from the front side to the back side, only considering the path length is sufficient to provide a more three-dimensional looking rendered image. Similar to multiple scattering, backscattering at the back side is a measurement of the light radiation reflected back to the camera. The backscattering component can be approximated from the attenuation using fewer calculations than a physically based volume scattering model: Backscattering = (1 - Attenuation) * Albedo

[0015] where albedo is a description of the backscattering color of the object. The spectral transmission through an object (e.g., as described by Mie scattering or the Tyndall effect) can be approximated as follows: Spectral Transmission = lerp(1 - Albedo^3, Albedo^3, Attenuation) * Attenuation

[0016] The spectral transmission can be calculated such that the remaining transmitted spectrum consists of the wavelengths not backscattered. When the light further attenuates, the transmitted light color can be linearly interpolated from the initial albedo towards the subtractive inverse of the albedo (i.e., the complementary value "1 - Albedo"). Multiplying by the total attenuation ensures energy conservation between the transmitted color and the backscattered color.

[0017] For shadows, the approximations are similar, except that they are applied to shadow rays instead of path rays without backscattering. Physically correct simulation of transparent shadows requires refracting the shadow rays through the transparent object in order to obtain the correct refraction details in the transparent shadow. However, we have observed that applying an attenuation proportional to the path length has significantly improved the appearance of transparent shadows when maintaining the original shadow ray direction. This is important for in-line ray tracing, where a new in-line ray tracing query must be initialized whenever the ray direction changes. Alternatively, for shadows, Fresnel attenuation can be used to approximate the attenuation. The Fresnel term describes the reflection and transmission of light when it is incident on the interface between different optical media. The Fresnel attenuation adds geometric surface details to the transparent shadow using the Fresnel term. Embodiments of the disclosed techniques may apply the above techniques to make objects look more realistic while preserving the computational time in the user rendering system.

[0018] Figure 1 An embodiment of a user rendering system 100 in accordance with some examples of the present disclosure is shown. The user rendering system 100 includes at least a machine-readable medium 102, a processor 104, an input interface 106, a display interface 108, and a communication interface 110. The machine-readable medium 102 may include any form of information storage (e.g., random access memory (“RAM”), read-only memory (“ROM”), flash drive, processor cache), and encompasses both static and dynamic storage as well as long-term and short-term storage. Some of the information stored on the machine-readable medium 102 may be classified as a rendering module 112 and / or program data 114. The rendering module may include operating system components 116, application components 118, and graphics application components 120 (described further below). The program data 114 may refer to any collection of data input to and / or output by the processor 104 when the rendering module 112 is executed. The program data 114 may include operating system data 122, application data 124, and graphics application data 126.

[0019] The processor 104 may refer to one or more general-purpose processors (e.g., microprocessors) and / or one or more special-purpose processors (e.g., GPU, network processor, or ASIC). Additionally, in embodiments where multiple processors are represented by the processor 103, the processors may run in parallel such that multiple instruction sets may be executed simultaneously by the processor 104. The input device 106 may refer to any device with which a user may interact (e.g., a smart phone or other touch-screen device) that converts such interactions into signals interpretable by the processor 104. The display device 108 may refer to any device capable of outputting a visual experience to the user (e.g., a smart phone screen, a liquid crystal display (“LCD”), a light-emitting diode (“LED”)). Figure 1The display device 108 is depicted as a mobile touch screen. However, other embodiments of the user experience rendering system 100 may be implemented on different platforms suitable for other types of display devices. Additionally, the display device 108 is depicted herein as only involving one display device. However, the display device 108 may also refer to one or more additional display devices (e.g., LEDs, attached LCD screens) that can operate concurrently with the screen of the mobile device. The communication interface 110 may refer to one or more devices that enable the processor 104 to communicate with components not local to the processor 104, and / or one or more devices that allow instructions and / or data to be sent from the machine-readable medium 102 via a network. The communication interface 110 may include a modem or soft modem, a network interface (e.g., Ethernet, network interface card, WiMedia, IEEE 602.XX or other interface), a communication port (e.g., USB port, IR port, RS232 port, Bluetooth interface or other port), or other communication interfaces.

[0020] Now referring to the executable rendering module 112 and the program data 114 residing on the machine-readable medium 102, the operating system 116 manages the various hardware and software components of the system and provides common interface services. The operating system 116 may include any available known operating system, or may be an operating system customized for the system. The application program 118 may include one or more software programs for performing functions other than rendering the user experience (e.g., email, phone, Internet browser). The application data 124 may refer to data related to the functions performed by the application program 118 (e.g., email address book, phone number contact list, bookmarked web page list).

[0021] The graphics application 120 may include any software program designed to output one or more rendered images. When executing instructions related to the graphics application 120, the processor 104 may read inputs from and / or output to the graphics application data 126. The graphics application data 126 may refer to data related to the content visually displayed to the user (e.g., simulated character settings, logged-in account profiles, simulated environmental objects).

[0022] The graphics application 120 may include a volume transparency module 128 for rendering volume transparency. Volume transparency refers to the following physical effects: 1) attenuation of light as it propagates through a volume, 2) backscattering / backward scattering of light as it propagates through a volume, 3) multiple scattering at geometric boundaries, and 4) spectral absorption and transmission of light color. The volume transparency module 128 may apply the techniques described above to render the backscattering and multiple scattering of light when the light hits / illuminates a three-dimensional object. Similarly, the volume transparent shadow module 130 may be applied to render three-dimensional shadows in a mobile application. As further described below, the volume transparent shadow module 130 may apply a process / pipeline similar to that of the volume transparency module 128 to apply attenuation to shadow rays. The thick object subsurface scattering module 132 and the thin object subsurface scattering module 134 may be used to render the subsurface scattering of relatively thick and thin translucent objects, respectively. Modules 132 and 134 are further described in law case number 75EP-368078, the content of which is incorporated herein by reference in its entirety.

[0023] Figure 2 An example process that can be applied to render three-dimensional objects using volume transparency and shadows is shown. Process 200 may be applied to render an object using volume transparency and / or shadows. At block 202, the system may approximately calculate attenuation. As described above, attenuation may be expressed as: A = εlc where A is the attenuation of light, ε is the absorption rate of the object, l is the optical path length of the light, and c is the concentration of the material. The system may substitute the product of the absorption coefficient e and the concentration c for the roughness of the front illumination and the opacity of the back illumination. Then the attenuation may be approximated as: Front attenuation = 10 -(粗糙度*薄物体厚度) Back attenuation = 10 -(不透明度*光线长度)

[0024] The thin object thickness is a non - physical, user - adjusted parameter. This thickness serves as the minimum thickness for all transparent objects and is most intuitively used to describe the thickness of a glass plate represented by a single plane rather than a thin cube. The ray length is the distance that a ray travels between the front - face intersection and the back - face intersection and is only applicable to 3D meshes (such as the thin - cube representation of a window glass). At block 204, the roughness of the object can be used to approximately calculate the Front Face Attenuation from multiple - scattering effects, while at block 206, the opacity of the object can be used to approximately calculate the Back Face Attenuation from volume extinction. Using these two material properties, attenuation can be approximately calculated only at the intersection of two rays without performing computationally intensive simulations of physical phenomena. Once the attenuation is determined on each face, the system can directly use this attenuation to calculate transparent shadows or calculate backscattering directly based on the attenuation for the rendering of the object itself.

[0025] Once the attenuation is calculated, the system can calculate the backscattering at block 208. As mentioned above, for a front - face hit / illumination, the roughness is considered to approximate multiple scattering on a rough surface. Multiple scattering can be approximated as an attenuation of the single - scattering intensity proportional to the roughness. On the back face, the opacity can include / be considered as an abstraction of the absorption property of the material proportional to the path length. Thus, the backscattering component can be approximated with less computation as: Backscattering=(1 - Attenuation)*Albedo where the albedo is a description of the color of the object. Albedo is a common material property and technically refers to the surface color of an object under white light with an intensity of 1. In practice, its meaning has been extended to refer to the dominant color of an object under white light. In this context, the albedo is a statement of the artist's intent, and thus the rendering of transparent objects is such that their color is closest to the albedo of the object. For a smooth glass object, this means attenuating the indirect illumination of refraction with the albedo of the object. To simulate spectral absorption and transmission effects, the albedo is considered as the backscattering color on the grounds that when configuring the Tyndall effect in an opal, the artist would expect to set a light blue color to represent the light blue color of the glass, and the code implicitly infers the subtractive transmitted color. At block 210, the spectral transmittance can be calculated. The spectral transmittance refers to the translucency of the object and how light passes through the object. The spectral transmittance can be calculated as: Spectral Transmittance = lerp(1 - Albedo3, Albedo3, Attenuation) * Attenuation This calculation assumes that the remaining transmitted spectrum consists of wavelengths that are not backscattered. As the light further attenuates, the transmitted light color can be linearly interpolated from the initial albedo towards the subtractive inverse of the albedo (i.e., the complementary value "1 - albedo"). At box 212, this calculation can be repeated until the maximum specular / diffuse hit count, which limits the number of rays that can be cast along the path associated with a given pixel.

[0026] When casting shadow rays, the system can calculate the transparent shadow at box 214 using the same method for calculating attenuation as used when directly rendering an object. At box 216, alternatively, the Fresnel attenuation can approximate the attenuation caused by some of the incident light being reflected away at each hit due to the Fresnel reflectance. Although the full Fresnel term can be calculated, for shadows, attenuating the shadow with the absolute value of the dot product of the surface normal and the shadow ray direction is visually sufficient. Since the performance of shadow rays is crucial, most transparency settings can be replicated for transparent shadows, allowing them to be configured separately from transparent rendering to achieve the best trade - off between appearance and performance for the user's application. At box 218, the Max Hits parameter can be set by the user or automatically by the system. The Max Hits setting can limit the number of hits that a shadow ray can record to avoid areas with many overlapping transparent objects exceeding the maximum cost. At box 220, the three - dimensional object can be rendered with the calculated backscattering, spectral transmittance, and / or transparent shadow.

[0027] Figure 3 Volume transparency applied to a general three - dimensional object is shown. As depicted, light rays 301 and 302 from light source 300 can hit the object at each intersection along the path to directly illuminate the surface at each intersection. As shown at the end of ray 301, the light can illuminate each intersection through single - scattering and multiple - scattering events as shown in Figure 304. The direct illumination estimate based on the Bidirectional Scattering Distribution Function (BSDF) only considers the contribution / effect of single - scattering events. In this system, the contribution of multiple - scattering events is approximated based on roughness and a configurable minimum thickness. This is much cheaper than the offline method of casting rays to directly simulate multiple - scattering events within the micro - surface and evaluating the BSDF at each bounce. Then, the transmitted rays are refracted through the transparent object. At the back intersection, the attenuation due to volume absorption is approximately calculated based on the internal path length 305.

[0028] Figure 4Shows the volumetric transparent shadow applied to a general three-dimensional object. As shown, the shadow ray paths pointing to the light source 400 do not refract, but otherwise, the attenuation events along the path are calculated in the same way as the attenuation events along the ray path (as shown by path 402). Figure 4 Shows the shadow 404 cast from the object when the shadow ray passes through the object. The approximation can involve the thickness 403 and opacity of the object to determine the translucency of the shadow.

[0029] Figure 5 Shows an example user interface for applying the settings used in rendering volumetric transparency and shadows. First, for backscattering, volume settings can be selected to apply a specific Beer-Lambert attenuation approximation as described above. The thin object mode can limit the calculation to front-facing attenuation, while the volume mode can calculate the attenuation for both front and back hits. The Alpha Cutoff setting 502 is used to specify the maximum opacity, and when the opacity of the object exceeds this maximum opacity, the object is treated as an opaque surface rather than a transmissive surface. This setting is typically used for objects in real-time rendering engines such as leaves and grass, which are represented by low polygon "cards" and the textures on them are used to represent more complex outlines by using per-pixel alpha values. In this case, when the alpha value is higher than the alpha cutoff value, the leaves are rendered with the color taken from the texture and multiplied by the alpha value to blend with the background. Pixels with alpha values lower than the cutoff value are not rendered. In this case, the same setting is repeated for transmissive geometry, and the index of refraction (IOR) parameter is used to distinguish between the two material types. The IOR value of the alpha cutoff material such as leaves is 0, while the IOR value of the transmissive material is higher than 0. When hitting an object with an IOR of 0 and an alpha value higher than the cutoff value, the light can be attenuated due to opacity and albedo, but can continue to be traced in the original direction to achieve an alpha blending effect. Opacity below the alpha cutoff value can be considered as having an opacity of 0. For transmissive objects with an IOR value greater than 0, the transparency is modeled as described above.

[0030] The maximum alpha hit count setting 504 can limit the performance impact of alpha-blended objects. This setting can stop additional raycasting after a specified number of hits on alpha-blended objects. The approximate spectral transmission setting 506 can enable a separate model of spectral absorption in transparent object rendering and transparent shadows. When enabled, this feature uses the attenuation value calculated on the back side to interpolate between the albedo of the object and the subtractive transmission color of the object. This color is then multiplied by the attenuation to further attenuate the radiation passing through the object.

[0031] Under the shadow settings, when ray-traced shadows are selected, attenuation approximations can be applied. When "transparent shadows" are disabled, all objects can cast shadows with a full darkness value of 0. When transparent shadows are enabled, the system can modulate the 1-channel shadow value using opacity. Once enabled, additional independent options can become available under the transparent shadow setting 508. For example, a color option can be enabled to modulate the 3-channel shadow color by applying the opacity and albedo as described above. When the texture setting is disabled, the texture setting uses a single albedo as the opacity value for the entire object and assumes that the mesh representation of the object is what is being rendered. When the texture setting is enabled, this setting can read the albedo map to sample the per-pixel albedo and opacity. Fresnel attenuation can be enabled to modulate the shadow to approximate the visual appearance of the attenuation caused by Fresnel reflection as light passes through the object. An absorption option can be enabled to approximate volume absorption. These settings can be set as pre-compiled shader definitions or also as uniform settings for dynamic user changes. The former may be preferred for performance, while the latter may be preferred for development. Although Figure 5 An example user interface is shown, but other formats or options can be applied to further affect the rendering functionality. This user interface can be displayed on a mobile device display such as a touch screen or a normal screen.

[0032] Figure 6 A block diagram of an example computer system 600 in which embodiments of the present disclosure can be implemented is shown. Computer system 600 includes a bus 602 or other communication mechanism for conveying information, and one or more hardware processors 604 coupled with bus 602 for processing information. The one (or more) hardware processors 604 can be, for example, one or more general-purpose microprocessors.

[0033] The computer system 600 also includes a main memory 606, such as a random access memory (RAM), a cache, and / or other dynamic storage devices, which is coupled to the bus 602 for storing information and instructions to be executed by the processor 604. The main memory 606 can also be used to store temporary variables or other intermediate information during the execution of instructions to be executed by the processor 604. When stored in a storage medium accessible by the processor 604, these instructions cause the computer system 600 to present as a special-purpose machine that is customized to perform the operations specified in the instructions.

[0034] The computer system 600 may include a read-only memory (ROM) 608 or other static storage devices coupled to the bus 602 for storing static information and instructions for the processor 604. A storage device 610, such as a magnetic disk, an optical disk, or a USB thumb drive (flash drive), etc., is provided and coupled to the bus 602 for storing information and instructions.

[0035] The computer system 600 can be coupled via the bus 602 to a display 612, such as, for example, a liquid crystal display (LCD) (or a touch screen), for displaying information to a computer user. An input device 614 (including alphanumeric keys and other keys) is coupled to the bus 602 for transmitting information and command selections to the processor 604. Another type of user input device is a cursor control 616, such as, for example, a mouse, a trackball, or cursor direction keys, for transmitting direction information and command selections to the processor 604 and for controlling the movement of a cursor on the display 612. In some embodiments, the same direction information and command selections as cursor control can be achieved by receiving touches on a touch screen without a cursor.

[0036] The computing system 600 can include a user interface module to implement a graphical user interface (GUI), which can be stored as executable software code executed by one (or more) computing devices in a mass storage device. As an example, this module and other modules can include components such as software components, object-oriented software components, class components, and task components, processes, functions, attributes, procedures, subroutines, program code segments, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables.

[0037] Generally, terms such as "component", "engine", "system", "database", "data store", etc. as used herein can refer to logic embodied in hardware or firmware, or to a collection of software instructions written in a programming language (such as Java, C, or C++) that may have entry and exit points. Software components can be compiled and linked into an executable program, installed in a dynamic link library, or can be written in an interpreted programming language (such as, BASIC, Perl, or Python). It will be appreciated that software components can be called from other components or from themselves, and / or can be called in response to detected events or interrupts. Software components configured to execute on a computing device can be provided on a computer-readable medium (such as, a compact disc, a digital video disc, a flash drive, a magnetic disk, or any other tangible medium), or as a digital download (and can initially be stored in a compressed or installable format that requires installation, decompression, or decryption prior to execution). Such software code can be stored, in whole or in part, on the storage device of the executing computing device for execution by the computing device. Software instructions can be embedded in firmware, such as an EPROM. It will also be appreciated that hardware components can include connected logic units (such as, gates and flip-flops), and / or can include programmable units, such as programmable gate arrays or processors.

[0038] Computer system 600 can implement the techniques described herein using custom hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic that in combination with the computer system causes the computer system 600 to be a special-purpose machine or programs the computer system 600 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by the computer system 600 in response to one or more sequences of one or more instructions contained in the main memory 606 being executed by one (or more) processors 604. The instructions can be read into the main memory 606 from another storage medium (such as the storage device 610). Execution of the sequence of instructions contained in the main memory 606 causes one (or more) processors 604 to perform the processing steps described herein. In an alternative embodiment, hardwired circuitry can be used in place of or in combination with software instructions.

[0039] As used herein, the term "non-transitory medium" and like terms refer to any medium that stores data and / or instructions that cause a machine to operate in a particular manner. Such non-transitory media can include non-volatile media and / or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 610. Volatile media includes dynamic memory, such as main memory 606. Common forms of non-transitory media include, for example, floppy disks, flexible disks, hard disks, solid state drives, magnetic tape, or any other magnetic data storage media, CD-ROM, any other optical data storage media, any physical media with hole patterns, RAM, PROM, EPROM, FLASH-EPROM, NVRAM, any other memory chip or cartridge memory, and networked versions thereof.

[0040] Non-transitory media is different from transmission media, but can be used in combination with transmission media. Transmission media participates in transferring information between non-transitory media. For example, transmission media includes coaxial cables, copper wire, and fiber optics, including the wires that make up bus 602. Transmission media can also take the form of acoustic or light waves, such as acoustic or light waves generated during radio wave and infrared data communications.

[0041] Computer system 600 also includes a communication interface 618 coupled to bus 602. Communication interface 618 provides two-way data communication that is coupled to one or more network links connected to one or more local networks. For example, communication interface 618 can be an Integrated Services Digital Network (ISDN) card, cable modem, satellite modem, or modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 618 can be a Local Area Network (LAN) card to provide a data communication connection to a compatible LAN (or a WAN component communicating with a WAN). A wireless link can also be implemented. In any such implementation, communication interface 618 sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.

[0042] Network links typically provide data communication to other data devices through one or more networks. For example, a network link can provide a connection to a host through a local area network or to a data device operated by an Internet Service Provider (ISP). The ISP in turn provides data communication services through the global packet data communication network now commonly referred to as the "Internet". Both local area networks and the Internet use electrical, electromagnetic, or optical signals that carry digital data streams. Signals through various networks and signals on network links and through communication interface 618 are example forms of transmission media that convey digital data to or from computer system 600.

[0043] The computer system 600 can send messages and receive data, including program code, via a network, network link, and communication interface 618. In an Internet example, a server can transmit request code for an application via the Internet, an ISP, a local area network, and communication interface 618.

[0044] The received code can be executed by the processor 604 when it is received and / or stored in the storage device 610 or other non-volatile memory for later execution.

[0045] Each process, method, and algorithm described in the foregoing sections can be embodied in code components executed by one or more computer systems or computer processors including computer hardware and be automated, wholly or in part, by the code components. One or more computer systems or computer processors can also run to support the performance of related operations in a “cloud computing” environment or as “software as a service” (SaaS). The processes and algorithms can be implemented, in part or in whole, in special-purpose circuitry. The various features and processes described above can be used independently of one another or can be combined in various ways. Different combinations and sub-combinations are intended to fall within the scope of the present disclosure, and in some embodiments, certain method or process blocks can be omitted. The methods and processes described herein are also not limited to any particular order, and the blocks or states associated therewith can be executed in a suitable other order, or can be executed in parallel, or in some other way. Blocks or states can be added to or removed from the disclosed example embodiments. The performance of certain operations or processes can be distributed among computer systems or computer processors, not only residing within a single machine but also deployed across multiple machines.

[0046] As used herein, a circuit can be implemented using any form of hardware, software, or a combination thereof. For example, one or more processors, controllers, ASICs, PLAs, PALs, CPLDs, FPGAs, logic elements, software routines, or other mechanisms can be implemented to constitute a circuit. In an implementation, the various circuits described herein can be implemented as discrete circuits, or the described functions and features can be partially or wholly shared among one or more circuits. Even though the various features or elements of a function can be described or claimed separately as individual circuits, these features and functions can be shared among one or more common circuits, and such a description should not require or imply the need for separate circuits to implement these features or functions. In cases where the circuit is implemented, in whole or in part, using software, such software can be implemented to operate with a computing or processing system capable of performing the functions described thereof, such as the computer system 600.

[0047] As used herein, the term "or" may be construed in an inclusive or exclusive sense. In addition, descriptions of resources, operations, or structures in the singular form should not be construed as excluding the plural form. Conditional language, such as "can", "could", "may", or "might", unless specifically stated otherwise or otherwise understood within the context in which it is used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements, and / or steps.

[0048] Unless specifically stated otherwise, terms and phrases used herein and their variants should be construed as open-ended rather than limiting. Adjectives such as "conventional", "traditional", "usual", "standard", "known", and terms with similar meanings should not be construed as limiting the described item to items available during a given time period or items available at a given time, but should be understood to include conventional, traditional, usual, or standard techniques that may be available or known now or at any time in the future. In some cases, the presence of broadening words and phrases such as "one or more", "at least", "but not limited to", or other similar phrases should not be understood to imply that a narrower case is intended or required in instances where such broadening phrases may not be present.

Claims

1. A method for determining volume transparency, characterized in that, the method comprises: using a roughness parameter associated with an object to determine the front attenuation of the object; using an opacity parameter associated with the object to determine the back attenuation of the object; using the front attenuation and the back attenuation to calculate the backscattering of light at the front and back of the object; using the back attenuation to define the spectral transmission parameter of the object; and rendering the object in a graphical interface by applying the backscattering of the light and the spectral transmission parameter.

2. The method according to claim 1, wherein, the front attenuation of the object is determined based on a minimum thickness parameter associated with the object.

3. The method according to claim 1, wherein, the back attenuation of the object is determined based on a minimum light ray length parameter and a roughness parameter associated with the object.

4. The method according to claim 3, wherein, the distance between the entry point and the exit point of a light ray on the object is used to approximately calculate the volume absorption of the object.

5. The method according to claim 1, wherein, calculating the backscattering of the light is based on an albedo parameter that is an approximation of the color used for the backscattering of the light.

6. The method according to claim 5, wherein, the spectral transmission parameter is based on the subtractive inverse of the albedo parameter.

7. The method according to claim 5, wherein, the transmittance radiance of light through the object is proportional to the product of the subtractive inverse of the albedo and the back attenuation.

8. A mobile device, characterized in that, the mobile device comprises: a processor; and a memory encoded with instructions that, when executed, cause the processor to perform the following operations: using a roughness parameter associated with an object to determine the front attenuation of the object; using an opacity parameter associated with the object to determine the back attenuation of the object; using a total attenuation parameter associated with the object and the number of hits that the shadow rays of the object can record to define the shadow transparency parameter of the object, wherein the total attenuation parameter includes the front attenuation of the object and the back attenuation of the object; and rendering the object in a graphical interface by applying the shadow transparency parameter.

9. The mobile device according to claim 8, wherein, the front attenuation of the object is determined based on a minimum thickness parameter associated with the object.

10. The mobile device according to claim 8, wherein, the back attenuation of the object is determined based on a light ray length parameter associated with the object.

11. The mobile device according to claim 10, wherein, the light ray length parameter is approximated as the distance between the entry point and the exit point of the light ray.

12. The mobile device according to claim 8, wherein, the Fresnel reflectance is used to determine the front attenuation and the back attenuation of the object.

13. The mobile device according to claim 12, wherein, Approximately calculate the front attenuation of the object and the back attenuation of the object using the absolute value of the dot product of the surface normal of the object and the direction of the shadow ray of the object.

14. The mobile device according to claim 8, wherein, Set the number of hits that the shadow ray of the object can record based on user input.

15. A user interface for a mobile device, comprising a non-transitory machine-readable medium encoded with instructions that, when executed by a processor, cause the processor to perform the following operations: Determine the front attenuation of the object using a roughness parameter associated with the object; Determine the back attenuation of the object using an opacity parameter associated with the object; Define volume transparency by defining a light backscattering parameter of the object using a total attenuation parameter associated with the object and a light absorption parameter associated with the object, and defining a spectral transmission parameter of the object using the total attenuation parameter and the light backscattering parameter, wherein the total attenuation parameter includes the front attenuation of the object and the back attenuation of the object; Define the transparent shadow of the object using the total attenuation parameter and the number of hits that the shadow ray of the object can record; and Render the object in a graphical interface by applying the volume transparency and the transparent shadow.

16. The user interface according to claim 15, wherein, Determine the front attenuation of the object based on a minimum thickness parameter associated with the object.

17. The user interface according to claim 15, wherein, Determine the back attenuation of the object based on an opacity parameter associated with the object.

18. The user interface according to claim 17, wherein, The ray length parameter is approximated as the distance between the entry point of the ray and the exit point of the ray.

19. The user interface according to claim 15, wherein, Use Fresnel reflectivity to determine the front attenuation of the object and the back attenuation of the object.

20. The user interface according to claim 15, wherein, All parameters are generated based on user input.