Physical simulation in scene description
By identifying and mapping physical parameters in the scene description file, the interoperability problem between different game engines is solved, and cross-engine scene simulation consistency is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- INTERDIGITAL CE PATENT HOLDINGS SAS
- Filing Date
- 2024-09-25
- Publication Date
- 2026-04-17
AI Technical Summary
Different game engines cannot provide consistent 3D scene simulation when using the same physics parameters, resulting in poor interoperability.
By obtaining physical parameters from the scene description file, identifying the physical engine used by the runtime application, and assigning parameter values to the corresponding physical engine variables based on the mapping, cross-engine mapping and encoding of parameters are achieved.
It improves interoperability between game engines, ensuring consistency and accuracy in scene simulation across different engines.
Smart Images

Figure CN121889196A_ABST
Abstract
Description
[0001] Cross-referencing This application claims priority to European Patent Application No. 23306634.9, filed on September 29, 2023, entitled "Physical Simulation in Scene Description," which is incorporated herein by reference in its entirety. Background Technology
[0002] This disclosure generally relates to the encoding, decoding, and rendering of 3D scenes. It can also be understood in the context of augmented reality and extended reality applications being rendered and formatted for playback on end-user devices such as mobile devices or head-mounted displays (HMDs). 3D scenes can be represented by runtime asset delivery files (such as glTF files). Runtime asset delivery files can provide information about the 3D scene, including the geometry and organization of objects in the scene, as well as information used to bring these objects to life. Scene graphs (e.g., scene graphs proposed by Khronos / glTF and their extensions defined in formats such as MPEG scene description formats or Apple / USDZ) are possible ways to represent content to be rendered. They combine, on the one hand, an explanatory description of the scene structure linking real-world objects and virtual objects, and on the other hand, a binary representation of the virtual content.
[0003] Some research has been conducted to allow real-time game engines to perform physics simulations in 3D scenes in a collaborative manner. Scene description files can include parameters such as "usePhysics," "useGravity," "mass," "restitution," "staticFriction," and "dynamicFriction," which, theoretically, can be used by different game engines. However, some experiments using different game engines (such as Unreal Engine and Unity) have found that even using the same parameters, different game engines cannot reliably provide the same 3D scene simulations. Summary of the Invention
[0004] A method according to some embodiments includes: obtaining a scene description file; reading at least one value of a physical parameter from the scene description file; determining a physics engine used by a runtime application; identifying a parameter mapping based on the determined physics engine, wherein the mapping associates the physical parameters with physics engine variables; and assigning the values of the physical parameters to the physics engine variables according to the identified mapping.
[0005] In some embodiments, the physical parameters are at least one of the following: gravity parameters, maximum frame time, bounce threshold, collision detection mode, linear drag coefficient, and / or angular drag coefficient.
[0006] In some embodiments, at least one of these physical parameters is obtained from a scene-level extension in a scene description file.
[0007] In some embodiments, at least one of these physical parameters is obtained from a node-level extension in the scene description file.
[0008] Some embodiments also include reading a flag in a scene description file and determining that the flag is true, wherein at least one of these physical parameters is obtained from the scene description file only in response to determining that the flag is true.
[0009] In some embodiments, the parameter mapping is selected from a plurality of parameter mappings, including a first parameter mapping that maps a first physical parameter to a first physical engine variable and a second parameter mapping that maps the first physical parameter to a second physical engine variable, wherein the first physical engine variable and the second physical engine variable have different semantics. In some such embodiments, the first physical engine variable is a maximum interval and the second physical engine variable is a fixed interval.
[0010] A method according to some embodiments includes: creating a scene using a physics engine configured with at least one variable; encoding the scene into a scene description file; identifying a parameter mapping based on the physics engine; assigning variables to physics parameters based on the mapping; and encoding the physics parameters into the scene description file.
[0011] In some embodiments, the physical parameters are at least one of the following: gravity parameters, maximum frame time, bounce threshold, collision detection mode, linear drag coefficient, and / or angular drag coefficient.
[0012] In some embodiments, the physical parameters are at least one of the following: gravity parameters, maximum frame time, bounce threshold, collision detection mode, linear drag coefficient, and / or angular drag coefficient.
[0013] In some embodiments, at least one of these physical parameters is encoded in a scene-level extension of the scene description file.
[0014] In some embodiments, at least one of these physical parameters is encoded in a node-level extension of the scene description file.
[0015] Some embodiments also include encoding flags in the scene description file, wherein the value of the flags is based on whether the first of these physical parameters is encoded in the scene description file.
[0016] In some embodiments, the parameter mapping is selected from a plurality of parameter mappings, including a first parameter mapping that maps a first physical parameter to a first physical engine variable and a second parameter mapping that maps the first physical parameter to a second physical engine variable, wherein the first physical engine variable and the second physical engine variable have different semantics. In some such embodiments, the first physical engine variable is a maximum interval and the second physical engine variable is a fixed interval.
[0017] Additional embodiments include an apparatus that includes one or more processors configured to perform any of the methods described herein.
[0018] Additional embodiments include an apparatus comprising at least one processor and a computer-readable medium (which may be non-transitory) storing instructions for performing any of the methods described herein.
[0019] Additional embodiments include a computer-readable medium storing instructions for performing any of the methods described herein.
[0020] Additional embodiments include a computer-readable medium that stores a scene encoded according to any of the methods described herein.
[0021] Additional embodiments include a signal that transmits a scene encoded according to any of the methods disclosed herein. Attached Figure Description
[0022] Figure 1 This is a flowchart illustrating the processing of a scene description file including physical parameters, according to some embodiments.
[0023] Figure 2 This is a flowchart illustrating the settings of variables in the physics engine, based on some embodiments.
[0024] Figure 3 This is a flowchart illustrating how physical parameters are used to encode a scene description file based on variables from the physics engine.
[0025] Figure 4 This is a functional block diagram of a system that can be used to implement some of the embodiments. Detailed Implementation
[0026] Exemplary embodiments provide encoding, decoding, and processing of scene description files that contain parameters that can improve interoperability between game engines. In some embodiments, these parameters are contained within the scene description files; for example, they may be provided at the scene level, such as in the MPEG_scene_interactivity extension.
[0027] In some embodiments, a parameter is provided to indicate the collision detection mode. This parameter can identify the mode used by the game engine for collision detection. For example, the parameter can indicate whether the collision detection calculation mode is discrete (e.g., calculated once per frame) or continuous and dynamic (e.g., calculated multiple times per frame).
[0028] In some embodiments, a parameter is provided to indicate the maximum physical time frame. This parameter can be used to indicate the maximum time the physics engine is allowed to run in an update cycle. For example, if this parameter is set to 0.02, the engine will run at 50 times per second.
[0029] In some embodiments, a parameter is provided to indicate a bounce threshold. This parameter can be used to indicate a relative velocity threshold such that contacting subjects with a relative velocity below this threshold will not bounce.
[0030] In some embodiments, a parameter is provided to indicate the linear damping level. This parameter may be used to indicate the linear drag coefficient (the rate at which linear velocity decreases over time).
[0031] In some embodiments, a parameter is provided to indicate the angular damping level. This parameter can be used to indicate the angular drag coefficient (the rate at which the angular velocity decreases over time).
[0032] In some embodiments, a parameter is provided to indicate the gravity level. This parameter can be used to indicate the intensity of gravity used in physical simulations.
[0033] In some embodiments, flags may be provided to indicate whether one or more other parameters are provided. For example, a flag such as “enableHighPrecision” may be provided. In some embodiments, the parameters “physicMaxFrameTime” and “bounceThreshold” may be provided when this flag is set to TRUE, otherwise these parameters may be excluded.
[0034] In some embodiments, one or more parameters are provided at the node level (e.g., in the MPEG_node_interactivity extension) to provide better control over the physical simulation of each individual object. For example, parameters such as "collisionDetectionMode", "linearDamping", and / or "angularDamping" can be provided as node-level parameters.
[0035] Table 1 shows the parameters that can be included in scene-level extensions (such as "MPEG_scene_interactivity"). Parameters indicated by the sword symbol (†) are the parameters and their associated syntax introduced in this disclosure. While some embodiments may include all the presented parameters, other embodiments may include only a portion of the parameters, for example, only one of the parameters.
[0036]
[0037] Table 1. In Table 1 and other tables herein, the “Use” column indicates whether a particular parameter is mandatory (M) or optional (O) according to the specific embodiments shown in the table. However, the fact that a parameter is marked as “mandatory” for the embodiments shown in a particular table should not mean that the parameter is mandatory (or even not used at all) in different embodiments.
[0038] Table 2 shows the parameters that can be included in node-level extensions (such as "MPEG_node_interactivity"). Parameters indicated by the sword symbol (†) are the parameters and their associated syntax introduced in this disclosure. While some embodiments may include all the presented parameters, other embodiments may include only a portion of the parameters, for example, only one of the parameters.
[0039]
[0040] Table 2. In some embodiments, the "enableHighPrecision" flag and the "gravity" value can be provided at the scene level, but in an extension other than the MPEG_scene_interactivity extension. For example, some embodiments use an extension that may be called "MPEG_scene_physics". Examples of the syntax and semantics of such extensions are provided in Table 3.
[0041]
[0042] Table 3. Processing Model In some embodiments, the processing of the scene description file is as follows: Figure 1 The process is executed as shown in the flowchart. When the scene description file becomes available, for example when the application receives and begins parsing the scene description file (102), the file can be processed as follows: One or more physical parameters are obtained from a scene-level extension (104), which can be a dedicated extension (e.g., MPEG_scene_physics) or an extension containing interactive parameters (e.g., MPEG_interactivity extension). The scene-level physical parameters are mapped to appropriate game engine parameters based on the game engine used to provide real-time processing of the scene. Exemplary mappings of the parameters are provided in Table 4. In some embodiments, it is determined whether the enableHighPrecision parameter in the scene description file is true. If true, the physicMaxFrameTime and bounceThreshold parameters are also mapped to appropriate game engine parameters.
[0043] Processing continues, during which collisionable nodes (106) are identified, which may be based on information provided in the scene-level MPEG_interactivity extension. In some embodiments, these nodes are referenced via a node array parameter in the collision trigger. In an exemplary embodiment, these nodes have an MPEG_interactivity extension, where the usePhysics boolean value is true in the collision trigger.
[0044] The physical parameters are read from the scene description file and mapped to the corresponding physical engine parameters for the appropriate nodes (108). For each exemplary physical parameter disclosed herein (referred to as the “MPEG-I SD” parameter in Table 4), exemplary parameter mappings for the Unity, Unreal, and USD (General Scene Description) game engines are listed. It should be understood that the principles described herein are not limited to these specific examples of game engines. The appropriate game engine is then launched (110) using the parameter mappings and other information assigned in the scene description file.
[0045]
[0046] Table 4. exist Figure 2In the exemplary method shown, the runtime application obtains a scene description file (202) and reads the value of at least one physical parameter from the file (204). This physical parameter can be one or more of the parameters provided in, for example, Tables 1-3. The runtime application determines the physics engine to be used to perform the simulation of the scene (206). Based on the determination of which physics engine will be used, a mapping from physical parameters to variables is identified (208). For example, if the PhysX physics engine (the default physics engine for Unity game engines) is to be used, the mapping could be a mapping from the parameters in the first column of Table 4 to the variables in the second column of Table 4. If a USD-compatible physics engine is to be used, the mapping could be a mapping from the parameters in the first column of Table 4 to the variables in the fourth column of Table 4. Based on this mapping, the value of at least one physical parameter is assigned (210) to the mapped variables of the physics engine.
[0047] In some embodiments, one or more physical parameters in the scene description file can be mapped to variables with different semantics in different physics engines. For example, as described above, a parameter such as “physicMaxFrameTime” can be used to indicate the maximum time a physics engine is allowed to run in an update loop. In some embodiments, this parameter is mapped to different variables with different semantics for different physics engines. Some physics engines may allow setting a maximum time (or minimum rate) for each iteration of the physics simulation, but may allow using shorter times (or higher rates), for example, if a higher frame rate is used. Other physics engines may only allow setting a fixed iteration time (or fixed rate), which may be equal to or different from the frame rate. In some embodiments, the same physical parameter (e.g., “physicMaxFrameTime”) may be mapped to a maximum iteration time variable in a physics engine that uses such a variable, and may be mapped to a fixed iteration time variable in other physics engines.
[0048] Use some exemplary methods when creating scene description files. For example, in Figure 3 In this method, the content creator uses a physics engine (302) configured with at least one variable to vividly render the scene. If the content creator is satisfied with the scene, it can be encoded (304) into the scene description file. The parameter mapping is determined (306) based on the physics engine used. For example, if the Unity physics engine is used, the mapping could be a mapping from the variables in the second column of Table 4 to the parameters in the first column of Table 4. If the Unreal physics engine is used, the mapping could be a mapping from the variables in the third column of Table 4 to the parameters in the first column of Table 4. One or more variables used by the physics engine are assigned (308) to the appropriate parameters indicated by the mapping and encoded (310) into the scene description file.
[0049] Exemplary System The encoding, decoding, processing, and rendering of the scene descriptions presented in this article can be achieved using methods such as... Figure 4 This is achieved through the system's implementation. Figure 4 This is a block diagram illustrating examples of systems implementing various aspects and embodiments. System 1000 may be embodied as an apparatus including the various components described below and configured to perform one or more aspects described in this document. Examples of such apparatus include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. Elements of system 1000 may be embodied individually or in combination in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing elements and encoder / decoder elements of system 1000 are distributed across multiple ICs and / or discrete components. In various embodiments, system 1000 is communicatively coupled to one or more other systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In various embodiments, system 1000 is configured to implement one or more aspects described in this document.
[0050] System 1000 includes at least one processor 1010 configured to execute instructions loaded thereon to implement various aspects described herein, such as those described. Processor 1010 may include embedded memory, input / output interfaces, and various other circuitry known in the art. System 1000 includes at least one memory 1020 (e.g., a volatile memory device and / or a non-volatile memory device). System 1000 includes a storage device 1040 that may include non-volatile memory and / or volatile memory, including but not limited to electrically erasable programmable read-only memory (EEPROM), read-only memory (ROM), programmable read-only memory (PROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, disk drives, and / or optical disk drives. As a non-limiting example, storage device 1040 may include internal storage devices, attached storage devices (including removable and non-removable storage devices), and / or network-accessible storage devices.
[0051] System 1000 includes an encoder / decoder module 1030 configured to, for example, process data to provide an encoding or decoding scenario, and the encoder / decoder module 1030 may include its own processor and memory. The encoder / decoder module 1030 represents a module that can be included in a device to perform encoding and / or decoding functions. It is well known that a device can include one or both encoding and decoding modules. Alternatively, the encoder / decoder module 1030 may be implemented as a separate element of system 1000, or it may be incorporated within processor 1010 as a combination of hardware and software known to those skilled in the art.
[0052] Program code to be loaded onto processor 1010 or encoder / decoder 1030 to execute the various aspects described herein may be stored in storage device 1040 and subsequently loaded onto memory 1020 for execution by processor 1010. According to various embodiments, one or more of processor 1010, memory 1020, storage device 1040, and encoder / decoder module 1030 may store one or more of various items during the execution of the processes described herein. Such stored items may include, but are not limited to, input scenes, decoding scenes or portions of decoding scenes, bitstreams, matrices, variables, and intermediate or final results from equations, formulas, operations, and operational logic processing.
[0053] In some embodiments, the memory within the processor 1010 and / or encoder / decoder module 1030 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, external memory (e.g., the processing device may be the processor 1010 or the encoder / decoder module 1030) is used for one or more of these functions. The external memory may be memory 1020 and / or storage device 1040, such as volatile memory and / or non-volatile flash memory. In several embodiments, the external non-volatile flash memory is used to store, for example, the operating system of a television. In at least one embodiment, a fast external dynamic volatile memory, such as RAM, is used as working memory for video encoding and decoding operations, such as for MPEG-2 (MPEG stands for Moving Picture Experts Group; MPEG-2 is also known as ISO / IEC 13818, and 13818-1 is also known as H.222, and 13818-2 is also known as H.262), HEVC (HEVC stands for High Efficiency Video Coding, also known as H.265 and MPEG-H Part 2), or VVC (Various Video Coding, i.e., a new standard developed by JVET (Joint Video Experts Group)).
[0054] Inputs to the components of system 1000 can be provided through various input devices, as indicated in box 1130. Such input devices include, but are not limited to, (i) a radio frequency (RF) section that receives, for example, RF signals transmitted over the air by a broadcaster, (ii) a component (COMP) input terminal (or a set of COMP input terminals), (iii) a universal serial bus (USB) input terminal, and / or (iv) a high-definition multimedia interface (HDMI) input terminal.
[0055] In various embodiments, the input device of block 1130 has corresponding input processing elements known in the art. For example, the RF section may be associated with elements suitable for: (i) selecting a desired frequency (also known as selecting a signal, or limiting the signal band to a band), (ii) down-converting the selected signal, (iii) further band-limiting to a narrower band to select (e.g.,) a signal band that may be referred to as a channel in some embodiments), (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select the desired data packet stream. The RF section in various embodiments includes one or more elements performing these functions, such as frequency selectors, signal selectors, band limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF section may include tuners performing various of these functions, including, for example, down-converting a received signal to a lower frequency (e.g., intermediate frequency or near-baseband frequency) or baseband. In one set-top box embodiment, the RF section and its associated input processing elements receive RF signals transmitted via a wired (e.g., cable) medium and perform frequency selection by filtering, down-converting, and filtering again to the desired frequency band. Various embodiments rearrange the order of the above (and other) components, remove some of these components, and / or add other components that perform similar or different functions. Adding components may include inserting components between existing components, such as insert amplifiers and analog-to-digital converters. In various embodiments, the RF section includes an antenna.
[0056] Additionally, USB and / or HDMI terminals may include corresponding interface processors for connecting system 1000 to other electronic devices via USB and / or HDMI connections. It should be understood that aspects of input processing (e.g., Reed-Solomon error correction) may be implemented, for example, within a separate input processing IC or within processor 1010 as needed. Similarly, aspects of USB or HDMI interface processing may be implemented, as needed, within a separate interface IC or within processor 1010. The demodulated, error-corrected, and demultiplexed stream is provided to various processing elements, including, for example, processor 1010 and an encoder / decoder 1030 operating in conjunction with memory and storage elements, to process the data stream as needed for presentation on an output device.
[0057] Various components of system 1000 can be housed within an integrated housing. Within the integrated housing, the various components can be interconnected and transmit data between them using suitable connection means 1140 (e.g., internal buses known in the art, including inter-IC (I2C) buses, wiring, and printed circuit boards).
[0058] System 1000 includes a communication interface 1050 that enables communication with other devices via a communication channel 1060. The communication interface 1050 may include, but is not limited to, a transceiver configured to transmit and receive data via the communication channel 1060. The communication interface 1050 may include, but is not limited to, a modem or network interface card (NIC), and the communication channel 1060 may be implemented, for example, within a wired and / or wireless medium.
[0059] In various embodiments, data is streamed to or otherwise provided to system 1000 using a wireless network, such as a Wi-Fi network, for example, IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). In these embodiments, the Wi-Fi signal is received via a communication channel 1060 and a communication interface 1050 adapted for Wi-Fi communication. The communication channel 1060 in these embodiments is typically connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other top-level communications. Other embodiments use a set-top box to provide streaming data to system 1000, delivering data via an HDMI connection to input box 1130. Still other embodiments use an RF connection to input box 1130 to provide streaming data to system 1000. As indicated above, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, such as cellular networks or Bluetooth networks.
[0060] System 1000 can provide output signals to various output devices, including display 1100, speaker 1110, and other peripheral devices 1120. Display 1100 in various embodiments includes one or more of, for example, a touchscreen display, an organic light-emitting diode (OLED) display, a curved display, and / or a foldable display. Display 1100 can be used in televisions, tablets, laptops, mobile phones, or other devices. Display 1100 can also be integrated with other components (e.g., in a smartphone) or standalone (e.g., an external monitor for a laptop computer). In various examples of embodiments, other peripheral devices 1120 include one or more of a standalone digital video disc (or digital versatile disc) (DVR, for both terms), an optical disc player, a stereo system, and / or a lighting system. Various embodiments use one or more peripheral devices 1120 to provide functionality based on the output of system 1000. For example, an optical disc player performs the function of playing the output of system 1000.
[0061] In various embodiments, signaling such as AV.Link, Consumer Electronics Control (CEC), or other communication protocols that enable device-to-device control with or without user intervention are used to transmit control signals between system 1000 and display 1100, speaker 1110, or other peripheral devices 1120. Output devices may be communicatively coupled to system 1000 via dedicated connections through corresponding interfaces 1070, 1080, and 1090. Alternatively, output devices may be connected to system 1000 via communication interface 1050 using communication channel 1060. Display 1100 and speaker 1110 may be integrated into a single unit along with other components of system 1000 in an electronic device, such as a television. In various embodiments, display interface 1070 includes a display driver, such as a timing controller (TCon) chip.
[0062] For example, if the RF input section 1130 is part of a separate set-top box, the display 1100 and speaker 1110 can alternatively be separate from one or more of the other components. In various embodiments where the display 1100 and speaker 1110 are external components, the output signal can be provided via a dedicated output connection, including, for example, an HDMI port, a USB port, or a COMP output.
[0063] System 1000 may include one or more sensor devices 1095. Examples of sensor devices that may be used include one or more GPS sensors, gyroscope sensors, accelerometers, light sensors, cameras, depth cameras, microphones, and / or magnetometers. Such sensors can be used to determine information such as the user's position and orientation. Where system 1000 is used as a control module (such as control modules 124, 1254) for an augmented reality display, the user's position and orientation can be used to determine how to render image data so that the user perceives the correct portion of a virtual object or scene from the correct perspective. In the case of a head-mounted display device, the position and orientation of the device itself can be used to determine the user's position and orientation for rendering virtual content. In the case of other display devices (such as telephones, tablets, computer monitors, or televisions), other inputs can be used to determine the user's position and orientation for rendering content. For example, a user can select and / or adjust the desired viewpoint and / or viewing direction by using a touchscreen, keypad or keyboard, trackball, joystick, or other inputs. Where the display device has sensors such as accelerometers and / or gyroscopes, the viewpoint and orientation can be selected and / or adjusted based on the movement of the display device for rendering content.
[0064] The embodiments can be executed by processor 1010 or by computer software implemented by hardware or a combination of hardware and software. As a non-limiting example, the embodiments can be implemented by one or more integrated circuits. As a non-limiting example, memory 1020 can be of any type suitable for the technical environment and can be implemented using any suitable data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory. As a non-limiting example, processor 1010 can be of any type suitable for the technical environment and can encompass one or more microprocessors, general-purpose computers, special-purpose computers, and processors based on multi-core architectures.
[0065] Another embodiment. This disclosure describes various aspects, including tools, features, embodiments, models, methods, etc. Many of these aspects are described in a specific manner and are generally described in a way that may sound limiting, at least for the purpose of illustrating the various features. However, this is for the purpose of clarity of description and does not limit the disclosure or scope of these aspects. In fact, all the different aspects can be combined and interchanged to provide other aspects. Furthermore, these aspects can also be combined and interchanged with aspects described in previous documents.
[0066] The aspects described and contemplated in this disclosure can be implemented in many different forms. While some embodiments are specifically shown, other embodiments are contemplated, and the discussion of particular embodiments does not limit the breadth of implementations. At least one aspect generally relates to encoding and decoding, and at least one other aspect generally relates to transmitting a generated or encoded bitstream. These and other aspects can be implemented as methods, apparatuses, computer-readable storage media having instructions thereon stored for encoding or decoding scene data according to any of the methods, and / or computer-readable storage media having bitstreams generated according to any of the methods stored thereon.
[0067] This document describes various methods, each of which includes one or more steps or actions to implement the described method. The order and / or use of specific steps and / or actions can be modified or combined unless the correct operation of the method requires a specific order of steps or actions. Additionally, in various embodiments, terms such as "first," "second," etc., may be used to modify elements, components, steps, operations, etc., such as, for example, "first decoding" and "second decoding." Unless specifically required, the use of such terms does not imply an ordering of the modified operations. Therefore, in this example, the first decoding does not need to be performed before the second decoding, but can occur, for example, before, during, or in a time period overlapping with the second decoding.
[0068] For example, various numerical values may be used in this disclosure. Specific values are for illustrative purposes, and the aspects described are not limited to these specific values.
[0069] The embodiments described herein can be executed by computer software implemented by a processor or other hardware or a combination of hardware and software. As a non-limiting example, the embodiments can be implemented by one or more integrated circuits. As a non-limiting example, the processor can be of any type suitable for the technical environment and can encompass one or more microprocessors, general-purpose computers, special-purpose computers, and processors based on multi-core architectures.
[0070] When a diagram is presented as a flowchart, it should be understood that a block diagram of the corresponding device is also provided. Similarly, when a diagram is presented as a block diagram, it should be understood that a flowchart of the corresponding method / process is also provided.
[0071] The implementations and aspects described herein can be implemented, for example, in methods or processes, devices, software programs, data streams, or signals. Even if discussed only in the context of a single implementation (e.g., discussed only as a method), the implementation of the features in question can also be implemented in other forms (e.g., devices or programs). Devices can be implemented, for example, with appropriate hardware, software, and firmware. Methods can be implemented, for example, in a processor, which generally refers to a processing device, including, for example, a computer, microprocessor, integrated circuit, or programmable logic device. Processors also include communication devices, such as computers, cellular phones, portable / personal digital assistants (“PDAs”), and other devices that facilitate information communication between end users.
[0072] The references to "an embodiment" or "an embodiment" or "an implementation" or "an implementation," and other variations thereof, mean that a particular feature, structure, characteristic, etc., described in connection with that embodiment is included in at least one embodiment. Therefore, the phrases "in an embodiment" or "in an embodiment" or "in an implementation" or "in an implementation," and any other variations appearing throughout this disclosure, do not necessarily refer to the same embodiment.
[0073] Additionally, this disclosure may relate to “determining” various types of information. Determining information may include one or more of the following: for example, estimated information, calculated information, predicted information, or information retrieved from memory.
[0074] Furthermore, this disclosure may relate to “accessing” various types of information. Accessing information may include one or more of the following: for example, receiving information, retrieving information (e.g., retrieving from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0075] Additionally, this disclosure may relate to "receiving" various types of information. Like "access," the intent to receive is a broad term. Receiving information may include one or more of the following: for example, accessing information or retrieving information (e.g., retrieving from memory). Furthermore, "receiving" is generally referred to in one or more ways during operation, such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0076] It should be understood that, for example, in the cases of “A / B,” “A and / or B,” and “at least one of A and B,” the use of any of the following “ / ,” “and / or,” and “at least one” is intended to cover selecting only the first listed option (A), or only the second listed option (B), or selecting both options (A and B). As yet another example, in the cases of “A, B, and / or C” and “at least one of A, B, and C,” this wording is intended to include selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or selecting all three options (A, B, and C). This can be extended to as many as the items listed.
[0077] Furthermore, as used herein, the term “signaling” specifically refers to instructing the corresponding decoder to do something. For example, in some embodiments, the encoder signals a particular parameter among several parameters for region-based filter parameter selection for artifact removal filtering. In this way, in embodiments, the same parameter is used at both the encoder and decoder sides. Thus, for example, the encoder can send (explicitly signal) a specific parameter to the decoder so that the decoder can use the same specific parameter. Conversely, if the decoder already has the specific parameter as well as other parameters, signaling can be used without sending (implicitly signaling) to simply allow the decoder to know and select the specific parameter. Bit savings are achieved in various embodiments by avoiding the transmission of any actual functionality. It should be understood that signaling can be implemented in various ways. For example, in various embodiments, one or more syntactic elements, flags, etc., are used to send information to the corresponding decoder. Although the verb form of the word “signal” has been referred to above, the word “signal” can also be used as a noun herein.
[0078] Implementations can generate various signals that are formatted to carry information, such as information that can be stored or transmitted. The information may include, for example, instructions for performing a method, or data generated by one of the described implementations. For example, the signal may be formatted to carry a bitstream of the described embodiment. Such a signal may be formatted as, for example, electromagnetic waves (e.g., using the radio frequency portion of the spectrum) or baseband signals. Formatting may include, for example, encoding the data stream and modulating a carrier wave with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. It is well known that signals can be transmitted via a variety of different wired or wireless links. The signal may be stored on a processor-readable medium.
[0079] Several embodiments are described. Features of these embodiments may be provided individually or in any combination across various claim classes and types. Furthermore, embodiments may include one or more of the following features, means, or aspects individually or in any combination across various claim classes and types: A bitstream or signal that includes one or more of the described syntactic elements or their variants.
[0080] A bitstream or signal, which includes syntax for conveying information generated according to any embodiment of the described embodiments.
[0081] Create and / or send and / or receive and / or decode bitstreams or signals, which include one or more of the described syntactic elements or their variants.
[0082] Create and / or send and / or receive and / or decode according to any of the described embodiments.
[0083] A method, process, apparatus, medium for storing instructions, medium for storing data, or signal according to any of the described embodiments.
[0084] It should be noted that various hardware elements, one or more of which are described in the embodiments, may be referred to as “modules”, which implement (i.e., perform, execute, etc.) the various functions described herein in connection with the respective modules. As used herein, a module includes hardware considered suitable for a given implementation (e.g., one or more processors, one or more microprocessors, one or more microcontrollers, one or more microchips, one or more application-specific integrated circuits (ASICs), one or more field-programmable gate arrays (FPGAs), one or more memory devices). Each described module may also include executable instructions for performing one or more functions described as being performed by the respective module, and it should be noted that these instructions may take the form of hardware (i.e., hardwired) instructions, firmware instructions, software instructions, etc., or include hardware (i.e., hardwired) instructions, firmware instructions, software instructions, etc., and may be stored in any suitable non-transitory computer-readable medium such as RAM, ROM, etc., commonly referred to as RAM, ROM, etc.
[0085] Although features and elements have been described above in specific combinations, each feature or element may be used alone or in any combination with other features and elements. Furthermore, the methods described herein can be implemented in a computer program, software, or firmware incorporated into a computer-readable medium for execution by a computer or processor. Examples of computer-readable storage media include, but are not limited to, read-only memory (ROM), random access memory (RAM), registers, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM discs and digital multifunction disks (DVDs). The processor associated with the software can be used to implement a radio frequency transceiver for a WTRU, UE, terminal, base station, RNC, or any host computer.
Claims
1. A method comprising: Obtain the scene description file; Read at least one value of the physical parameter from the scene description file; Determine the physics engine used by the runtime application; Based on the determined physics engine, a parameter mapping is identified, wherein the mapping associates physics parameters with physics engine variables; as well as The values of the physical parameters are assigned to the physics engine variables based on the identified mapping.
2. An apparatus comprising one or more processors, said one or more processors being configured to perform at least: Obtain the scene description file; Read at least one value of the physical parameter from the scene description file; Determine the physics engine used by the runtime application; Based on the determined physics engine, parameter mappings are identified, wherein the mappings associate physics parameters with physics engine variables; and The values of the physical parameters are assigned to the physics engine variables based on the identified mapping.
3. The method of claim 1 or the device of claim 2, wherein the physical parameter is at least one of the following: gravity parameter, maximum frame time, bounce threshold, collision detection mode, linear drag coefficient and / or angular drag coefficient.
4. The method of claim 1 or claim 3 which is a subset of claim 1, or the device of claim 2 or claim 3 which is a subset of claim 2, wherein at least one of the physical parameters is obtained from a scene-level extension in the scene description file.
5. The method of claim 1 or claims 3 to 4 which are dependent on claim 1, or the device of claim 2 or claims 3 to 4 which are dependent on claim 2, wherein at least one of the physical parameters is obtained from a node-level extension of the scene description file.
6. The method of claim 1 or claims 3 to 5 of claim 1, or the device of claim 2 or claims 3 to 5 of claim 2, further comprising reading a flag in the scene description file and determining that the flag is true, wherein at least one of the physical parameters is obtained from the scene description file only in response to determining that the flag is true.
7. The method of claim 1 or the apparatus of claims 3 to 6 of claim 1, or the apparatus of claim 2 or the apparatus of claims 3 to 6 of claim 2, wherein the parameter mapping is selected from a plurality of parameter mappings, the plurality of parameter mappings including a first parameter mapping that maps a first physical parameter to a first physical engine variable and a second mapping that maps the first physical parameter to a second physical engine variable, wherein the first physical engine variable and the second physical engine variable have different semantics.
8. The method of claim 7 as dependent on claim 1, or the device of claim 7 as dependent on claim 2, wherein the first physical engine variable is a maximum interval and the second physical engine variable is a fixed interval.
9. A method comprising: Use a physics engine with at least one variable configured to create scenes; The scene is encoded into a scene description file; The parameter mapping is identified based on the aforementioned physics engine; The variables are assigned to physical parameters based on the mapping. as well as The physical parameters are encoded into the scene description file.
10. An apparatus comprising one or more processors, said one or more processors being configured to perform at least: Use a physics engine with at least one variable configured to create scenes; The scene is encoded into a scene description file; The parameter mapping is identified based on the aforementioned physics engine; The variables are assigned to physical parameters based on the mapping. as well as The physical parameters are encoded into the scene description file.
11. The method of claim 9 or the device of claim 10, wherein the physical parameter is at least one of the following: gravity parameter, maximum frame time, bounce threshold, collision detection mode, linear drag coefficient and / or angular drag coefficient.
12. The method of claim 9 or claim 11 which is a subset of claim 9, or the device of claim 10 or claim 11 which is a subset of claim 10, wherein at least one of the physical parameters is encoded in a scene-level extension of the scene description file.
13. The method of claim 9 or claims 11 to 12 which are dependent on claim 9, or the device of claim 10 or claims 11 to 12 which are dependent on claim 10, wherein at least one of the physical parameters is encoded in a node-level extension of the scene description file.
14. The method of claim 9 or claims 11 to 13 thereof, or the device of claim 10 or claims 11 to 13 thereof, further comprising an encoded flag in the scene description file, wherein the value of the flag is based on whether a first of the physical parameters is encoded in the scene description file.
15. The method of claim 9 or claims 11 to 14 which are dependent on claim 9, or the device of claim 10 or claims 11 to 14 which are dependent on claim 10, wherein the parameter mapping is selected from a plurality of parameter mappings, the plurality of parameter mappings including a first parameter mapping that maps a first physical parameter to a first physical engine variable and a second mapping that maps the first physical parameter to a second physical engine variable, wherein the first physical engine variable and the second physical engine variable have different semantics.