Immersive Visual Effects Project 3

Immersive Visual Effects Project 3

15/6/2026 - 26/7/2026| Week 09 - Week 16

LONG BOJIANG / 0375362 / Bachelor of Design (Honours) in Creative Media

Immersive Visual Effect / Taylor's University 

Table of Contents:

Instructions
Lecture
Project
ReflectionInstructions

Lecture

week 9
Reflection

After learning about different parts of immersive design in previous weeks, this week focused on how all these elements work together inside a real-time VR environment. I learned that creating a successful VR experience is not only about individual assets or effects, but about making sure everything works together smoothly.

Objects as Interactive Systems

This week changed my understanding of objects in VR. An object is not only a 3D model with textures; it also needs correct scale, physical behavior, and interaction logic to become part of the experience.

This connects with Week 8's idea of affordance. An object should not only look interactive, but also respond naturally when users interact with it. The integration stage is where the design decisions from previous weeks are tested.

VFX as Feedback

I also learned that VFX is not just for visual decoration. In VR, effects can provide feedback, guide attention, and enhance the user's emotional experience. When visual effects respond to user actions, they help strengthen the connection between the user and the virtual environment.

Building Atmosphere

The lecture also explored how atmosphere is created through different layers, including 360-degree backgrounds, particles, lighting, and fog. Each element contributes to the feeling of the environment, but each also affects performance.

This reminded me of previous discussions about optimization. Designers need to balance visual quality and technical limitations to maintain a smooth experience.

Real-time Performance and Testing

Unlike traditional film production, VR experiences need to run everything at the same time, including objects, lighting, effects, sound, and interactions. Because of this, optimization is not only a final step but an important part of the whole development process.

Testing on actual VR devices is also necessary because the final experience depends on how all systems work together in real conditions.

Conclusion

Overall, Week 9 helped me understand that immersive design is about integration. Tracking, interaction, atmosphere, and visual effects only create value when they work together as one complete experience. A successful VR project requires continuous testing and balancing between creativity and technical performance.


week10

After learning about VR concepts and development processes for several weeks, this week gave me the opportunity to experience my own Gaussian Splat scenes through a Meta VR headset. This changed my understanding of immersive design because I could finally experience the difference between viewing a scene on a screen and actually being inside it.

VR Device Preparation

Before using the headset, we learned about important preparation steps, including adjusting the headset fit and IPD settings, setting up the Guardian boundary, cleaning the device, and checking controller functions.

These steps connected with previous weeks' topics. For example, adjusting the IPD related to visual comfort, while the Guardian boundary showed how real-world safety needs to be connected with the virtual environment. Proper setup is important because small issues can quickly reduce immersion.

Experiencing My Own VR Scenes

The biggest difference I noticed was the sense of scale. When viewing my scene on a computer, small size differences were difficult to notice. However, inside VR, incorrect proportions immediately felt unnatural. This helped me understand why scale is such an important part of creating believable environments.

I also experienced my Gaussian Splat scenes from a new perspective. Before using the headset, I was only observing the environment from outside. In VR, I became part of the scene and could understand how lighting, effects, and spatial details actually influenced the user's experience.

Comfort and Cybersickness

During the session, I experienced slight discomfort when moving my view too quickly. Although it disappeared after a short time, it helped me understand cybersickness from a personal perspective. Smooth movement and comfortable interaction are essential because even a visually impressive experience can fail if the user's body feels uncomfortable.

Conclusion

Overall, Week 10 showed me the importance of testing VR experiences directly through a headset. A scene that looks good on a computer screen may feel completely different in an immersive environment. This experience reminded me that real VR design requires continuous testing and adjustment based on how users actually feel inside the virtual space.

Week 11 

This week, I studied the article "Turning a Gaussian Splat Into a Videogame", which explains how a Gaussian Splat environment can be transformed into a playable first-person game using PlayCanvas. The article helped me understand that realistic visuals alone are not enough for an immersive experience. A complete VR or game environment also requires interaction, physics, navigation, and performance optimization.

From Visual Scanning to Interactive Environment

One important idea from the article is that Gaussian Splatting is mainly a rendering technique, not a complete game asset. Although it can capture realistic environments, it does not contain information such as collision, physics, or navigation. Without these systems, users cannot properly interact with the environment.

This helped me understand the difference between creating a realistic scene and creating an interactive experience.

Building Game Systems

