Little update from Jellify.
In this screen you can see for the first time the main characters of the game: the evil wizard (on the left) and the good heroes (on the right).
You can choose to stay on the evil side, and trasform your friends on Facebook in jelly candies or ice statues, or you can play on the good side, turning them back into their original aspect!
For more information, screenshots and details, please contact me at firstname.lastname@example.org
I was reading about Sir Richard Branson having a perfect reproduction of his head in ice, to offer to first class passengers of Virgin Airlines; while reading it I got really sorry for the people not rich enough to have his own face scanned with lasers, modelled by a team of 3D modellers, and then printed in ice. It was so sad that I decided to devote my life to the search of a solution for this problem.
After months of hard research, a lot of ice cubes melting on my desk to understand better the problem, I finally found out the solution.
As soon as possible I will release an app that makes possible to have an ice cube with your face modelled in it, starting from a picture of you.
Sir Richard Branson, I am really sorry for you but I really think everybody has the right to have his own face printed on an ice cube!
I’m just wondering if simply adding Beer-Lambert law and Fresnel’s reflections to my code I can get this kind of result in realtime:
Summing up and simplifying a lot, the Fresnel’s law says:
- if a surface is pointing at you (angle of incidence=0), the reflection is small (R=0) and the refraction is big (T=1-R).
- If the surface is pointing to the side of your viewpoint (angle of incidence=90deg), the reflection is big and the refraction is small.
This means a solid object like a sfere or a human face near they borders reflect more light than you can expect.
The effect is noticeable on human skin too, as you can see in this rendering from Halflife with only the fresnel component visible:
A transparent object like a mirror, if the inclination is near 90 deg, transmits less light the expected.
This means that this effect is noticeable mostly along the outline of an object, or anyway in small, limited areas.
Beer-Lambert law says the amount of light transmitted through a material diminishes exponentially according to the path length; in the case of jelly materials, small objects and smal objects, I suppose I should give higher priority implementing this law, I’m really sorry for you, Augustin-Jean Fresnel !
The shader code should be something like this:
vec3 Absorbance = MaterialColor * MaterialDensity * -MaterialDepth; //density from 0.0 to 1.0
vec3 Transmittance = Refraction * exp(Absorbance);
I look forward to implement it and make some screenshot to compare the result with and without Beer’s law.
Did you ever wonder how does it feel to be Han Solo sealed in carbonite, or a gummy bear?
I’m working on it, it is possible, in realtime, with some light reflections and refractions (GPU) + face detection and image processing (CPU), on Android.
It is funny to see how my face fits Han Solo body, or a gummy bear candy
The shaders still miss a lot of math (es. Fresnel equations), but the result is good enough to release some screenshot!
By the way, Han Solo is sealed in ice or crystal, black carbonite version is coming soon.