diff --git a/qglview/glshaders.cpp b/qglview/glshaders.cpp
index 7e4b4b0..d4da90b 100644
--- a/qglview/glshaders.cpp
+++ b/qglview/glshaders.cpp
@@ -228,9 +228,9 @@ void setUniformLight(QOpenGLShaderProgram * prog, Light * light, QString ulightn
if (!prog) return;
if (!prog->isLinked()) return;
QMatrix4x4 m = mat * light->worldTransform();
- QVector4D pos(0, 0, 0, 1.), dir(light->direction);//, dir0(light->dir0), dir1(light->dir1);
+ QVector4D pos(0, 0, 0, 1.), dir(light->direction, 1);//, dir0(light->dir0), dir1(light->dir1);
pos = m * pos;
- dir = (mat * dir).normalized();
+ dir = ((m * dir) - pos).normalized();
float ang_start = light->angle_start / 2.f, ang_end = light->angle_end / 2.f;
if (light->light_type == Light::Omni)
ang_start = ang_end = 180.;
diff --git a/qglview/qglview_test/qglview_window.ui b/qglview/qglview_test/qglview_window.ui
index 50735a9..a23d8ff 100644
--- a/qglview/qglview_test/qglview_window.ui
+++ b/qglview/qglview_test/qglview_window.ui
@@ -14,1115 +14,1113 @@
QGLView converter
-
- -
-
-
-
- 2
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
-
- 10
- 75
- true
-
-
-
-
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- 0
-
-
-
- View
-
-
-
-
-
-
- 0
-
-
-
- Common
-
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
-
-
- FOV
-
-
-
- -
-
-
- 0.100000000000000
-
-
- 179.900000000000006
-
-
- 60.000000000000000
-
-
-
- -
-
-
- Depth
-
-
-
- -
-
-
- 0
-
-
-
-
-
- 3
-
-
- 999999999.000000000000000
-
-
- 1.000000000000000
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- -
-
-
-
- -
-
-
- 3
-
-
- 999999999.000000000000000
-
-
-
-
-
- -
-
-
- Renderer
-
-
-
- -
-
-
- 0
-
-
-
-
- Simple
-
-
- -
-
- Deferred shading
-
-
- -
-
- RT
-
-
-
-
- -
-
-
- Draw mode
-
-
-
- -
-
-
- 2
-
-
-
-
- Point
-
-
- -
-
- Wireframe
-
-
- -
-
- Solid
-
-
-
-
- -
-
-
- Back color
-
-
-
- -
-
-
-
- 10
- 10
- 10
-
-
-
-
- -
-
-
- Ambient
-
-
-
- -
-
-
-
- 10
- 10
- 10
-
-
-
-
- -
-
-
- MSAA
-
-
-
- -
-
-
- FXAA
-
-
-
- -
-
-
- Hover halo
-
-
- true
-
-
-
-
-
-
-
- 10
- 10
- 10
-
-
-
- true
-
-
-
- -
-
-
- Fill
-
-
-
- -
-
-
- 0.000000000000000
-
-
- 1.000000000000000
-
-
- 0.300000000000000
-
-
- 2
-
-
- 0.050000000000000
-
-
- 0.100000000000000
-
-
-
-
-
-
- -
-
-
- Selection halo
-
-
- true
-
-
-
-
-
-
-
- 10
- 10
- 10
-
-
-
- true
-
-
-
- -
-
-
- Fill
-
-
-
- -
-
-
- 0.000000000000000
-
-
- 1.000000000000000
-
-
- 0.300000000000000
-
-
- 2
-
-
- 0.050000000000000
-
-
- 0.100000000000000
-
-
-
-
-
-
- -
-
-
- Camera
-
-
-
-
-
-
- Orbit
-
-
- true
-
-
-
- -
-
-
- Camera Light
-
-
-
-
-
-
- -
-
-
- 0.000000000000000
-
-
- 99999.000000000000000
-
-
- 0.100000000000000
-
-
- 1.000000000000000
-
-
-
- -
-
-
- Line width
-
-
-
-
-
-
-
- Features
-
-
- -
-
-
- QFrame::NoFrame
-
-
- true
-
-
-
-
- 0
- 0
- 294
- 737
-
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- Shadows
-
-
- true
-
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
-
-
- Shadowmap size
-
-
-
- -
-
-
- 16.000000000000000
-
-
- 2048.000000000000000
-
-
- 512.000000000000000
-
-
- 0
-
-
- 16.000000000000000
-
-
- 512.000000000000000
-
-
- true
-
-
-
- -
-
-
- Soft
-
-
- true
-
-
-
-
-
-
- -
-
-
- Bloom
-
-
- true
-
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
-
-
- Factror
-
-
-
- -
-
-
- 0.000000000000000
-
-
- 100.000000000000000
-
-
- 1.000000000000000
-
-
- 1
-
-
- 0.100000000000000
-
-
- 1.000000000000000
-
-
- false
-
-
-
- -
-
-
- 1.000000000000000
-
-
- 128.000000000000000
-
-
- 8.000000000000000
-
-
- 0
-
-
- 1.000000000000000
-
-
- 4.000000000000000
-
-
- false
-
-
-
- -
-
-
- Radius
-
-
-
- -
-
-
- Threshold
-
-
-
- -
-
-
- 0.000000000000000
-
-
- 1.000000000000000
-
-
- 0.900000000000000
-
-
- 2
-
-
- 0.050000000000000
-
-
- 0.100000000000000
-
-
- false
-
-
-
-
-
-
- -
-
-
- Motion blur
-
-
- true
-
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
-
-
- Factror
-
-
-
- -
-
-
- Steps
-
-
-
- -
-
-
- 0.000000000000000
-
-
- 10000.000000000000000
-
-
- 1.000000000000000
-
-
- 1
-
-
- 0.100000000000000
-
-
- 1.000000000000000
-
-
- false
-
-
-
- -
-
-
- 1.000000000000000
-
-
- 128.000000000000000
-
-
- 8.000000000000000
-
-
- 0
-
-
- 1.000000000000000
-
-
- 4.000000000000000
-
-
- false
-
-
-
-
-
-
- -
-
-
- Eye accomodation
-
-
- true
-
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
-
-
- Time
-
-
-
- -
-
-
- Max speed
-
-
-
- -
-
-
- 0.000000000000000
-
-
- 256.000000000000000
-
-
- 32.000000000000000
-
-
- true
-
-
-
- -
-
-
- 0.010000000000000
-
-
- 1.000000000000000
-
-
- 0.100000000000000
-
-
- 3
-
-
- 0.100000000000000
-
-
- 1.000000000000000
-
-
- true
-
-
-
-
-
-
- -
-
-
- Depth of field
-
-
- true
-
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
-
-
- Diaphragm
-
-
-
- -
-
-
- Max speed
-
-
-
- -
-
-
- 0.100000000000000
-
-
- 1024.000000000000000
-
-
- 8.000000000000000
-
-
- true
-
-
-
- -
-
-
- 0.010000000000000
-
-
- 10.000000000000000
-
-
- 0.100000000000000
-
-
- 2
-
-
- 0.100000000000000
-
-
- 1.000000000000000
-
-
- true
-
-
-
- -
-
-
- Focus
-
-
-
- -
-
-
- 0.100000000000000
-
-
- 1000.000000000000000
-
-
- 1.000000000000000
-
-
- true
-
-
- 999999.000000000000000
-
-
-
- -
-
-
- Auto focus
-
-
-
-
-
-
- -
-
-
- Reflections
-
-
- true
-
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
-
-
- Blur
-
-
-
-
-
-
- -
-
-
- SSAO
-
-
- true
-
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
-
-
- Time
-
-
-
- -
-
-
- 0.000000000000000
-
-
- 16.000000000000000
-
-
- 5.000000000000000
-
-
- 0
-
-
- 1.000000000000000
-
-
- 4.000000000000000
-
-
- false
-
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 1
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- remove light
-
-
-
- -
-
-
- reload shaders
-
-
-
- -
-
-
- rebuff all
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 107
-
-
-
-
-
-
-
-
- Object
-
-
- -
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 1
-
-
-
-
-
-
-
-
- Material
-
-
- -
-
-
- QFrame::NoFrame
-
-
- true
-
-
-
-
- 0
- 0
- 333
- 853
-
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 834
-
-
-
-
-
-
-
-
-
-
-
-
- Страница
-
-
- -
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
+
-
Qt::Horizontal
+
+
+
+ 2
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+ 10
+ 75
+ true
+
+
+
+
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ 0
+
+
+
+ View
+
+
+
-
+
+
+ 0
+
+
+
+ Common
+
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
-
+
+
+ FOV
+
+
+
+ -
+
+
+ 0.100000000000000
+
+
+ 179.900000000000006
+
+
+ 60.000000000000000
+
+
+
+ -
+
+
+ Depth
+
+
+
+ -
+
+
+ 0
+
+
-
+
+
+ 3
+
+
+ 999999999.000000000000000
+
+
+ 1.000000000000000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ -
+
+
+
+ -
+
+
+ 3
+
+
+ 999999999.000000000000000
+
+
+
+
+
+ -
+
+
+ Renderer
+
+
+
+ -
+
+
+ 0
+
+
-
+
+ Simple
+
+
+ -
+
+ Deferred shading
+
+
+ -
+
+ RT
+
+
+
+
+ -
+
+
+ Draw mode
+
+
+
+ -
+
+
+ 2
+
+
-
+
+ Point
+
+
+ -
+
+ Wireframe
+
+
+ -
+
+ Solid
+
+
+
+
+ -
+
+
+ Back color
+
+
+
+ -
+
+
+
+ 10
+ 10
+ 10
+
+
+
+
+ -
+
+
+ Ambient
+
+
+
+ -
+
+
+
+ 10
+ 10
+ 10
+
+
+
+
+ -
+
+
+ MSAA
+
+
+
+ -
+
+
+ FXAA
+
+
+
+ -
+
+
+ Hover halo
+
+
+ true
+
+
+
-
+
+
+
+ 10
+ 10
+ 10
+
+
+
+ true
+
+
+
+ -
+
+
+ Fill
+
+
+
+ -
+
+
+ 0.000000000000000
+
+
+ 1.000000000000000
+
+
+ 0.300000000000000
+
+
+ 2
+
+
+ 0.050000000000000
+
+
+ 0.100000000000000
+
+
+
+
+
+
+ -
+
+
+ Selection halo
+
+
+ true
+
+
+
-
+
+
+
+ 10
+ 10
+ 10
+
+
+
+ true
+
+
+
+ -
+
+
+ Fill
+
+
+
+ -
+
+
+ 0.000000000000000
+
+
+ 1.000000000000000
+
+
+ 0.300000000000000
+
+
+ 2
+
+
+ 0.050000000000000
+
+
+ 0.100000000000000
+
+
+
+
+
+
+ -
+
+
+ Camera
+
+
+
-
+
+
+ Orbit
+
+
+ true
+
+
+
+ -
+
+
+ Camera Light
+
+
+
+
+
+
+ -
+
+
+ 0.000000000000000
+
+
+ 99999.000000000000000
+
+
+ 0.100000000000000
+
+
+ 1.000000000000000
+
+
+
+ -
+
+
+ Line width
+
+
+
+
+
+
+
+ Features
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ true
+
+
+
+
+ 0
+ 0
+ 358
+ 737
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Shadows
+
+
+ true
+
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
-
+
+
+ Shadowmap size
+
+
+
+ -
+
+
+ 16.000000000000000
+
+
+ 2048.000000000000000
+
+
+ 512.000000000000000
+
+
+ 0
+
+
+ 16.000000000000000
+
+
+ 512.000000000000000
+
+
+ true
+
+
+
+ -
+
+
+ Soft
+
+
+ true
+
+
+
+
+
+
+ -
+
+
+ Bloom
+
+
+ true
+
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
-
+
+
+ Factror
+
+
+
+ -
+
+
+ 0.000000000000000
+
+
+ 100.000000000000000
+
+
+ 1.000000000000000
+
+
+ 1
+
+
+ 0.100000000000000
+
+
+ 1.000000000000000
+
+
+ false
+
+
+
+ -
+
+
+ 1.000000000000000
+
+
+ 128.000000000000000
+
+
+ 8.000000000000000
+
+
+ 0
+
+
+ 1.000000000000000
+
+
+ 4.000000000000000
+
+
+ false
+
+
+
+ -
+
+
+ Radius
+
+
+
+ -
+
+
+ Threshold
+
+
+
+ -
+
+
+ 0.000000000000000
+
+
+ 1.000000000000000
+
+
+ 0.900000000000000
+
+
+ 2
+
+
+ 0.050000000000000
+
+
+ 0.100000000000000
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Motion blur
+
+
+ true
+
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
-
+
+
+ Factror
+
+
+
+ -
+
+
+ Steps
+
+
+
+ -
+
+
+ 0.000000000000000
+
+
+ 10000.000000000000000
+
+
+ 1.000000000000000
+
+
+ 1
+
+
+ 0.100000000000000
+
+
+ 1.000000000000000
+
+
+ false
+
+
+
+ -
+
+
+ 1.000000000000000
+
+
+ 128.000000000000000
+
+
+ 8.000000000000000
+
+
+ 0
+
+
+ 1.000000000000000
+
+
+ 4.000000000000000
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Eye accomodation
+
+
+ true
+
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
-
+
+
+ Time
+
+
+
+ -
+
+
+ Max speed
+
+
+
+ -
+
+
+ 0.000000000000000
+
+
+ 256.000000000000000
+
+
+ 32.000000000000000
+
+
+ true
+
+
+
+ -
+
+
+ 0.010000000000000
+
+
+ 1.000000000000000
+
+
+ 0.100000000000000
+
+
+ 3
+
+
+ 0.100000000000000
+
+
+ 1.000000000000000
+
+
+ true
+
+
+
+
+
+
+ -
+
+
+ Depth of field
+
+
+ true
+
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
-
+
+
+ Diaphragm
+
+
+
+ -
+
+
+ Max speed
+
+
+
+ -
+
+
+ 0.100000000000000
+
+
+ 1024.000000000000000
+
+
+ 8.000000000000000
+
+
+ true
+
+
+
+ -
+
+
+ 0.010000000000000
+
+
+ 10.000000000000000
+
+
+ 0.100000000000000
+
+
+ 2
+
+
+ 0.100000000000000
+
+
+ 1.000000000000000
+
+
+ true
+
+
+
+ -
+
+
+ Focus
+
+
+
+ -
+
+
+ 0.100000000000000
+
+
+ 1000.000000000000000
+
+
+ 1.000000000000000
+
+
+ true
+
+
+ 999999.000000000000000
+
+
+
+ -
+
+
+ Auto focus
+
+
+
+
+
+
+ -
+
+
+ Reflections
+
+
+ true
+
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
-
+
+
+ Blur
+
+
+
+
+
+
+ -
+
+
+ SSAO
+
+
+ true
+
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
-
+
+
+ Time
+
+
+
+ -
+
+
+ 0.000000000000000
+
+
+ 16.000000000000000
+
+
+ 5.000000000000000
+
+
+ 0
+
+
+ 1.000000000000000
+
+
+ 4.000000000000000
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ remove light
+
+
+
+ -
+
+
+ reload shaders
+
+
+
+ -
+
+
+ rebuff all
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 107
+
+
+
+
+
+
+
+
+ Object
+
+
+ -
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 1
+
+
+
+
+
+
+
+
+ Material
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ true
+
+
+
+
+ 0
+ 0
+ 397
+ 853
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 834
+
+
+
+
+
+
+
+
+
+
+
+
+ Страница
+
+
+ -
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
diff --git a/qglview/renderer_deferred_shading.cpp b/qglview/renderer_deferred_shading.cpp
index 3ea59f1..11f1166 100644
--- a/qglview/renderer_deferred_shading.cpp
+++ b/qglview/renderer_deferred_shading.cpp
@@ -342,7 +342,7 @@ void RendererDeferredShading::renderScene() {
shader_ssr_merge->setUniformValue("tg1", 1);
shader_ssr_merge->setUniformValue("ts", 2);
fbo_out.setWriteBuffer(ri);
- glDrawQuad(shader_ssr_blur);
+ glDrawQuad(shader_ssr_merge);
wi = ri;
ri = 1 - ri;
//piSwap(wi, ri);
diff --git a/qglview/shaders/dsl_pass_1.frag b/qglview/shaders/dsl_pass_1.frag
index e50e7f0..4049c9b 100644
--- a/qglview/shaders/dsl_pass_1.frag
+++ b/qglview/shaders/dsl_pass_1.frag
@@ -41,7 +41,7 @@ void calcLight(in int index, in vec3 n, in vec3 v, in vec4 v2) {
float scos = max(dot(-ldir, qgl_Light[index].direction.xyz), 0.);
spot *= scos * step(qgl_Light[index].endAngleCos, scos);
spot *= smoothstep(qgl_Light[index].endAngleCos, qgl_Light[index].startAngleCos, scos);
- lwdir = mat3(mat_viewi) * qgl_Light[index].direction.xyz;
+ //lwdir = /*mat3(mat_viewi) * */qgl_Light[index].direction.xyz;
//bn = normalize(cross(lwdir, vec3(1, 0, 0)));
//bn2 = normalize(cross(lwdir, bn));
float ds = ldist/200.;//max(abs(sdist) / 5000, 0.02);