System, program, and information processing method

The system dynamically loads assets across multiple storage devices, addressing performance variability by visually associating assets with their storage locations and optimizing loading, thereby enhancing user experience in virtual space rendering.

WO2025182347A1PCT designated stage Publication Date: 2025-09-04SONY GROUP CORP
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/001543
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-29
Filing Date
2025-01-20
Publication Date
2025-09-04

AI Technical Summary

Technical Problem

Existing technologies for rendering vast virtual spaces, such as cloud gaming and the metaverse, face challenges due to the correlation between storage performance and user experience degradation, particularly when using diverse and heterogeneous storage devices, leading to sudden frame rate drops and user experience issues.

Method used

A system and method that dynamically loads assets across multiple storage devices, providing a display control unit to associate assets with their storage locations, a measurement unit to assess storage performance, and an optimization unit to optimize loading based on performance scores, allowing users to intuitively understand and manage storage performance.

Benefits of technology

Enhances user experience by visually indicating asset storage locations and optimizing loading to mitigate frame rate drops, providing a clear understanding of storage performance and enabling informed decisions to improve user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025001543_04092025_PF_FP_ABST
    Figure JP2025001543_04092025_PF_FP_ABST
Patent Text Reader

Abstract

[Problem] To enable a user to intuitively grasp a relationship between an asset and a storage. [Solution] Provided is a system comprising a display control unit that, with respect to rendering of a virtual space based on dynamic loading of one or more assets, causes the loaded asset and a storage in which the asset is stored to be displayed in association with each other, wherein the asset is stored in one or a plurality of storages in a distributed manner.
Need to check novelty before this filing date? Find Prior Art

Description

System, program, and information processing method

[0001] The present disclosure relates to a system, a program, and an information processing method.

[0002] In recent years, applications that provide realistic and vast virtual spaces, such as cloud gaming and the metaverse, have been developed. In such applications, it is known that the performance of the storage that stores the assets used to render the virtual space affects the frame rate. In addition, assets may be stored across multiple storage devices.

[0003] Japanese Patent Application Laid-Open No. 2003-216348

[0004] Patent Literature 1 describes a technology for displaying performance values ​​for each of a plurality of storage devices. However, if the technology described in Patent Literature 1 is simply applied to rendering a virtual space, the user will not be able to grasp the relationship between assets and storage devices.

[0005] According to one aspect of the present disclosure, there is provided a system for rendering a virtual space based on dynamic loading of one or more assets, the system including a display control unit that displays the loaded assets in association with storages in which the assets are saved, the assets being stored in a distributed manner across one or more of the storages.

[0006] According to another aspect of the present disclosure, there is provided a program that causes a computer to realize a display control function for rendering a virtual space based on dynamic loading of one or more assets, and for displaying the loaded assets in association with the storage in which the assets are saved, and the assets are saved in a distributed manner across one or more of the storages.

[0007] According to another aspect of the present disclosure, there is provided an information processing method, in which a processor controls rendering of a virtual space based on dynamic loading of a plurality of assets, to display the loaded assets in association with the storage in which the assets are saved, and the plurality of assets are stored in a distributed manner across a plurality of the storages.

[0008] 15A and 15B are diagrams for explaining a performance difference between storages; a diagram for explaining a frame rate and a loading speed according to a performance difference between storages; a block diagram showing an example configuration of a system 1 according to an embodiment of the present disclosure; a diagram showing an example display related to the association of assets and storage according to the embodiment; a diagram showing an example display related to the association of assets and storage according to the embodiment; a diagram showing an example display related to a trigger for starting measurement by the measurement unit 122 according to the embodiment; a diagram showing an example display related to measurement parameter selection according to the embodiment; a diagram showing an example display of measurement results according to the embodiment; a diagram showing an example display based on scores according to the embodiment; a flowchart showing an example of a measurement flow according to the embodiment; a diagram showing an example of a measurement parameter list according to the embodiment; a diagram showing an example of a storage list according to the embodiment; a flowchart showing an example of a processing flow in step S106 shown in FIG. 10; a diagram showing an example of a measurement result list according to the embodiment; a flowchart showing an example of a measurement flow according to the embodiment; a diagram showing an example of a threshold list according to the embodiment; a flowchart showing an example of a processing flow in step S204 shown in FIG. 15; a sequence diagram showing an example of a measurement flow including score calculation based on past measurement results of a single host according to the embodiment; a sequence diagram showing an example of a measurement flow including score calculation based on past measurement results of a single host according to the embodiment; a sequence diagram showing an example of a measurement flow including score calculation based on past measurement results of multiple hosts according to the embodiment; a sequence diagram showing an example of an optimization flow according to the embodiment; FIG. 10 is a sequence diagram showing an example of a flow of optimization according to the embodiment.

[0009] Preferred embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. In this specification and drawings, components having substantially the same functional configurations are designated by the same reference numerals, and redundant description will be omitted.

[0010] In addition, in this specification and drawings, when multiple identical components are to be described separately, letters or the like may be added to the end of the reference numerals. On the other hand, when it is not necessary to distinguish between multiple identical components, the letters or the like may be omitted and a description common to all of the multiple identical components may be given.

[0011] The description will be given in the following order: 1. Embodiment 1.1. Background 1.2. Configuration example 1.3. Functional details 1.4. Modification 2. Summary

[0012] <1. Embodiment> <<1.1. Background>> First, the background of an embodiment of the present disclosure will be described.

[0013] As mentioned above, in recent years, applications that provide realistic and vast virtual spaces, such as cloud gaming and the metaverse, have been developed. In developing such applications, a method is generally adopted in which dynamic rendering is pre-calculated and saved as an asset in storage, and the storage is then loaded into memory as appropriate to reduce the processing load.

[0014] For this reason, the more high-quality and realistic a virtual space an application creates, the larger the size of each asset tends to be. For example, it is becoming common for a single game package to contain 100 GB or more of assets, and for downloadable content (DLC) to contain tens of GB or more of assets.

[0015] On the other hand, devices such as game consoles, PCs (Personal Computers), smartphones, and HMDs (Head Mounted Displays) on which rendering engines that render virtual spaces are installed have limited computing resources.

