

Music Visualizer Globe
I saw a video on YouTube in which Martin Garrix did a concert for the deaf, the moment I saw how bass can tremble water I knew I wanted to do something with it. So I asked myself what if I made a music visualizer which literally shook the entire globe, and over several iterations, my music visualizer globe was born.
Features
-
64 point lights with specular effects​.
-
Audio spectrum analysis using fmod11.
- ​Diagetic music visualization: -
- Water is bass​.
- Land is treble.
-
Use of Height map to make mountain ranges pop out more.
-
Use of Gaussian blur on the specular map in order to avoid hard cuts between land and water.
-
Specular Lighting


Point Lights
All lights in the application are point lights. they work on basic dot3 lighting with attenuation.
Spectrum Analysis
Every frame bass and treble from the main audio channel is calculated and then those values are then available to get creative with. I've used those values in places like using it to: -
-
Move lights farther and closer.
-
Adjust specular power.
-
Pop vertexes of land and water.
-
Tint land and water.


Height Maps
I've use the height map on the left to make the various major mountain ranges like Andes and Rockies and the Himalayas pop out more than normal land for a really cool effect when visualizing treble. Moreover, a Gaussian blur on the map results in smoother transitions from flat land to mountain ranges.
Specular Map
I've used the specular map for two purposes here: -
-
As a traditional Specular Map.
-
As an indicator of which vertex is water and which one is land.
Applying a Gaussian blur over the specular map results in smoother edges separating land from water which gives the separation more of a natural "cliff" feel than just ​plain popping out.


Specular Lighting
To do specular effect: -
-
In world space, we first calculate the vector from eye to vertex (call it eye vector).
-
Then we reflect the light ray coming from the light source on the vertex with respect to the vertex normal(call it reflected vector).
-
After this, we figure out how much the reflected vector coincides with the eye vector by doing a simple dot product(call it spec dot factor).
-
Raise the spec dot factor by a "Spec Power"
-
Calculate spec attenuation by dividing the light intensity by a spec attenuation factor.
-
The product of the light color, spec factor, raised spec dot factor and spec attenuation will give you the final spec color.
