Resizing the world

In this assignment we had to rescale the world of our project in order to give the user a different perspective of a space. In fact, we are going to rescale the room and every object inside it, so that they will be bigger and the user will be smaller. Given that our project is a representation of a real 3D space, we are given the user the possibility of seeing a room in a way he could have never experienced without virtual reality. Moreover, this experiment, give us, as developer, the possibility of analyze some technical aspects of the tools we are using.

After resizing everything, the aspect of the room is clearly different, and it would have been different even if the user camera would have been resized together with the space. In fact, the first thing we will notice is that everything is darker. There’s a reason for it: we have scaled to a bigger size all the objects but, if we want to illuminate all the space as before, we have to change the lights with brighter ones.

Furthermore, since everything is bigger, we tend to see objects from closer point of view. This lead to some technical drawbacks: if textures are not enough detailed, we can recognize pixels in them.

The second major difference you will notice is in the navigation system. Since everything is bigger, you will need more time to move. The result is that you will feel to be slower. But this issue is evident also in another aspect of the game: when you throw an object, it will take more time to fall to the floor given that now the distance to the ground has been increased. In fact, as we know, without considering frictions, the time required for an object to fall is only related to distance and gravity acceleration, not to the mass (or size, if again we don’t consider friction) of the object.

Finally, the third issue I encountered, is with scripts. In fact our project uses a simple script to move some fishes in an aquarium. Obviously, given that we have resized all the space, they move slower. Another problem I found is with a script that spawn object: spawned objects are not scaled.

All these drawback lead to me to think that there should be a better way to give the user the same experience without encountering all these drawbacks. Although it is physically correct that everything will be slower, these lead to a kind of boring experience to the user. To solve it we have to change the velocity of the user camera and fish. Moreover, also lights need to be fixed: a user will expect the room to be as bright as before, even if we have scaled it. The major problem is related to the textures. In fact, although we can create fast fixes for lights and navigation, and even for the spawner, textures cannot be fixed in the same way. We will need to change them, and this is something that must be taken in count if we want to create this kind of experience: we must think to our goal from the beginning, we cannot just create a space and then simply resize it, because we will encounter all the issues explained above.

However, a similar kind of experience could be very useful in difference situation. While what we have done is just related to curiosity and fun, several applications could be found in professional environment. For example, doctors could have the need of seeing some organs or tissues bigger while operating a patience. Also students can find this approach useful when studying anatomy. I think it could be useful in general when talking about learning and teaching. For instance, let’s think to complicated machineries and gears: seeing them in action, instead of on paper, could help to have better understanding of scientific disciplines. Furthermore, it will make them even more interesting!

To conclude, in my experience I encounter some issues. Some can be fixed easily, some requires more work. The best approach is to think about them when designing the project in order to avoid the need of fixing them later.