[0016] For this reason, it is difficult for such devices to load a vast virtual space (also called a level) and assets into memory at once.

[0017] To address these memory limitations, modern rendering engines use dynamic loading technology to dynamically load and unload assets depending on the distance between the avatar or camera (viewpoint) and the asset, thereby contributing to memory savings.

[0018] Examples of the dynamic loading technology include Level Streaming and Texture Streaming, which are supported in rendering engines such as Unreal Engine (registered trademark) and Unity (registered trademark).

[0019] Dynamic loading technologies such as Level Streaming and Texture Streaming are important for rendering vast virtual spaces, but depending on the I / O performance (hereinafter sometimes simply referred to as "performance") of the storage in which the loaded assets are saved, they may result in a degraded user experience.

[0020] More specifically, when dynamic loading is performed using low-performance storage, a sudden drop in frame rate (also known as a hitch) may occur, which may result in stuttering or freezing of the application.

[0021] Furthermore, in recent years, with the development of communication technology and the like, the storage devices for storing assets have become more diverse, and as a result, the I / O characteristics of the storage devices have also become more diverse.

[0022] Storage used to save assets includes, for example, SATA, PCIe (Peripheral Component Interconnect Express), USB (Universal Serial Bus), and also those that are mounted on an OS (Operating System) via a network such as Ethernet.

[0023] Examples of storage that is OS-mounted via a network include storage areas that are provided to a client by the client accessing a storage server using protocols such as iSCSI (Internet Small Computer System Interface), NVMe-oF (NVMe (Non-Volatile Memory Express) over Fabrics), and SMB (Server Message Block).

[0024] FIG. 1 is a diagram for explaining the performance difference between storages.

[0025] FIG. 1 shows examples of measured values ​​of IOPS (I / O Per Second), bandwidth, and latency average for each of high-speed storage and low-speed storage.

[0026] An example of a high-speed storage is an M.2 solid state drive (SSD), while an example of a low-speed storage is a hard disk drive (HDD) or the above-mentioned storage mounted on the OS via a network.

[0027] As shown in FIG. 1, there may be differences of several times in terms of IOPS, bandwidth, and average delay time between high-speed storage and low-speed storage.

[0028] FIG. 2 is a diagram for explaining the frame rate and loading speed according to the performance difference of the storage.

[0029] The upper left section of Fig. 2 shows the transition of the frame rate when assets are stored in high-speed storage. The lower left section of Fig. 2 shows the transition of the loading speed when assets are stored in high-speed storage. The upper right section of Fig. 2 shows the transition of the frame rate when assets are stored in low-speed storage. The lower right section of Fig. 2 shows the transition of the loading speed when assets are stored in low-speed storage.

[0030] As illustrated in FIG. 2, when assets are stored in slow storage, the loading speed is significantly slower than when assets are stored in fast storage, which can result in a sudden drop (hitch) in the frame rate.

[0031] As explained above, there is a high correlation between storage performance and hitches, which can be indicators of a degradation in the user experience. Furthermore, given the recent expansion of asset sizes and the anticipated future expansion of assets, storage performance will become even more important.

[0032] Furthermore, as mentioned above, the diversification of storage, and therefore the diversification of storage I / O characteristics (performance), has led to a demand for technologies that visualize storage performance and technologies that optimize loading according to storage performance.

[0033] <<1.2. Configuration Example>> Hereinafter, a configuration example of a system 1 according to an embodiment of the present disclosure, which was conceived in light of the above-described background, will be described.

[0034] FIG. 3 is a block diagram illustrating an example configuration of the system 1 according to an embodiment of the present disclosure.

[0035] As shown in FIG. 3, the system 1 according to this embodiment includes at least an information processing device 10 .

[0036] (Information Processing Device 10) The information processing device 10 according to this embodiment may be any of various devices that execute an application that renders a virtual space based on dynamic loading of assets, such as a game console, a PC, a smartphone, an HMD, a smartphone, etc. In addition to the above-mentioned devices, the information processing device 10 may also be, for example, earphones, headphones, etc. (including hearing aids, sound amplifiers, etc.).

[0037] As shown in FIG. 3, the information processing device 10 according to this embodiment includes a rendering engine 110 and a plug-in agent 120 that run on an operating system (OS) 130, a processor 140, memory 150, multiple disks 160, a network interface card (NIC) 170, and the like.

[0038] (Rendering Engine 110) The rendering engine 110 according to this embodiment is a variety of applications that perform rendering of a virtual space based on dynamic loading of assets.

[0039] The assets according to this embodiment may be various objects or components for constructing a virtual space, such as level assets and texture assets.

[0040] (Plug-in Agent 120 ) The plug-in agent 120 according to this embodiment is a program that extends the functions of the rendering engine 110 , and is made up of a display control unit 121 , a measurement unit 122 , and an optimization unit 123 .

[0041] The program consisting of the display control unit 121, the measurement unit 122, and the optimization unit 123 is not limited to the plug-in agent 120, and may be pre-installed in the OS .

[0042] Furthermore, the information processing device 10 does not necessarily need to include the rendering engine 110 , and rendering may be performed by a server installed in a data center or the like, and the rendering results may be distributed to the information processing device 10 .

[0043] (Display control unit 121) The display control unit 121 according to this embodiment enables the information processing device 10 to realize a display control function that displays the loaded assets in association with the storage in which the assets are saved, in relation to the rendering of a virtual space based on the dynamic loading of multiple assets.

[0044] The functions of the display control unit 121 according to this embodiment will be described in detail later.

[0045] (Measurement Unit 122) The measurement unit 122 according to this embodiment enables the information processing device 10 to realize a measurement function for measuring storage performance.

[0046] The functions of the measurement unit 122 according to this embodiment will be described in detail later.

[0047] (Optimization unit 123) The optimization unit 123 according to this embodiment enables the information processing device 10 to realize an optimization function that optimizes the dynamic loading of assets based on a score that indexes the performance of storage based on the measurement results by the measurement unit 122.

[0048] The functions of the optimization unit 123 according to this embodiment will be described in detail later.

[0049] (OS 130) The OS 130 according to this embodiment may be, for example, Windows (registered trademark), Linux (registered trademark), or a dedicated OS depending on the application.