The article introduced methods to add missing game functions to Gaussian Splat scenes. One example is generating collision meshes from the scanned environment, allowing players and objects to interact with the space naturally.

Another interesting part was the lighting solution. Since Gaussian Splats already contain baked lighting information, dynamic objects may look disconnected. By using a lightness grid, the system can adjust object brightness to better match the environment.

Navigation and AI

I also learned how generated geometry can support navigation systems. The collision mesh can be converted into a navigation mesh, allowing AI characters to understand where they can move.

The AI system was also interesting because it used a simple behaviour tree combined with different character settings to create different behaviours. This showed me that effective game design often comes from flexible systems rather than only complex programming.

Connection to My Project

This article changed my understanding of Gaussian Splatting. Previously, I saw it mainly as a tool for creating realistic 3D environments, but now I understand its potential for interactive experiences.

For my own immersive design project, this workflow provides inspiration for combining realistic scanned environments with game engine systems. Although the full process requires more technical learning, it shows how graphics, interaction, AI, and optimization work together to create a complete immersive experience.

Conclusion

Overall, Week 11 helped me see Gaussian Splatting as more than a visual technology. When combined with game engine features, it can become a powerful method for building realistic and interactive virtual environments.


Project
For this task I needed to build a museum scene for a VR headset project, using 3D scanned assets for both the room itself and two exhibits inside it. On top of just placing everything, each exhibit needed its own effect. One exhibit spins on its own, like it's sitting on a turntable. The other one breaks apart when you click it or pull the trigger. It flies apart into pieces with a bit of a falling motion, then clicking again puts it back together.

This log covers what I've gotten done so far. That includes finding the assets, writing the scripts, and a problem I'm still fixing with the rotation.

Step One: Finding Assets

For the room itself, I found a good scan online called "Art Gallery Interior." It had white walls and wooden roof beams, and looked pretty close to a museum already.


For the file format, I picked the PLY file instead of the other options, since I still needed to edit and position it before using it. PLY is just easier to work with for that. It's the same thing I did on the last project.

The two exhibits, a dragon and a Buddha statue, were separate scans of just those single objects, not cut out of a bigger scene. That way the edges come out cleaner and there's no leftover background mess around them.

Step Two: Getting It Ready

Once everything was cleaned up, I exported all three, the room, the dragon, and the statue, into a format that loads fast in the game engine.


I didn't change any of the export settings, just left them default. Then I dragged all three files into the project, placed them where they needed to go, and adjusted the positions until it looked right.

Step Three: Writing the Scripts

Before writing the break apart and reassemble effect, I watched a reference video a few times to figure out exactly what was happening. On click, the pieces fly outward in random directions with a bit of a fall to them, then stop. Click again and they all fly back to where they started.

For the actual code, I reused a method I'd already worked out from an earlier project where I was debugging a glitch effect on a scanned pony toy. The idea is to change the code for the whole scene's material, always grab a fresh copy of it instead of saving an old reference, and only apply the effect to whatever is close enough to the object's actual position. This time I added one more thing. I used each little piece's own starting position to generate a random direction that stays the same every time. That way each piece always flies out and comes back along the same path, instead of jittering around randomly every frame like the glitch effect did. That's what makes it look like one smooth explode, hold, and come back together animation instead of noise.


The other script, for the statue spinning, is way simpler. It just rotates the object a little bit every frame based on a speed setting.

There was one small hiccup after writing both scripts. I saved the files but they weren't showing up as options to attach in the editor. It turned out the editor just hadn't caught up yet, and refreshing the page fixed it.

Where I'm Stuck: The Statue Spins in a Weird Circle

After attaching the scripts, the statue did start spinning, but instead of spinning in place, it was orbiting in a big circle. It looked like it was tracing a huge loop instead of just turning on itself. This happens when the object's rotation point isn't actually where the object visually is. If the center point baked into the file is off somewhere far away, spinning it makes it swing around that far off point instead of spinning where it actually looks like it's sitting.

My first attempt to fix it was to select the object and just set its position back to zero.


But after doing that, the object didn't move at all. It stayed exactly where it was.


It turns out the position numbers I was changing only affect the object as a whole, not the actual data points that make it up. Those have their own separate offset baked in, and setting position to zero doesn't touch that at all. To actually fix it, I need to select every single point that makes up the object first. There's a shortcut for that, plus a counter that confirms how many points got selected. Then I need to move those points directly, since that's the only way to actually shift where the data itself sits.

