
Work in Progress​
Garage:
Here is a variation of the exterior environment of the Curious Garage and a glimpse into the inside of it. This was made for the Unity Assignment 1 and not a final look of the garage. Since the player will not be able to step out of the garage, perhaps this might be used as a title screen - Press X button to Start.


Starbox:


Starbox with textures done in Substance Designer

Garage Airlock Variation 1 (Unity Assignment 2):
​

Assignment 3:
​
Link to download the package: https://drive.google.com
Note: You can launch the project without SteamVR (Vive) attached/ on. This way you will be controlling the flying camera with WASD keys. Click (or click + hold) to interact with interactable objects. Use Alt key to rotate view.
Video playthrough (HTC Vive):

Assignment 3 Vive Unity Demo
Screenshots​:

Garage's personal bedroom


Reflection Probe

Garage's personal bedroom
Rest of the garage WIP:




Lighting revision:
Realistic, PBR based lighting that is closer to architectural visualization was one of the most important goals for this project and there was a significant amount of time spent researching if Unity is capable to deliver the same fidelity in terms of lighting as Unreal. Projects like ArchVizPro 5 showed that such fidelity is possible and, in fact, most of the lighting workflow for this project was based on the settings of this project. Unfortunately, up to this point lighting baking in Unity turned out to be one of the most significant challenges for me and proved to have a steep learning curve. As a result, prior to final submission, I have spent a considerable amount of time optimizing the lighting, the following was made:
1) Player -> Rendering Settings:
*Color space is Linear for this project. It provides the best result for PBR workflow.
*XR settings are set to Single Pass for better performance in VR.
2) Camera settings:
*Rendering Path is Forward (Deferred is better, but not suitable for VR due to performance hit)
*Occlusion Culling (Improves performance)
*Allow HDR On (Optional)
*Post Processing Stack applied to the VR camera
3) Static Lightmaps:
*HDR cube map
*Real-time GI On
*Baked Global Illumination On
*Shadowmask activated
*Enlighten
*Settings for Resolution may vary ( 2k for testing, for 4k for final)
*Compress Lightmaps OFF
*Final Gather On
*Custom Lightmap parameters to adjust Push Off and Back Face(!!!Very important as it removes "spot" artifacts)
*Fog on (Optional - used it to hide elements of HDR Cube map)
*Consider not turning on Lightmap static for terrain. Or seperate in pieces and use it for closer pieces.
*For very large objects or terrain set Lightmap Scale to lower value. If lacking resolution in certain assets increase it for these assets./
4) GI Cache:
*Set to 100GB+. This helps to avoid errors during bake times
*Clean it sometimes if lots of errors in lighting occur such as Failed to Execute ones
​ 5) Lighting profiles:
*Created a custom one to adjust values
*Again, adjusted adjust Push Off and Back Face to remove artifacts
*Ideally get settings closer to Default-Medium or Default-High, but for final (Increases bake times). For testing was using low values.
*Created a few extra profiles with lower settings for objects which are not important, far from the player or too big (like terrain)
​
6) From dynamic sky to cube map:
*Initially, I used dynamic sky system, which looked nice and worked fine in VR, but eventually switched to an HDR map.
7) Reflection Probes:
*Zoned areas with own Reflection Probe, total probes - 7. One probe for each room. For the big garage area, I have used 5 reflection probes for each area (it is divided into multiple levels and corners)
8) Light Probes:
*No need to facilitate an entire scene with light probes like some tutorials suggest. Used lots of probes in grid-like structure in areas with lots of small or dynamic objects AND removed probes in areas I know the player won't be interacting with small assets.
*Create 4 probe Light Probe with 1 probe at each corner of your entire map
9) Asset/ Prefab settings:
*One of the most important things I have learned is that you separate objects in your scene to the ones that will use Probe lighting and the ones that will use Lightmap Static. Usually, don't mix these.
*For lightmap static object (Bigger objects like structure, large assets etc) - set Light Probe Blend to OFF
*For small assets don't use Lightmap static (it will dramatically increase bake times) - set Lightmap Static to OFF and activate Light Probe Blend
*Use reflection Anchor if prefab does not look right and select Reflection Probe it should correspond to manually.
*Generate Lightmap UV checked in fbx of the asset (Select dependencies of the prefab to find it)
The result after revision:
*No "spot" artifacts - YAY!
*Dramatically decreased bake times (From 7 hours to about 1.5 hours)
*Nice even, realistic lighting
​
Road to Final:
-
1) Issue: SteamVR camera rig wont work with OnTriggerEnter(). (Solved)Creating a trigger for playing the animation in SteamVR turned out to be a little tricker then doing it for the FPS controller. For SteamVR it is required to enable Is Trigger for Sphere Collider located in HeadCollider (under FollowHead) in Player rig)
-
2) Issue: Lightmap resolution capped at 2048. (Unresolved)Still an unresolved challenge for me is to make unity bake 4096 lightmaps. For some reason, it would only bake 2048. I have tried manually Selecting The Texture-> Inspector-> Override for PC, Mac & Linux -> Max Size-> 4096, but it would still be stuck at 2048. Obviously, the lightmap setting in Lighting menu is set to 4096, but generating the map still produces the 2048 map. Still investigating.
-
3) Issue: Lightmap "spot" artifacts. (Solved)"Original Issue: Another unresolved issue for me at the moment are lightmap errors that produce weird spot/ dot like artifacts on some objects. Information on the web suggests that to remedy it, Generate Light Map UV's need to be checked or lightmap UV's manually edited, however trying those things did not fix it for me. FIXED: There might multiple reasons these artifacts appear, however, what helped me the most and cleared almost all of these artifacts was to change the following two parametrs in Lightmap Parametrs profile and experiment with them for your scene (You need to create the custom one): Pushoff value: Increase it to something like 0.5 Backface tolerance: 0.2 These value applied to my scene and may be diffrent for yours.
-
1) Issue: SteamVR camera rig wont work with OnTriggerEnter(). (Solved)Creating a trigger for playing the animation in SteamVR turned out to be a little tricker then doing it for the FPS controller. For SteamVR it is required to enable Is Trigger for Sphere Collider located in HeadCollider (under FollowHead) in Player rig)
-
2) Issue: Lightmap resolution capped at 2048. (Unresolved)Still an unresolved challenge for me is to make unity bake 4096 lightmaps. For some reason, it would only bake 2048. I have tried manually Selecting The Texture-> Inspector-> Override for PC, Mac & Linux -> Max Size-> 4096, but it would still be stuck at 2048. Obviously, the lightmap setting in Lighting menu is set to 4096, but generating the map still produces the 2048 map. Still investigating.
-
3) Issue: Lightmap "spot" artifacts. (Solved)"Original Issue: Another unresolved issue for me at the moment are lightmap errors that produce weird spot/ dot like artifacts on some objects. Information on the web suggests that to remedy it, Generate Light Map UV's need to be checked or lightmap UV's manually edited, however trying those things did not fix it for me. FIXED: There might multiple reasons these artifacts appear, however, what helped me the most and cleared almost all of these artifacts was to change the following two parametrs in Lightmap Parametrs profile and experiment with them for your scene (You need to create the custom one): Pushoff value: Increase it to something like 0.5 Backface tolerance: 0.2 These value applied to my scene and may be diffrent for yours.