Added simple screen reflection for ambient light

This commit is contained in:
Filippo Scognamiglio 2013-12-26 00:28:05 +01:00
parent 61ca4f7237
commit a140ffe6c8
3 changed files with 9 additions and 7 deletions

View File

@ -1,5 +1,6 @@
import QtQuick 2.1
import "utils"
import QtGraphicalEffects 1.0
TerminalFrame{
id: frame
@ -13,7 +14,7 @@ TerminalFrame{
borderBottom: 232
imageSource: "../images/black-frame.png"
normalsSource: "../images/black-frame-normals.png"
sourceRect: Qt.rect(-80, -90, terminal.width + 160, terminal.height + 180 )
sourceRect: Qt.rect(-80, -90, terminal.width + 160, terminal.height + 180)
shaderString: "WhiteFrameShader.qml"
}

View File

@ -32,7 +32,7 @@ ShaderEffect{
vec4 txt_color = texture2D(source, coords);
vec4 normala = texture2D(normals, coords);
vec3 normal = normalize(normala.rgb) * txt_color.a;
float reflection = dot(normal, vec3(1.0, 1.0, 0.0)) * 0.3 * brightness;
float reflection = dot(normal, vec3(1.0, 1.0, 0.0)) * 0.4 * brightness;
vec3 reflection_color = mix(font_color, background_color, 0.7).rgb * reflection;
vec3 final_color = mix(txt_color.rgb, reflection_color, 1.0 - ambient_light);
gl_FragColor = vec4(final_color, txt_color.a);

View File

@ -77,7 +77,7 @@ ApplicationWindow{
id: shadercontainer
anchors.fill: terminal
blending: true
z: 2
z: 1.9
property color font_color: shadersettings.font_color
property color background_color: shadersettings.background_color
property variant source: theSource
@ -239,13 +239,14 @@ ApplicationWindow{
}
RadialGradient{
z: 4
id: ambientreflection
z: 2.0
anchors.fill: parent
cached: true
opacity: 0.1
opacity: shadersettings.ambient_light * 0.66
gradient: Gradient{
GradientStop{position: 0.0; color: shadersettings.font_color}
GradientStop{position: 1.0; color: "#00000000"}
GradientStop{position: 0.0; color: "white"}
GradientStop{position: 0.7; color: "#00000000"}
}
}
}