[0050] (Processor 140) The processor 140 according to this embodiment includes, for example, a GPU (Graphics Processing Unit), a CPU (Central Processing Unit), and the like.

[0051] (Memory 150) The memory 150 according to this embodiment includes a RAM (Random Access Memory) and a ROM (Read Only Memory).

[0052] (Disk 160) The disk 160 according to this embodiment is an example of a storage device that stores assets.

[0053] One of the features of the assets according to this embodiment is that they are distributed and stored in multiple storage devices.

[0054] The information processing device 10 according to this embodiment may include n disks 160-1 to 160-n.

[0055] On the other hand, as will be described later, when the system 1 includes a storage server 20 , the information processing device 10 may include a single disk 160 .

[0056] (NIC 170) The NIC 170 according to this embodiment is an expansion device for connecting the information processing device 10 to a network.

[0057] The basic configuration of the information processing device 10 according to this embodiment has been described above with reference to an example.

[0058] The information processing device 10 according to this embodiment is connected to an input device (not shown), a display device (not shown), and the like.

[0059] The input device includes a mouse, a keyboard, a touch panel, a button, a switch, and the like.

[0060] The display device can be any type of display.

[0061] As shown in FIG. 3, the system 1 according to this embodiment may also include a storage server 20, a collector 30, and the like.

[0062] (Storage Server 20) The storage server 20 according to this embodiment is an example of a storage that is mounted on the OS 130 via the NIC 170 using a protocol such as iSCSI, NVMe-oF, or SMB.

[0063] If the information processing device 10 includes a plurality of disks 160 , the system 1 does not necessarily need to include the storage server 20 .

[0064] (Collector 30) The collector 30 according to this embodiment is a device that aggregates measurement results related to a plurality of information processing devices 10 (an example of a host) in which a program such as the plug-in agent 120 according to this embodiment is installed.

[0065] However, as will be described later, the optimization according to this embodiment can be performed using only the measurement results for a single host, so the system 1 does not necessarily need to include the collector 30 .

[0066] <<1.3. Detailed Functions>> Next, the functions of the system 1 according to this embodiment will be described in detail.

[0067] First, a specific example of display control by the display control unit 121 according to this embodiment will be described.

[0068] One of the features of the display control unit 121 of this embodiment is that, in rendering a virtual space based on dynamic loading of assets stored in multiple storages, the loaded assets are displayed in association with the storage in which the assets are stored.

[0069] According to the above feature, a user (a player of the application or a developer of the application) can intuitively grasp in which storage the assets in the virtual space are saved.

[0070] Furthermore, if the user is aware of the characteristics (performance) of each storage device, the user can visually check the correspondence between the displayed assets and storage devices to determine whether the assets are stored in the appropriate storage device.

[0071] The display control unit 121 according to this embodiment may display each asset in a different display mode depending on the storage device in which the asset is saved.

[0072] 4 and 5 are diagrams showing examples of displays relating to the association of assets and storage according to this embodiment.

[0073] As shown in Figure 4, the display control unit 121 according to this embodiment may indicate the storage in which each asset is stored, for example, by changing the color, texture, etc. of the asset for each storage in which the asset is stored.

[0074] On the other hand, as shown in FIG. 5, the display control unit 121 according to this embodiment may indicate the storage in which each asset is stored, for example, by changing the outline of the asset for each storage in which the asset is stored.

[0075] In addition to the above examples, the display control unit 121 may vary the brightness, saturation, transparency, etc. of each asset for each storage. Note that the color, texture, brightness, saturation, transparency, etc. of each asset may be preset or may be changed as appropriate by the user.

[0076] According to the display as exemplified above, the user can intuitively grasp in which storage the assets in the virtual space are saved.

[0077] Furthermore, the display control unit 121 according to this embodiment controls the display related to the performance measurement (sometimes referred to as measurement) of the storage by the measurement unit 122 .

[0078] FIG. 6 is a diagram showing an example of a display related to a trigger for starting measurement by the measurement unit 122 according to this embodiment.

[0079] As shown in FIG. 6 , the display control unit 121 according to this embodiment may display, for example, a button B1 labeled with text such as "Start measurement" based on a request from the measurement unit 122. However, the display of the button B1 is merely one example of a trigger for starting measurement. The trigger for starting measurement by the measurement unit 122 may be, for example, an instruction from a user's speech. The measurement unit 122 may start measurement in response to, for example, the recognition result of a user's speech such as "Start measurement." Note that the type of trigger for starting measurement according to this embodiment (such as a button, voice, or other trigger) may be set in advance, or may be set or changed as appropriate by the user.

[0080] FIG. 7 is a diagram showing an example of a display related to measurement parameter selection according to this embodiment.

[0081] When the user presses the button B1 shown in FIG. 6, the display control unit 121 subsequently displays a plurality of buttons B2n for allowing the user to select parameters (measurement parameters) to be used in the measurement.

[0082] FIG. 7 illustrates an example in which the display control unit 121 displays buttons B21 to B24 respectively indicating four different measurement parameters.

[0083] The measurement parameters according to this embodiment will be described in detail later.

[0084] 7 is selected, the measurement unit 122 starts measurement. Here, instead of starting measurement when one of the buttons B2n is selected, the measurement start may be triggered by the recognition result of a user utterance. For example, the measurement unit 122 may start measurement when an utterance such as "start measurement" by the user is recognized.

[0085] FIG. 8 is a diagram showing an example of displaying the measurement results according to this embodiment.

[0086] As shown in FIG. 8, the display control unit 121 according to this embodiment may display the measurement results of the storage performance by the measurement unit 122.

[0087] 8, the measurement result according to this embodiment may include, for example, at least one of IOPS, bandwidth, and delay time. On the other hand, the measurement result according to this embodiment may include parameters other than IOPS, bandwidth, and delay time.

[0088] Such display control allows the user to clearly understand the performance of each storage device that stores assets.

[0089] The display control unit 121 may further display the number of assets stored in each storage device, the total number of asset references, the total number of hitches, the number of hitches per asset reference count, etc. The measurement results may be displayed in different colors based on, for example, how tight the capacity of each storage device is. For example, if disk A has ample capacity, the assets corresponding to disk A may be displayed in blue, and conversely, if disk C has limited capacity, the assets corresponding to disk C may be displayed in yellow or red. The color in which the assets corresponding to each storage device are displayed may be preset, or may be arbitrarily set or changed by the user.

