RAY-CASTING STEP 2: DEFINING PROJECTION ATTRIBUTESNow that we have the world, we need to define some attributes before we can project and render the world. Specifically, we need to know these attributes:
2. Projection plane's dimension. 3. Relationship between player and projection plane. The player should be able to see what is in front of him/her. For this, we will need to define a field of view (FOV). The FOV determines how wide the player sees the world in front of him/her (see Figure 8). Most humans have a FOV of 90 degrees or more. However, FOV with this angle does not look good on screen. Therefore, we define the FOV to be 60 degrees through trial and experimentation (on how good it looks on screen). The player's height is defined to be 32 units because this is a reasonable assumption considering that walls (the cubes) are 64 units high. To put the player inside the world, we need to define the player's X coordinate, the player's Y coordinate, and the angle that the player is facing to. These three attributes forms the "point of view" of the player. Suppose that the player is put somewhere in the middle of grid
coordinate (1,2) at a viewing angle of 45 degrees relative to the
world, then the player's point of view and FOV will be like in
Figure 9. (One grid consist is 64 x 64 units.
Thus, we can also say that the player is in unit coordinate (96,160)). Figure 9 We need to define a projection plane so that we can project what the
player sees into the projection plane. A projection plane of 320 units
wide and 200 units high is a good choice, since this is the resolution
of most VGA video cards. (Video resolution is usually referred in pixels,
so think of 1 pixel as equal to 1 unit.)
Examples in Javascript (with source code) |
||
Advertisements