Hierarchical Object Loader for Virtual World Rendering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in creating realistic virtual worlds due to the complexity of managing and placing objects in a simulated environment, as increased realism leads to decreased computer performance, and automated placement often results in conflicts between objects.

Innovation Solution

A system using hierarchical spatial data structures and multiple loader modules with priority levels and loading radii to manage object placement, ensuring that objects are loaded and unloaded efficiently and without conflicts, guided by a world object manager that notifies loaders based on camera position and cell visibility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If more objects are placed in the simulated environment to increase realism, then the realism is improved, but computer performance suffers due to increased processor time and memory requirements

Engineering Contradiction:
ImproverealismVSAvoidcomputer performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The virtual environment is divided into a grid of cells, and objects are managed at the cell level rather than globally. The world is segmented into multiple cells that can be independently loaded and unloaded, allowing the system to handle large numbers of objects efficiently by only actively managing objects in currently visible or relevant cells.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Objects are pre-loaded into cells before they are needed. The system proactively loads objects into the cell cache based on predicted camera movement and visibility, so that when the camera approaches a cell, the objects are already loaded and ready for rendering, avoiding last-minute loading delays and performance spikes.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If automated processes are used to determine object placement, then the difficulty of manual placement is reduced, but conflicts arise between automatically placed objects and manually placed objects

Engineering Contradiction:
Improveobject placementVSAvoidobject placement accuracy
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

Manual objects are placed and registered in the cell structure beforehand. When automatic placement occurs, the system first checks if a cell contains manually placed objects, and only places automatic objects in cells that are free of manual objects. This preliminary identification of occupied cells prevents conflicts between manual and automatic objects.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The cell structure serves as an intermediary layer between manual and automatic object placement systems. Each cell tracks whether it contains manual objects, and this information is used by the automatic placement algorithm to avoid conflicting placements. The cell acts as a mediator that coordinates between the two placement approaches.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If multiple object types are loaded simultaneously, then the completeness of the virtual environment is improved, but the complexity of managing loading priorities increases

Engineering Contradiction:
Improveenvironment completenessVSAvoidloading management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Different object types (terrain, water, vegetation, buildings, etc.) are assigned to different loader modules, each responsible for a specific category. Each loader independently manages its own objects within cells, reducing the complexity of coordinating all object types simultaneously. The cell grid provides a common framework that organizes these segmented loaders.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each loader module autonomously determines when to load and unload its object types based on cell visibility and the presence of higher-priority objects. Loaders monitor their own loading conditions and self-regulate without requiring complex centralized coordination, reducing overall system complexity while maintaining completeness.

Inventive Principle:
Principle #25Self-service

4Productivity

If objects are loaded into cell cache based on camera position, then the efficiency of memory management is improved, but the difficulty of determining which cells to load increases

Engineering Contradiction:
Improvememory management efficiencyVSAvoidcell loading determination
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The system pre-calculates which cells will be visible based on current and predicted camera positions. By anticipating future camera movement, the system proactively identifies cells that should be loaded in advance, transforming a complex real-time determination problem into a simpler pre-computed set of loading decisions.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously monitors camera position and cell visibility status, using this feedback to dynamically adjust which cells are loaded into memory. This closed-loop approach ensures that memory is efficiently utilized by loading only the cells that are currently or imminently visible, while automatically unloading cells that are no longer needed.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7804501B2Object loading and unloading system
Publication Date: 2010.09.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7804501B2 patent drawing
  • US7804501B2 patent drawing
  • US7804501B2 patent drawing

AI summary

An object loading and unloading system for loading and unloading objects in a graphically simulated virtual environment, or virtual world, is described. A world object manager manages multiple object loaders to load and unload objects as geographic cells move within and out of a loading radius of each loader based on a position of a camera or view within the virtual world. Each object loader has an associated priority level, and the world object manager notifies a loader to load its corresponding objects in a cell only after all loaders having higher priority levels, which also have that cell in their respective loading radii, have already loaded their corresponding objects in that cell. The world object manager may expose various programming interfaces to provide an extensible object loading system whereby third parties can define new loaders to be incorporated into the hierarchical spatial object loading system.