[0090] Furthermore, the measurement unit 122 according to this embodiment may calculate a score that indexes the performance of the storage based on the measurement results.

[0091] In this case, the display control unit 121 according to this embodiment further performs display control based on the calculated score.

[0092] FIG. 9 is a diagram showing an example of a display based on the score according to this embodiment.

[0093] For example, if there is storage whose score is below a set threshold, the display control unit 121 according to this embodiment displays a message asking whether or not to optimize dynamic asset loading.

[0094] Here, if the user presses a button B31 indicating permission to perform optimization, the optimization unit 123 performs optimization.

[0095] On the other hand, if the user presses a button B32 indicating that optimization is not permitted, the optimization unit 123 does not perform optimization.

[0096] The display control unit 121 may also display specific values ​​of the score and threshold.

[0097] The display control by the display control unit 121 according to the present embodiment has been described above with specific examples. The decision on whether to perform dynamic loading is not limited to pressing a button as described above, but may be based on an instruction such as a user's speech. For example, if a user's speech such as "Perform optimization" is recognized, optimization may be performed, and if a user's speech such as "No optimization is required" is recognized, optimization may not be performed.

[0098] Next, the flow of measurement and optimization according to this embodiment will be described in more detail.

[0099] First, the measurement flow according to this embodiment will be described.

[0100] FIG. 10 is a flowchart showing an example of the measurement procedure according to this embodiment.

[0101] In the example shown in FIG. 10, the plug-in agent 120 first determines whether or not the user has given permission for measurement (S101).

[0102] The plug-in agent 120 may determine that measurement permission has been obtained when, for example, a button B1 illustrated in FIG. 6 is pressed.

[0103] If the plug-in agent 120 determines that measurement permission has not been obtained (S101: NO), the plug-in agent 120 ends the series of processes related to measurement.

[0104] On the other hand, if the plug-in agent 120 determines that measurement permission has been obtained (S101: YES), it refers to the measurement parameter list (S102).

[0105] FIG. 11 is a diagram showing an example of a measurement parameter list according to this embodiment.

[0106] The measurement parameter list according to this embodiment is a list for managing parameters used in measurements.

[0107] There are various standards for measuring storage. For example, CrystalDiskMark, a storage benchmark tool that is often used in the gaming field, supports measurement standards such as SEQ1M Q8T1, SEQ1M Q1T1, RAND4K Q32T16, and RAND4K Q1T1.

[0108] 11, the measurement parameter list according to this embodiment manages, for each of the above measurement criteria, an ID (measurement parameter ID), an access type, a data size, an I / O block size, the number of jobs, an I / O multiplicity, etc. Note that parameters other than those shown in FIG. 11 may also be used for measurement.

[0109] The description will continue with reference to FIG.

[0110] After referring to the measurement parameter list in step S102, the plug-in agent 120 performs control to display the acquired parameter candidates (S103).

[0111] The plug-in agent 120 may display a plurality of buttons B2n corresponding to each measurement parameter, as shown in FIG. 7, for example.

[0112] The plug-in agent 120 designates the measurement parameter selected by the user from among the measurement parameter candidates displayed in step S103 (S104).

[0113] Next, the plug-in agent 120 refers to the storage list (S105).

[0114] FIG. 12 is a diagram showing an example of a storage list according to this embodiment.

[0115] The storage list according to this embodiment manages information about storages that store assets.

[0116] As shown in FIG. 12, the storage list according to this embodiment may manage IDs (storage IDs), storage mount destinations, storage types, interconnections, and the like.

[0117] Note that, although FIG. 12 illustrates an example of a storage list when OS 130 is Windows, when OS 130 is Linux, the mount destination may be expressed in a format such as / dev / sda1 or / dev / sdb1 instead of a drive.

[0118] The reason why the storage list manages interconnections is that, in addition to the conventionally used SATA and PCIe, there are storages that are mounted via the NIC 170 as described above.

[0119] The description will continue with reference to FIG.

[0120] After referencing the storage list in step S105, the plug-in agent 120 measures the performance of each storage based on the acquired storage information (S106).

[0121] FIG. 13 is a flowchart showing an example of the process flow in step S106 shown in FIG.

[0122] FIG. 13 illustrates a flow in which the system 1 does not include the collector 30 and the plug-in agent 120 calculates the score by normalization based on past measurement results in a single host.

[0123] In the example shown in FIG. 13, the plug-in agent 120 first determines whether or not the measurement has been completed for all storages (S161).

[0124] If the plug-in agent 120 determines that the measurement has been completed for all storages (S161: YES), the plug-in agent 120 ends the measurement and returns to step S107 shown in FIG.

[0125] On the other hand, if the plug-in agent 120 determines that measurements have not been completed for all storages (S161: NO), it performs measurements on the unmeasured storages using the measurement parameters specified in step S104 shown in FIG. 10 (S162).

[0126] If the user selects multiple measurement parameters, the plug-in agent 120 may perform multiple measurements for each selected measurement parameter for the same storage device.

[0127] Next, the plug-in agent 120 refers to the measurement result list (S163).

[0128] FIG. 14 is a diagram showing an example of a measurement result list according to this embodiment.

[0129] The measurement result list according to this embodiment manages the results of measurements that have been performed in the past.

[0130] As shown in FIG. 14, the measurement result list according to this embodiment manages an ID (measurement ID), measurement time, the ID of the measurement parameter list used in the measurement, and the measurement result.

[0131] The measurement results include, for example, IOPS, bandwidth, delay time, and the like.

[0132] The description will continue with reference to FIG.

[0133] After referring to the measurement result list in step S163, the plug-in agent 120 calculates a score based on the acquired past measurement results (S164), and returns to step S107 shown in FIG.

[0134] Details of the score calculation according to this embodiment will be described later.

[0135] In step S107 shown in FIG. 10, the plug-in agent 120 updates the measurement result list based on the measurement results obtained in step S106.

[0136] The plug-in agent 120 also controls the display of the results of the measurement in step S106 (S108).

