Immersive Visual Effects - Final Project

 
22/4/2026 - 27/7/2025 / Week 1- Week 14
ChenYuhan / 0378131
Film Studies and Cinematography / Bachelor of Design (Honours) in Creative Media / Taylor's University
Final Project

TABLE OF CONTENTS







INSTRUCTIONS


<iframe src="https://drive.google.com/file/d/1Ju-Cv8u84eD99RmhLsDO5sgZh4iHhwT2/preview" width="640" height="480"></iframe>


LECTURES

Week 1:


Week 2:


Week 3:


Week 4:


Week 5:


Week 6:


Week 8:


Week 9:



PROJECT 1

At the beginning of the course, we first learned about IMMERSIVE VISUAL EFFECTS through videos. This is a very cool form of visual art that allows users to experience the immersive feeling of grasping and touching virtual objects in the real world.

To prepare us for the subsequent practical construction, we first downloaded several drives.
Fig. 1.1, Installation, Week 1 (2026/04/20)

After that, we received instructions. We could choose real-world dolls and import them into models by taking photos or videos with our phones. I used Scaniverse, which allows importing models from recorded videos.

Fig. 1.2, puppy modeling, Week 3 (2026/05/07)

After that, we learned a ripple effect in class. Then, as an assignment after class, we created two more effects ourselves.




PROJECT 2

We need to import the dolls with special effects that we completed in the previous project into a large VR scene.

Fig. 2.1, scene modelling, week 6 (2026/05/25)

In this project, we initially imported a large scene model, attempting to observe it in real-time using VR glasses. However, we found that the scene was simply too large and difficult to manipulate, so we returned to Supresplat to scale down the scene model and reduce rendering.



Unfortunately, just as I finished this project, PlayCanvas underwent a major version update. All the previous code needed to be updated, otherwise no effects would display. After a painful afternoon of tweaking and redoing, I finally got the three previous effects moving again. However, when I tried to preview the doll effects in the scene, I encountered two problems:

One was that the doll moved, but was very blurry and unclear. The other was that the entire scene started moving.

Finally, I tried modifying the code again, and this time the special effects were finally visible.

PROJECT 3

Fig. 3.1, Psychology Practice Course, week 8

Since we couldn't borrow VR equipment this week, Mr Ronald decided to take us to an immersive activity with psychology students. Through hands-on lessons and experiences, he guided us to understand different ways of expressing immersion.

Finally, with Mr Ronald's support, we received small prizes. Each little animal was incredibly cute; we were truly grateful to the professor!

Fig. 3.2, VR devices, week 9

After receiving the VR equipment, I first tested both VR mode and controller mode because I wanted to try VRSRTEAM, but unfortunately, I found that my device didn't support it. I then started testing my project in PlayCanvas. I found that it could indeed be viewed and run, but it was extremely laggy.

Therefore, the professor suggested that we minimise the memory usage in Supersplat to ensure successful operation.

Your submission will be in the form of a link to a WebXR VR experience made in PlayCanvas with the following criteria:
The Core Environment. Your world must include at least one asset made with the Gaussian Splatting method. This can be an entire backdrop or specific key objects.
Mix and Match. You are completely welcome to use regular 3D assets too! Feel free to bring in traditional polygonal meshes and regular textures to flesh out your background, build structures, or create interactive props.
Data Budget. Your combined Gaussian splat data files have a strict cap of 12MB in total. Make sure your non-Gaussian regular assets are highly optimized too (low-poly models, smart texture sizes). Your entire project size is capped at 150MB. This will help ensure your project doesn't take too long to load and can be experienced smoothly.
Script-Driven VFX. Your world needs to include at least one visual effects system created by messing around with and manipulating the Gaussian Splat data in real-time. Using pre-built template driven scripts are allowed as long as you understand how the variables in the script affect the VFX.
Interactive. One of the VFX in [4] above must be triggered via user interaction.

Fig. 3.3, supersplat, week 12

Fig. 3.4, Download resources, week 12

I found free resources on Supersplat; the scene is about 40MB, and the objects are about 5MB. I've already compressed their memory twice.

Fig. 3.5, Collider settings, week 13

Because my resources are in PLY format and are GSplat, they cannot be directly recognised as collision volumes in PlayCanvas. Therefore, I need to add components and child entities to create a collision volume that can be recognised.

Then the collider should be as large as possible; otherwise, the triggering conditions will be too demanding.

Fig. 3.6, Error Subtitles, Week 14

The special effects process was so painful; I always encountered more problems after solving one. I originally wanted to remotely control the headset from my computer to display the console errors, but I couldn't connect. So, I had to rely on in-game text boxes to display the errors and solve them one by one based on the different text displayed.

At first, not even the subtitles were displayed. Then I realized there must be a code display error. Then it showed "vr start," but no trigger, so I started changing the size of the trigger collider... Anyway, without this, I probably wouldn't know how to fix it now.

Fig. 3.7, Adjust position, week 14

Fig. 3.8, Test successful, week 14

The good news is that I finally got it working—the pile of stones disappeared after the ray touched it, and a message appeared on the screen. After the object disappeared, triggering it again only resulted in a "miss" message.

Playcanvas Link:

Comments

Popular posts from this blog

Film Studies and Cinematography - Project 1

DIGITAL PHOTOGRAPHY AND IMAGING - PROJECT 2

Digital Photography and Imaging - Week11