A short messy writeup on this intro
-----------------------------------

This is my first attempt at a 4K intro, so it's quite basic and nothing really fancy.

It was quite satisfying when the finished binary ended up exactly 4096 bytes. It was a lot of work to trim the code, and I learned a lot about how shader minification and Crinkler compression often makes a smaller exe when I don't try to get as few bytes as possible in the original shader source. Many, many late night hours was spent doing trial and error based size optimizing.

The OpenGL code is based on TheNuSan/Lev4k (https://github.com/TheNuSan/Lev4k), but heavily modified to suite my own preferences :-)

The intro displays lots of mirrors on the walls, and adds some reflective objects in the scene. The idea was to make an illusion of infinite mirrors and reflection. Although it's only 4 reflective bounces + one fake reflection for the last (fifth) reflection if it's a mirror.

Then the camera slowly moves on a sin/co-sine based curve. Forward for 4 beats and then backwards for 4 beats. It relocates to a new random position every 8 beat. The first and last two sections (8 beats pr. section) adds some predetermined positioning and movement of the camera (in the outro the camera doesn't move, but the FOV is manipulated for a zoom-out effect).

The shader itself is a pretty standard ray marcher with support for ray transmission, refraction and reflection. The compo edition allows for four reflection bounces in addition to two extra rays needed to complete a transmissive object. So in a mirror that reflect 4 other mirrors with transmissive objects you can theoretically end up with 15 rays casts. All objects (except the walls and roof) are reflective.

I've added some noise to the walls for some depth texture and the "graffiti".

There are three simple point light sources that are positions based on camera position and calculated using standard diffuse and specular shading. Ambient occlusion and soft shades based on IQ's examples. Some hacky Fresnel effect was also implemented on the transmissive objects.

In the post-processing pass Gaussian blur (to fake an illusion of DOF), dithering, vignetting, Gamma correction and AECS tone mapping is applied.

The audio is shader based audio. Don-Cato came up with a four chord progression that didn't sound too bad. The four chords is more or less reused by all the "instruments" in the composition. The instruments itself is mostly sine-based with multiple overtones and different ADSR-curves. The hi-hat and snare is generated using the same noise functions that the graphics code use. I'd never tried coding audio before, and until a year ago I had no knowledge of music theory either, so I hope I can develop these skills to make more advanced audio compositions in the future.

All in all, this was _Great fun for me!_

-Zeko


Greetings from Zeko and Don-Cato to: 
Audiomonster, Boo, Brainbug, Cassius, Dizzy, ElateCarrot, Crown De Cryptoburners, Focie, Frenzy, Fortnitekid, Groo, Halych,
Isaac, Izzie, Juicydude, Marita <3, Mr.Lightfoot, Optic, Sascha (RIP), Scourger, Stripe the Gremlin, Virgill, Sundancekid, 
Whiskas, Woober.


BTW: You should all get back to greeting people instead of name-dropping famous groups in your greetings sections!!!

