This is a small summary for my part in the VR experience we developed for a local Farm Show with members of the College of Agricultural Science. They wanted a VR guide through the mechanics of a home well system. My part, as usual, was in the development of the 3D assets and working out animation concepts.
The structure of the well is very simple, a cylinder running deep under a plane. A hole was cut into the plane to allow for an “elevator” to be placed that the users would ride down into the well, observing the way the structure changes and goes through layers of material. It was decided after some testing that cutting the cylinder in half longways, with the pipes of the well dipped into the center point, created a more pleasing effect of “going underground”. I also added a layer above all the ground parts that would be used to showcase water flowing through the sediment so it could pool at the bottom.
The parts of the well itself were modeled in more detail as they’d be examined closely. All piping and layers of grout or cement were chopped in half so they could later be toggled on and off to create cross sectional views.
The top of the well was left mostly empty, using just a large grass plane around the center point of the well. A “house” was added to the top to give a sense of how far out the well should be and demonstrate where the outward heading pipe was going. The house being just a flat PNG worked surprisingly well.
The only major technical hurdle that came up was the effect of the water filling the ground. Initially, I created an effect that was convincing within Maya using a layered shader (that is, one using two shaders that interact with each other). One half had the lattice of the water flowing through the sediment while the other had a mask that was half transparent and half solid. Then, by scaling the mask up and down, it created an illusion of flow with the water as it filled in the space of the object covering all the walls. This proved to be an issue in Unity, however, as this kind of layered shader is not commonly available. The solution wound up being surprisingly simple though: just adding an additional object. I called it the “water curtain” and gave it a script I found for masking specific objects, even when the object on top is transparent. Essentially I split the layered shader into two objects: the base water which is actually always present, and the masking object sitting in front of it that we move and scale to create the flowing effect. This mask worked super well and we’ve already started considering other ways to use this script in some other projects.
Overall, the project went very smoothly. After passing the assets off to my coworker to do the functionality, we got the result to the Farm Show with minimal issues. We’re excited to do more work with the College of Ag Science in the future.