[0137] According to the process described above, the user can clearly grasp the performance of each storage device that stores assets.

[0138] Next, the flow of optimization according to this embodiment will be described.

[0139] FIG. 15 is a flowchart showing an example of the measurement procedure according to this embodiment.

[0140] In the example shown in FIG. 15, the plug-in agent 120 first refers to the threshold list (S201).

[0141] FIG. 16 is a diagram showing an example of a threshold list according to this embodiment.

[0142] The threshold list according to this embodiment manages score thresholds used to determine whether or not optimization needs to be performed.

[0143] As shown in FIG. 16, the threshold list according to this embodiment manages, for example, an ID (threshold ID), a measurement parameter list ID, a storage type, and a threshold.

[0144] The threshold value according to this embodiment may be set for each measurement parameter for each storage type.

[0145] This is because the characteristics of storage vary greatly depending on the storage type. In particular, the performance of storage mounted via a network varies depending on the communication environment, so setting a threshold for each storage type makes it possible to achieve highly accurate judgments.

[0146] The description will continue with reference to FIG.

[0147] After referring to the threshold list in step S201, the plug-in agent 120 determines for each storage whether the score calculated in step S164 shown in FIG. 13 is below the corresponding threshold (S202).

[0148] If there is no storage whose score is below the threshold (S202: NO), the plug-in agent 120 ends the series of processes related to optimization.

[0149] On the other hand, if the score for a certain storage falls below the threshold (S202: YES), the plug-in agent 120 determines whether or not the user has given permission for optimization (S203).

[0150] The plug-in agent 120 may determine that optimization permission has been obtained when, for example, a button B31 illustrated in FIG. 9 is pressed.

[0151] If the plug-in agent 120 determines that optimization permission has not been obtained (S203: NO), the plug-in agent 120 ends the series of processes related to optimization.

[0152] On the other hand, if the plug-in agent 120 determines that measurement permission has been obtained (S203: YES), it performs optimization (S204).

[0153] FIG. 17 is a flowchart showing an example of the process flow in step S204 shown in FIG.

[0154] In the example shown in FIG. 17, the plug-in agent 120 first determines whether there is free space in other storage and whether the asset can be moved (S241).

[0155] If the plug-in agent 120 determines that there is free space in another storage device and that the asset can be moved (S241: YES), it inquires of the user via the user interface (UI) about changing the storage device (S242).

[0156] Next, the plug-in agent 120 determines whether or not permission to change the storage device has been obtained from the user (S243).

[0157] If the plug-in agent 120 determines that the user has not given permission to change the storage device (S243: NO), the plug-in agent 120 ends the series of processes related to optimization.

[0158] On the other hand, if the plug-in agent 120 determines that permission to change the storage device has been obtained from the user (S243: YES), it performs optimization of the storage device (S244).

[0159] The optimization of the storage according to this embodiment will be described in detail later.

[0160] Furthermore, if the plug-in agent 120 determines that the asset cannot be moved because there is no free space in other storage (S241: NO), it inquires of the user via the UI about changing the parameters related to dynamic loading (S245).

[0161] Next, the plug-in agent 120 determines whether or not permission to change the parameters related to dynamic loading has been obtained from the user (S246).

[0162] If the plug-in agent 120 determines that the user has not given permission to change the parameters related to dynamic loading (S246: NO), the plug-in agent 120 ends the series of processes related to optimization.

[0163] On the other hand, if the plug-in agent 120 determines that the user has given permission to change the parameters related to dynamic loading (S246: YES), the plug-in agent 120 optimizes the parameters related to dynamic loading (S247).

[0164] The optimization of parameters related to dynamic loading according to this embodiment will be described in detail later.

[0165] Next, the flow of measurement according to this embodiment will be described in more detail, focusing on the operations of the display control unit 121 and the measurement unit 122.

[0166] 18 and 19 are sequence diagrams showing an example of the flow of measurement including score calculation based on past measurement results of a single host according to this embodiment.

[0167] In the example shown in FIGS. 18 and 19, first, the display control unit 121 controls the user interface (UI) 125 to display a virtual space (S301).

[0168] The display control in step S301 continues until the application is terminated.

[0169] Furthermore, the display control unit 121 controls the UI 125 to display a measurement start request (S302).

[0170] The display control unit 121 may cause the UI 125 to display, for example, a button B1 illustrated in FIG.

[0171] Here, when the user presses button B1 or the like to allow the start of measurement (S303), the display control unit 121 requests a measurement parameter list from the measurement unit 122 (S304).

[0172] The measurement unit 122 refers to the measurement parameter list shown in FIG. 11 based on the request input in step S304 (S305), and returns the acquired measurement parameter list to the display control unit 121 (S306).

[0173] Next, the display control unit 121 performs control to display the measurement parameters (ID=1 to 4) on the UI 125 based on the measurement parameter list input in step S306 (S307).

[0174] The display control unit 121 may cause the UI 125 to display, for example, buttons B21 to B24 shown in FIG.

[0175] Here, when the user performs a selection operation such as pressing one of the buttons B21 to B24, the UI 125 returns the selection result to the display control unit 121 (S308).

[0176] In this example, it is assumed that the user presses button B23 to select the measurement parameter (ID=3).

[0177] The display control unit 121 requests the measurement unit 122 to perform measurement using the selected measurement parameters (ID=3) (S309).

[0178] The measurement parameters (ID=3) are a set of parameters for single-thread execution of 32 queue instructions with a 4 kB block size for 1 GB data with random R / W.

[0179] The measurement unit 122 refers to the storage list shown in FIG. 12 based on the measurement request input in step S309 (S310).

[0180] In this example, the storage list shown in FIG. 12 manages information on four storages (ID=1 to 4).

[0181] Therefore, the measurement unit 122 performs measurement using the measurement parameters (ID=3) for each of the four storages (ID=1 to 4) (S311).

[0182] The measurement unit 122 obtains, for example, IOPS, bandwidth, and delay time as measurement results.

[0183] When the measurement in step S311 is completed, the measurement unit 122 refers to the measurement result list illustrated in FIG. 14 (S312) and performs score calculation based on past measurement results using the measurement parameters (ID=3) (S313).

