Environment analysis... outputs and algorithms

Started by
29 comments, last by TechnoGoth 19 years, 10 months ago
Quote:Original post by Timkin

As for dynamically building an environment map... yes, I'm all for it... but we really need to cut down (filter) the amount of information being added during any one frame (or small set of frames) in exactly the same way that the human brain filters out almost all of the sensory information we receive and retains only the relevant information that is important to the current situation. In this vein, I don't think building a volume map based on visual information is practical... there's just too much data to consider if it's in binary form... unless your resolution is very course.




I agree, filtering is key and perhaps my suggestion is only practical for static maps. Although it would be fairly easy to to have agents with no intial world knowledge operate using it. Basically they would have their own version of the environment map which essentially replaces the unmapped points with the value in the corresponding point in the world map.


Perhaps the solution to finding an abstract representation of the world can be found by reversing the problem. Instead of thinking in terms of objects, what if we instead of consider the problem in terms of space?

It should possible to represent a map in terms of 3d dimensional polygons of a fixed size. These polygons would represent space, and the abstract
Representation for the map would consist of a series of connected polygons. Since they represent space agent knows it can freely move within and between polygons and need not bother considering the actual objects that make up the world. A separate layer could overlap the polygons to represent functionality as I stated earlier.

To reduce processor time the polygons would be created in real-time by an interpreter, that is linked to the engine, the polygons would remain unchanged unless the engine makes an update call to the interpreter indicating a change in the associated polygon. The interpreter would then update the polygon and change its update value. This update value is what agents use to determine whether the polygon has changed, when it "sees" a polygon it compares its update value to the polygon’s actual update value, if they are different it loads the polygon into its memory.

In order to reduce the problem of having too many polygons in memory, each polygon would be have a memory value that is increased in every time the agent is in that polygon, and decremented at each update call. When the memory value reaches zero the polygon is removed from the agent’s memory. This would be used to mimic short and long-term memory and remove polygons that are only briefly visited.


This topic is closed to new replies.

Advertisement