![]() |
|
![]() |
Look at the introduction below.
|
Upper string shows visitor's current position i.e. element of the world in which he is. Under string shows the element to which he goes depending of current direction. Directions are: North - toward negative z-axes, East - toward positive x-axes. When walk in visitor is faced to North. Main proximity sensor is 100000*100000 m in size, in Z and X axes, Y is ignored for now, so don't fly, please. Size of the element is set to 100*100 m. The world is divided to four big sectors or quadrants: North-East, North-West, South-East and South-West. Elements of the world are named accordingly to the above. For the example, zero-element in the North-East sector is n_0_e_0, next toward the negative z-axis (direction North) is n_1_e_0 and next toward the positive x-axes (direction East) is n_0_e_1 etc.
The idea behind is to have large, tiled world, consisted of many parts...size suppose to be constrained only by number of those parts. The world should be, in this case, a two dimensional matrix and its elements suppose to be separate files containing the geometry for that part of the world. The world itself is without any geometry, there are just initially bindable nodes, proxies and Script (in this case javascript) for tracking visitor's movement and loading and deleting parts, and there should be a main grouping node for containing parts with geometry as its children. At one moment just one part should be in that grouping node, only while visitor traverses from one part to another two parts will be needed there, and as soon as he went deep enough into new part old one can be deleted.
That's the concept, in the world above there is no loading for now, there are just two inlined parts translated accordingly to the visitor's movement to make the orientation easier. When walk in visitor can go to whichever direction he wants, when he reach the border of the current part previous one will be translated in front of him. Direction is checked every two seconds, so in the case of too fast moving or too rude changes of direction some mistakes are possible.
Related topic: Adding Regions to VRML by Bernie Roehl