I'm still working on this part. Once the statue's center point is actually lined up and I re export it, I'll follow up on how the spin looks.

What I've Learned So Far

This project made it a lot clearer to me that moving the object and moving the actual data that makes up the object are two completely different things, even though they sound like they should be the same. I kept assuming changing the position number would just fix the offset. It turns out one only moves the container, and the other moves what's actually inside it. Next up is finishing the fix for the center point, and once that's done, actually hooking up and tuning the break apart effect on the dragon.

Final URL:
https://launch.playcanvas.com/2561815?debug=true
Reflection

Experience

Throughout this module, my understanding of immersive design changed significantly. At the beginning, I mainly viewed VR and VFX as technical tools for creating visual experiences. After learning about presence, interaction, perception, tracking, optimization, and real-time rendering, it became clear that immersive design depends on many different systems working together, not just visual polish.

This became very concrete while building an interactive museum scene for my project, using Gaussian Splat assets for the room and two exhibits inside it. One exhibit needed to rotate on its own, and the other needed to break apart into pieces on click and reassemble on a second click. Getting either of these working turned out to involve far more than writing the animation logic. Building the shatter effect meant reusing a shader modification approach I had worked out on an earlier project, and adapting it so that each fragment always scattered and returned along the same path instead of jittering randomly every frame. Getting the rotation working exposed a different kind of problem: the statue spun in a wide orbit instead of turning in place, because the point cloud's actual coordinate origin was sitting far from where the object visually appeared. Fixing that required understanding that an object's position value in the editor and the coordinates baked into its underlying data are two separate things, and that changing one does not touch the other.

The practical work also exposed me to the everyday challenges of real-time development. While building these effects in PlayCanvas, I ran into technical problems tied to the rendering system, including a case where an effect appeared to do nothing even though the code had no errors, simply because the material reference I was working with had already been silently replaced by the engine after the asset finished loading. Rather than relying on tutorials, I had to dig through documentation, test different approaches, and adjust course when something didn't work. That process built up my ability to solve technical problems on my own and gave me more confidence working with unfamiliar tools.

Testing my Gaussian Splat environment on a Meta VR headset was another important part of this experience. Before that, I had mostly judged my work through the computer editor. Seeing the scene in VR showed me that several design decisions read very differently from the user's perspective, and scale, effect intensity, and spatial arrangement all needed further adjustment once I actually tested them. It drove home that immersive design has to be evaluated through the user's actual experience, not just how it looks on a flat screen.

Observation

Across this project, immersive design revealed itself as a combination of connected systems rather than a single skill. Good visuals alone weren't enough to make the VR experience work. Interaction, comfort, performance, and visual consistency all played a role in whether users actually felt present in the environment.

My understanding of Gaussian Splatting also deepened. I had previously thought of it mainly as a way to build realistic 3D environments, but through research and hands-on implementation, I learned that splats only provide visual information. Turning a scanned environment into something interactive still requires separate systems layered on top, and even something as basic as making an object rotate correctly depends on understanding how that data is structured underneath the visuals.

I also noticed how often failures had no error message at all. The statue orbiting instead of spinning, or an effect quietly doing nothing because of a stale material reference, were both silent problems that only became visible through testing and close observation, not through anything the system flagged for me. That made it clear that many design decisions that look correct in the editor don't hold up until tested directly, and that an immersive experience isn't something finished in one pass. It has to be checked and refined continuously throughout the whole process.

Findings

This module changed how I think about VFX and immersive design overall. Visual effects turned out to be more than decoration. They also function as tools for communication and interaction, guiding attention, giving feedback, building atmosphere, and strengthening the user's connection to the virtual environment.

I also came to appreciate the balance between creativity and technical constraints. Every decision in the project involved weighing visual quality against performance, user comfort, and system limitations. A successful immersive experience isn't about piling on the most effects or the highest detail. It's about choosing the combination that actually improves the user's experience.

The most valuable outcome from this module was developing a more systematic approach to design. Debugging the museum project's rotation and shatter effects made me more comfortable researching problems, testing different solutions, and refining my work through repeated iteration rather than assuming a first attempt would work. Rather than designing purely from my own perspective as the creator, I learned to think about how users actually interact with and feel inside an experience.

Going forward, this module's lessons will carry into my future work in VR, interactive media, and immersive design. More than anything, I learned that a successful immersive experience comes from the combination of creative ideas, technical execution, and continuous refinement.

Comments

Popular posts from this blog