[0184] In this example, the measurement unit 122 calculates the score using the measurement results with IDs 2, 5, and 9 stored in the measurement result list.

[0185] Various methods may be employed for calculating the score. As an example, the measurement unit 122 may normalize each of the IOPS, bandwidth, and delay time based on the above-mentioned past measurement results using a MAX-MIN formula, such as (measurement result-minimum value) / (maximum value-minimum value), and calculate the score by multiplying each normalized value by weights A, B, and C, respectively, and adding them up.

[0186] That is, the measurement unit 122 may calculate the score using the following formula (1).

[0187] Score = normalized IOPS × A + normalized bandwidth × B + normalized delay time × C (1)

[0188] The weights may be A=0.5, B=0.3, C=0.2, etc.

[0189] The measurement unit 122 returns the measurement result and score to the display control unit 121 in association with the ID of the storage device on which the measurement was performed (S314).

[0190] The display control unit 121 controls the UI 125 to display the measurement results and scores based on the measurement results and scores input in step S314 (S315).

[0191] If the score is not to be presented to the user, the measurement unit 122 may return only the measurement result associated with the storage ID in step S314.

[0192] The measurement unit 122 updates the measurement result list based on the measurement result in step S311 (S316).

[0193] An example of the measurement flow including score calculation based on past measurement results of a single host according to this embodiment has been described above.

[0194] Next, a measurement flow including score calculation based on past measurement results of multiple hosts according to this embodiment will be described.

[0195] FIG. 20 is a sequence diagram showing an example of the flow of measurement including score calculation based on past measurement results of multiple hosts according to this embodiment.

[0196] Note that Figure 20 shows the flow from the process (S409) in which the display control unit 121 inputs a measurement request to the measurement unit 122, but before step S409, processes equivalent to steps S301 to S308 shown in Figure 18 are performed.

[0197] Based on the measurement request input in step S409, the measurement unit 122 refers to the storage list (S410) and performs measurement using the selected measurement parameters (ID=3) for each storage (S411).

[0198] Next, the measurement unit 122 requests statistical information from the collector 30 (S412).

[0199] The statistical information is information necessary for the measurement unit 122 to perform score calculation based on the measurement results obtained in step S411.

[0200] For example, the statistical information may be the results of measurements previously performed on multiple hosts using measurement parameters (ID=3).

[0201] Also, for example, the statistical information may be only the minimum and maximum values ​​of IOPS, bandwidth, and delay time from measurement results previously performed using measurement parameters (ID=3) on several hosts.

[0202] The collector 30 returns the statistical information to the measurement unit 122 based on the request input in step S412 (S413).

[0203] The measurement unit 122 normalizes the measurement result obtained in step S411 using the statistical information input in step S413 and calculates a score (S414).

[0204] Next, the measurement unit 122 returns the measurement result and score to the display control unit 121 in association with the ID of the storage device on which the measurement was performed (S415).

[0205] The display control unit 121 controls the UI 125 to display the measurement results and scores based on the measurement results and scores input in step S415 (S416).

[0206] If the score is not to be presented to the user, the measurement unit 122 may return only the measurement result associated with the storage ID in step S415.

[0207] The measurement unit 122 also returns the measurement results to the collector 30 (S417).

[0208] The collector 30 manages the measurement results input in step S417.

[0209] As described above, when the measurement unit 122 calculates scores based on past measurement results of multiple hosts, the measurement unit 122 does not need to store a measurement result list. In this case, the collector 30 aggregates and manages the measurement results of multiple hosts.

[0210] Next, the flow of optimization according to this embodiment will be described in more detail, focusing on the operations of the display control unit 121 and the optimization unit 123.

[0211] 21 and 22 are sequence diagrams showing an example of the flow of optimization according to this embodiment.

[0212] In this example, it is assumed that the score of the Local Drive measured using the measurement parameter (ID=1) is 200, and the score of the Network Drive measured using the measurement parameter (ID=1) is 20.

[0213] In the example shown in FIGS. 21 and 22, first, the display control unit 121 performs control to display a virtual space on the UI 125 (S501).

[0214] On the other hand, the optimization unit 123 refers to the threshold list illustrated in FIG. 16 (S502).

[0215] In the threshold list illustrated in FIG. 16, the threshold value associated with the measurement parameter (ID=1) and Local Drive is 100, and the threshold value associated with the measurement parameter (ID=1) and Network Drive is 50.

[0216] In this example, the score for Local Drive is 200, which is above the threshold, but the score for Network Drive is 20, which is below the threshold.

[0217] Based on the existence of storage whose score is below the threshold, the optimization unit 123 inquires of the display control unit 121 whether optimization can be performed (S503).

[0218] The display control unit 121 causes the UI 125 to display an inquiry about whether or not optimization can be performed (S504).

[0219] The display control unit 121 may cause the UI 125 to display, for example, a message, a button B31, and a button B32 as illustrated in FIG.

[0220] Here, it is assumed that the user has permitted the optimization to be performed by pressing the button B31 or the like.

[0221] The display control unit 121 relays the permission input from the UI 125 in step S505 to the optimization unit 123 (S506).

[0222] The optimization unit 123, to which permission to execute has been input in step S506, checks the free space in the storage (in this example, the local drive) whose score is equal to or greater than the threshold (S507).

[0223] Here, if there is sufficient free space to move the asset to the storage device (in this example, the local drive) whose score is above the threshold, the optimization unit 123 inquires of the display control unit 121 whether or not the storage device can be changed (S508).

[0224] The inquiry as to whether the storage storage can be changed may inquire as to whether the asset can be moved from a storage device whose score is below the threshold (in this example, a network drive) to a storage device whose score is equal to or greater than the threshold.

[0225] The display control unit 121 causes the UI 125 to display an inquiry about the availability of storage (S509).

[0226] Here, it is assumed that the user has permitted the change of the storage device (S510).

[0227] The display control unit 121 relays the permission to implement input from the UI 125 in step S510 to the optimization unit 123 (S511).

[0228] The optimization unit 123, to which permission for implementation has been input in step S516, controls the change of the storage device (S512).

[0229] Specifically, the optimization unit 123 may control the rendering engine 110 to change the storage, that is, to move assets between storages.

