What's This?
A new and interactive way to look at my portfolio work! This virtual world was created to give users an interesting 3D perspective that showcases my ability through the digital gallery inside and the project itself. Users are initially placed in a mountain landscape and have the option to explore before walking into the gallery.
|
|
Process
•I decided to move forward with creating a first-person virtual experience that would behave in the same way as a game.
•I chose to develop the target build for WEBGL, which allows me to upload the project onto a browser. •I will be using simmer.io to upload the build, this website allows unity developers to upload their unity WEBGL projects on the web for free. •The project will consist of a mountain themed terrain and a gallery / museum to display my work. |
Creating the Terrain
•Terrain builder allows for sculpting, painting textures, tree, and details such as grass.
•Downloaded some of Unity’s default brushes and textures to create a more realistic mountain-scape.
•Downloaded some of Unity’s default brushes and textures to create a more realistic mountain-scape.
Creating the Gallery•Downloaded Unity’s ProBuilder and ProGrid packages to allow for easier construction.
•ProGrid gave allows for snapping on certain distances and an XYZ grid to reference. •ProBuilder allows for more efficient building, with features like extruding edges and subdividing objects. |
|
Performance
Instead of having the terrain AND the interior of the building be loaded onto one scene, I made two separate scenes to for each, respectively.
•Realtime lighting could cause drops in efficiency as the light is constantly updating to see if an object moved so it can create the correct shadowing.
•I baked lightmaps instead. If objects in the scene are static, I can tell the light generator to send light rays to bounce off objects initially. Once that is done, the shadows from these nonmoving object will be displayed and baked into the texture maps instead of Realtime shadows. This allows for a smoother performance. |
•Player movement in my code is dependent on Time.deltaTime, instead I used Time.smoothDeltaTime. Time.smoothDeltaTime constantly updates and records the time since the program began. SmoothDeltaTime records at a more frequent interval, allowing for smoother movements during drops in framerate performance.
The performance of this project is still a work in progress!