From: Will Overington Subject: TECH: Voxels EUTO Unit 2; DESIGN :Doors between Virtual Worlds Date: Tue, 18 Aug 92 11:17:24 +0100 18th August 1992 This learning material, newly written, contains the ideas of the author. It may or may not become a consensus, standard, view. Study it, if you will please, in a spirit of research enquiry, not as a statement of the agreed state of the art. Rotation Point. A picture in the EUTO system starts at the point (x, y, z) = (0, 0, 0) and then occupies a contiguous volume with non-negative coordinates that the picture designer chooses. However, in manipulating a EUTO picture to produce two dimensional views, the picture designer may wish to state a point in the three dimensional space that he or she regards as the point about which rotations should take place. This is herein called the Rotation Point. A Rotation Point is specified by use of the characters X, Y and Z. Suppose, for example, that the Rotation Point is to be at (x, y, z) = (100, 200, 50). The sequence 100X200Y50Z is included at the start of the file, before any of the voxels are specified. Palette Changes. The EUTO system uses 16 colours, specified using the letters a through to o for colours 1 to 15 and p for colour 0. In order to change the hue of any colour, the characters R, G and B are used, to represent red, green and blue components. The numbers used correspond to colours on a VGA display accessed using the SetRGBPalette command of Turbo Pascal 6.0. Suppose that one wishes to set colour e as 32 red, 40 green and 44 blue. The sequence 32R40G44B>e is included at the start of the file, before any of the voxels are specified. ---- The Rotation Point and Palette Change features are straightforward in what they are doing, how they are used and why they are provided. The features that follow are equally straightforward in what they are doing and how they are used, but are rather more complicated as to why they are provided. Hot Voxels. A voxel may be specified as a Hot Voxel, with a number tag also include if so desired. As the colour of a voxel is used to move the point being considered one unit in the z direction, the fact that a voxel is a Hot Voxel is specified by the letter H preceding the colour letter of the voxel. A number may precede the letter H if desired, otherwise the presumed number of 0 is assumed to represent that no number tag is intended. A voxel of, say, colour c, may be represented as a Hot Voxel with no number tag intended by Hc and a voxel of, say, colour f, may be represented as a Hot Voxel with a number tag of 3 by 3Hf being used. Unresolved Columns. A voxel column usually takes the form of numbers and letters, followed by a z character. For example, abcz, 100az, a10tfz and so on. However, the EUTO system also allows the use of the u character to allow a vertical column to contain two or more entirely separate sequences of voxels. The resolution of which sequence to use is made when displaying the picture. The separate sequences are introduced by the letter u preceded by a number tag, such as 2u for example. In effect, if a voxel is read in a vertical column before a u character is read for that column, then 0u is implicitly regarded as having been received. The following examples are all valid vertical columns. For example, abc1uaaaz, 1u100a2ubz, 2ua10tf5uz, 3ug79uabHcdez, 4uaaaaa0ubbbbbz and so on. The resolution of which sequence to use may vary with the viewing angle and may be a function of the viewing point and the point viewed. This feature may be thought of as having its roots in paralleling the way that holograms can have small security images hidden inside them and its reason for existing being in the problem of how one expresses such exotic theoretical pictures as the two rooms joined via a meadow and standing in the meadow looking through a free-standing doorway into the first room, then walking round the doorway and looking into the second room through the free-standing doorway. I envisage a EUTO picture with 1u sequences for room 1, 2u sequences for room 2 and 3u sequences for the meadow. Each voxel column will contain two sequences, either a 1u sequence and a 3u sequence, or a 2u sequence and a 3u sequence. In displaying a view, for each voxel, you know your viewpoint, you know where the voxel is, do you see it through the doorway or not through the doorway?