[0230] For example, if the rendering engine 110 is Unreal Engine, the AssetRegistryModule moves assets based on control by the optimization unit 123. Also, for example, if the rendering engine 110 is Unity, the AssetDatabase moves assets based on control by the optimization unit 123.

[0231] At this time, the optimization unit 123 may determine the asset to be moved based on the number of times the asset is referenced.

[0232] For example, the optimization unit 123 may instruct the rendering engine 110 to move assets in descending order of the number of times they are referenced.

[0233] This is because, considering the possibility that processing may stop for some reason, such as if the power goes out during the transfer, measures such as rollback are not suitable for transferring large assets.

[0234] Control based on the number of times an asset is referenced can be implemented by incrementing the AssetRegistryModule, AssetDatabase, etc. each time an asset is referenced.

[0235] Furthermore, the optimization unit 123 may determine the storage to which the asset is to be moved based on the score.

[0236] For example, if there are multiple storages with scores above the threshold, or if the scores of all storages are below the threshold, the optimization unit 123 may select the storage with the highest score as the destination of the asset.

[0237] The threshold value may be determined, for example, in the following manner.

[0238] For example, the threshold according to this embodiment may be determined based on outliers related to fps (frames per second).

[0239] More specifically, the number of outliers may be calculated using a Z-score or an IQR (interquartile range) for fps during an application startup period, and the storage performance value when the number of outliers falls below a predetermined number may be used as the threshold. For example, the storage scoring result when fewer than 10 outliers are detected when an application is started for 30 minutes may be used as the threshold.

[0240] Furthermore, for example, the threshold value according to this embodiment may be determined based on the number of hitches.

[0241] More specifically, the number of hitches may be calculated using the hitch detection function of the rendering engine 110, and the performance value of the storage when the number of hitches falls below a predetermined number may be used as the threshold. For example, the scoring result of the storage when the number of hitches detected when an application is running for 30 minutes is less than 10 may be used as the threshold.

[0242] However, the method for determining the threshold value according to this embodiment is not limited to the above example, and the threshold value according to this embodiment may be set manually by the user.

[0243] When the saving storage change control in step S512 is completed, the optimization unit 123 notifies the display control unit 121 of the completion (S513).

[0244] Based on the notification input in S513, the display control unit 121 controls the UI 125 to notify the user of the completion of the change of the save storage (S514).

[0245] The flow of optimization according to this embodiment has been described above using an example.

[0246] In the above, the flow of processing has been described in the case where there is sufficient free space for moving assets to a storage device whose score is equal to or greater than the threshold value in the free space check in S507.

[0247] On the other hand, if there is not enough free space to move the asset to a storage device whose score is above the threshold, the optimization unit 123 may, with the user's permission, control the change of parameters related to dynamic loading of the asset.

[0248] Parameters related to dynamic asset loading according to this embodiment may include, for example, the number of simultaneous loadings and the loading range.

[0249] For example, Unreal Engine provides distance-based dynamic loading (Level Streaming) through its World Partition feature.

[0250] The optimization unit 123 can control the number of simultaneous loading (cells) by adjusting the parameter wp.Runtime.MaxLoadingLevelStreamingCells.

[0251] Furthermore, the optimization unit 123 can control the loading range by adjusting the parameter of wp.Runtime.OverrideRuntimeSpatialHashLoadingRange.

[0252] The optimization unit 123 may control the changes to the parameters of the rendering engine 110 as described above, for example, by setting simultaneous loading to ×1 / 2 and loading range to ×2, thereby optimizing dynamic asset loading.

[0253] <<1.4. Modifications>> Next, modifications of the present embodiment will be described.

[0254] For example, the plug-in agent 120 according to this embodiment may further control the movement of assets using the UI 125 .

[0255] For example, in the display example shown in Figure 4, when a user selects an asset to be stored on disk B and enters "A" on the keyboard, the plug-in agent 120 may control the movement of the corresponding asset from disk B to disk A.

[0256] Such control allows for more intuitive asset movement.

[0257] Furthermore, for example, the plug-in agent 120 according to this embodiment may perform control such as highlighting and displaying assets that have a large impact on hitches, etc., such as those that are referenced many times.

[0258] Such control allows the user to intuitively grasp the asset that is causing the performance degradation.

[0259] Furthermore, if the system 1 includes a collector 30, the plug-in agent 120 according to this embodiment may perform control to present performance improvement proposals based on statistical information to the user.

[0260] For example, the plug-in agent 120 may search statistical information for measurement results of a storage configuration that is similar to the current storage configuration but richer than the current storage configuration, and perform control to present the found storage configuration and its measurement results to the user.

[0261] The above-described control allows the user to predict what kind of storage configuration (for example, what kind of storage should be added) will improve performance.

[0262] Also, for example, the plug-in agent 120 may temporarily lend a storage device mounted via a network to a user, and after adding the storage device, perform optimization and control to present to the user how much performance has improved.

[0263] The above-described control allows the user to clearly understand the effect of performance improvement resulting from adding storage, and is expected to have the effect of encouraging the user to purchase additional storage.

[0264] 2. Summary As described above, the system 1 according to an embodiment of the present disclosure includes a display control unit 121 that, in relation to rendering of a virtual space based on dynamic loading of one or more assets, displays the loaded assets in association with the storage devices in which the assets are saved. Another feature of the system 1 is that the assets are distributed and saved across one or more of the storage devices.

[0265] According to the above configuration, it is possible for the user to intuitively understand the relationship between assets and storage.

[0266] The system 1 according to an embodiment of the present disclosure may be realized by a single device or by multiple devices.

[0267] Although the preferred embodiments of the present disclosure have been described in detail above with reference to the accompanying drawings, the technical scope of the present disclosure is not limited to such examples. It is clear that a person skilled in the art of the present disclosure can conceive of various modified or altered examples within the scope of the technical idea described in the claims, and it is understood that these also naturally fall within the technical scope of the present disclosure.

[0268] Furthermore, the steps of the processes described in this disclosure do not necessarily have to be processed in chronological order according to the order shown in the flowcharts or sequence diagrams. For example, the steps of the processes of each device may be processed in an order different from the order shown, or may be processed in parallel.

