City, Seeing
Excerpted from notes written on 2019-09-06
In the physical world, there's no limit to the detail a city can show. While we may consider how much detail to express in designing and constructing buildings, and how much of this detail city dwellers will see, we don't worry about how to handle omissions in the process of conveying details that already exist in front of our eyes. The gaps between floor tiles with only millimeter-scale variations, walls with natural stone patterns preserved, smoothly finished concrete walls...
How do we 'see' a natural stone wall in a virtual city? Let's assume we start to see a natural stone wall in the distance. The details and position of the natural stone wall are stored somewhere as information. This information flows into a repository where original data is gathered just before it appears on our screen. There, considering my position and the wall's position, the wall's information is converted into a form suitable for display on the screen, and then the wall appears. The screen has a resolution, and no matter how detailed the wall's information is, if the area displayed on the screen is small, the wall's information is converted to fit just that area. If the wall's information is too large, it will take time to convert it, causing a delay in its appearance on the screen. Earlier, we vaguely mentioned that the wall's information flows into a repository, but depending on the path it takes, additional time might be required. To see just one wall, there is a loss of visual information and some time is consumed.
These were considerations unnecessary when designing a physical city. While displaying one or two walls on screen might not raise concerns about wall detail or loading time, as the number of walls increases, more space may be needed to store information, transfer times for that information may increase, and rendering times may grow. To better grasp the scale, let's think about leaves instead of walls. Showing one leaf isn't an issue, but what about a tree with thousands of leaves? What if there's a hill with thousands of such trees? What if there are thousands of such hills in the city? Interestingly, we need to consider how to handle leaves on hills outside our field of view. This information must exist somewhere since these leaves are part of the city, but they don't need to be rendered immediately if we can't see them. If it takes 1/100th of a second to render one hill, it would take 10 seconds for 1000 hills. If only one hill is visible to me, rendering all 1000 would hinder my view of the city. So, how should we handle leaves we might see someday, or perhaps never see at all? In a physical city, did we ever worry about people who might never visit a building we constructed?