A system for generating and displaying visual content comprising:
- a sensor arrangement configured to obtain one or more data frames comprising spatial data of a 3D real-world space, the sensor arrangement comprising at least one sensor, each of said at least one sensor having an associated sensing field in the 3D real-world space and a sensor view ray, the sensor view ray being a vector extending from said at least one sensor into the 3D real-world space in a 3D real-world coordinate system, each said at least one sensor in the sensor arrangement having an associated up-vector that is fixed relative to said sensor, one or more of the sensor up-vectors defining an up-vector of a data frame;
- a display device;
- a computer processing unit comprising a processor and a memory, wherein:
- the memory stores data indicative of one or more objects to be detected in a data frame, and further stores, for each object to be detected, a predetermined real-world reference point and real-world object vector that is fixed relative to the object;
- and the processor is configured to:
- a) analyze the one or more data frames including a current data frame and determine whether one or more of the real-world objects to be detected is in a current real-world view frustum of the current data frame;
- b) when at least a portion of one of the real-world objects is detected in the current real-world view frustum, determine from the current data frame the coordinates in the 3D real-world coordinate system of the predetermined real-world reference point associated with the detected real-world object in the 3D real-world coordinate system associated with the current real-world viewing frustum;
- c) determine a real-world object vector emanating from a predetermined point in the real-world viewing frustum, to the predetermined real-world reference point of the detected real-world object;
- d) determine a current position of a current real-world gravitational vector associated with the current data frame relative to the real-world viewing frustum;
- e) construct a virtual 3D space having a virtual 3D space coordinate system, and position in the virtual 3D space a virtual viewing pyramid having an associated virtual world viewpoint, and an associated virtual view frustum positioned symmetrically around a virtual view ray emanating from the virtual viewpoint, an associated virtual viewing surface forming a surface of the virtual view frustum, an associated virtual up vector where x and y axes in a virtual coordinate system of the virtual up vector are parallel to the virtual viewing surface and a z axis in the virtual coordinate system is parallel to the virtual view ray, wherein a virtual world object vector extends from a virtual object reference point in the virtual 3D space, so that an angle 6 between the virtual world object vector and the virtual view ray is equal to an angle between the real-world object vector and the real-world sensor view ray;
- f) construct in the virtual 3D space a base plane passing through the virtual object reference point, the base plane having an associated 2D-coordinate system (x′, z′);
- g) place one or more planar content elements on the base plane or parallel to the base plane in any one or more predetermined permissible locations on the base plane;
- h) project the planar content elements positioned in the 3D virtual 3D space onto the virtual viewing surface to form a projected image;
- i) form a final image the final image comprising the projected image;
- and,
- j) display the final image on the display device.