K-ON! Clubroom ā€“ Cassette Player!

Phew! It’s been a while since I last posted.Ā I picked up a cold from PAX and haven’t been feeling well since then. Even so, I’ve made someĀ progress on the clubroom and still intend to release a beta version before the end of the year.

Let’s look at the features that have been added recently. First up: realistic refraction.

I cannot take full credit for this effect; my brotherĀ did most of the programming, I only had the idea.

MostĀ game engines like Unity can’t do true refraction, since it requiresĀ ray tracing. If you’ve seen refraction in games before, it’s usually an approximation that works well enough for effects like water ripples and frosted glass, but cannot accomplish what you see in the screenshot above.

To achieve the effect, every side of the tank is equipped with its own virtual camera, which projects an image of what it sees onto the water surface. The virtual camera is deflected from the player’s viewpoint according to the refractive index and the distance from the tank.

Since adding more cameras reduces performance, I have decided not to enable this effect in VR (since it would require twice theĀ number of cameras).

Speaking of performance, the soft shadows under objects now use decal textures rather than projectors,Ā which is a huge improvement.


I have also been hard at work modelling the cassette player, which you can see above.

After a lot of research, I discovered that the player was based on a Sony CF-1980ā…”. You can see a photo of the real-life player here. I actually found a lot of great reference photos by browsing Japanese auction sites, including close-ups of the control panel.

As of today, the model is 99% complete, and I’ll be starting the textures soon. The cassette player is the last major 3D model that will be added before I release the beta.


Thanks forĀ sticking around like Sticky the stick insect after gettingĀ stuckĀ on a sticky bun.