[0269] Furthermore, the series of processes performed by each device described in this disclosure may be realized by a program stored in a non-transitory computer-readable storage medium. Each program is, for example, loaded into RAM when executed by a computer and executed by a processor such as a CPU. The storage medium may be, for example, a magnetic disk, an optical disk, a magneto-optical disk, or a flash memory. The program may also be distributed, for example, via a network, without using a storage medium.

[0270] Furthermore, the effects described herein are merely descriptive or exemplary and are not limiting. In other words, the technology according to the present disclosure may achieve other effects that are apparent to those skilled in the art from the description of this specification, in addition to or in place of the above-described effects.

[0271] Note that the following configurations also fall within the technical scope of the present disclosure. (1) A system comprising: a display control unit for displaying a virtual space based on dynamic loading of one or more assets, the system relating to the rendering of the virtual space based on dynamic loading of the assets and the storages in which the assets are saved in association with each other, wherein the assets are saved in a distributed manner across one or more of the storages. (2) The system described in (1), wherein the display control unit displays each of the assets in a different display mode for each of the storages in which the assets are saved. (3) The system described in (1), wherein the display control unit displays measurement results of the performance of the storage. (4) The system described in (3), wherein the measurement results include at least one of IOPS, bandwidth, or latency. (5) The system described in any one of (3) or (4), further comprising: a measurement unit for measuring the performance of the storage. (6) The system described in (5), wherein the measurement unit performs the measurement using selected measurement parameters. (7) The system according to any one of (5) or (6), wherein the measurement unit calculates a score that indexes the performance of the storage based on the measurement results. (8) The system according to (7), wherein the display control unit controls display based on the score. (9) The system according to any one of (7) or (8), wherein the measurement unit calculates the score by normalization based on past measurement results in a single host or multiple hosts. (10) The system according to any one of (7) to (9), further comprising an optimization unit that optimizes dynamic loading of the asset based on the score. (11) The system according to (10), wherein the optimization unit controls migration of the asset stored in the storage whose score is below a threshold to another storage different from the storage whose score is below the threshold. (12) The system according to (11), wherein the optimization unit determines the asset to be migrated based on the number of times the asset is referenced.(13) The system according to any one of (11) or (12), wherein the optimization unit determines the other storage to which the asset is to be moved based on the score. (14) The system according to (10), wherein the optimization unit performs control to change parameters related to dynamic loading of the asset when the score falls below a threshold. (15) The system according to (14), wherein the parameters include the number of simultaneous loadings and a loading range. (16) The system according to any one of (11) or (14), wherein the threshold is determined based on an outlier related to fps. (17) The system according to any one of (11) or (14), wherein the threshold is determined based on the number of hitches. (18) A program that causes a computer to realize a display control function that, regarding rendering of a virtual space based on dynamic loading of one or more assets, causes the loaded assets to be displayed in association with storages in which the assets are saved, wherein the assets are saved in a distributed manner across one or more of the storages. (19) An information processing method that includes, regarding rendering of a virtual space based on dynamic loading of multiple assets, causes the loaded assets to be displayed in association with storages in which the assets are saved, wherein the multiple assets are saved in a distributed manner across multiple of the storages.

[0272] REFERENCE SIGNS LIST 1 System 10 Information processing device 110 Rendering engine 120 Plug-in agent 121 Display control unit 122 Measurement unit 123 Optimization unit 140 Processor 160 Disk 20 Storage server 30 Collector

Claims

1. A system for rendering a virtual space based on dynamic loading of one or more assets, comprising: a display control unit that displays the loaded assets in association with storage in which the assets are saved; wherein the assets are saved in a distributed manner across one or more of the storages.

2. The system according to claim 1, wherein the display control unit displays each of the assets in a different display mode depending on the storage in which the asset is saved.

3. The system according to claim 1, wherein the display control unit displays the measurement results of the storage performance.

4. The system of claim 3, wherein the measurement results include at least one of IOPS, bandwidth, or latency.

5. The system according to claim 3, further comprising a measurement unit that measures the performance of the storage.

6. The system according to claim 5, wherein the measurement unit performs the measurement using selected measurement parameters.

7. The system according to claim 5, wherein the measurement unit calculates a score that indexes the performance of the storage based on the measurement results.

8. The system according to claim 7, wherein the display control unit controls display based on the score.

9. The system according to claim 7, wherein the measurement unit calculates the score by normalization based on past measurement results for a single host or multiple hosts.

10. The system of claim 7, further comprising: an optimization unit that performs optimization of the dynamic loading of the assets based on the scores.

11. The system according to claim 10, wherein the optimization unit controls the movement of the assets stored in the storage whose score has fallen below the threshold to another storage different from the storage whose score has fallen below the threshold.

12. The system according to claim 11, wherein the optimization unit determines the asset to be moved based on the number of times the asset is referenced.

13. The system according to claim 11, wherein the optimization unit determines the other storage to which the asset is to be moved based on the score.

14. The system according to claim 10, wherein the optimization unit performs control to change parameters related to dynamic loading of the asset when the score falls below a threshold.

15. The system of claim 14, wherein the parameters include the number of simultaneous loadings and the loading range.

16. The system of claim 11, wherein the threshold is determined based on outliers related to fps.

17. The system of claim 11, wherein the threshold is determined based on the number of hitches.

18. A program that causes a computer to realize a display control function that, regarding rendering of a virtual space based on dynamic loading of one or more assets, causes the loaded assets to be displayed in association with the storage in which the assets are saved, and the assets are saved in a distributed manner across one or more of the storages.

19. An information processing method, comprising: a processor controlling rendering of a virtual space based on dynamic loading of a plurality of assets, to display the loaded assets in association with the storage in which the assets are saved; wherein the plurality of assets are stored in a distributed manner across a plurality of the storages.

Citation Information

Patent Citations

  • Virtual storage configuration management system, information processor for virtual storage configuration and computer-readable storage medium

    JP2006184981A

  • Computer system or performance management method of computer system

    JP2008304963A

  • Management device and management method

    JP2009140356A

  • Storage system

    JP2009223442A

  • Storage management system, storage hierarchy management method and management server

    JP2011138321A