git-svn-id: svn://db.shs.com.ru/libs@59 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2015-12-04 11:50:32 +00:00
parent edfd396059
commit 6ab9283a18
13 changed files with 92 additions and 46 deletions

View File

@@ -67,9 +67,9 @@ const char qgl_structs[] =
" float quadraticAttenuation;\n"
" sampler2DShadow shadow;\n"
//" sampler2D shadowColor\n"
//" mat4 shadowMatrix;\n"
" vec4 shadowDir0;\n"
" vec4 shadowDir1;\n"
" mat4 shadowMatrix;\n"
//" vec4 shadowDir0;\n"
//" vec4 shadowDir1;\n"
"};\n"
"struct QGLMap {\n"
" float offset;\n"
@@ -217,7 +217,7 @@ void setUniformLights(QGLShaderProgram * prog, const QVector<Light*> & lights, c
*/
void setUniformLight(QGLShaderProgram * prog, Light * light, QString ulightn, const QMatrix4x4 & mat, int shadow) {
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);//, dir0(light->dir0), dir1(light->dir1);
pos = m * pos;
dir = (mat * dir).normalized();
double ang_start = light->angle_start / 2., ang_end = light->angle_end / 2.;
@@ -237,8 +237,8 @@ void setUniformLight(QGLShaderProgram * prog, Light * light, QString ulightn, co
prog->setUniformValue((ulightn + ".quadraticAttenuation").toLatin1().constData(), GLfloat(light->decay_quadratic));
prog->setUniformValue((ulightn + ".shadow").toLatin1().constData(), shadow);
prog->setUniformValue((ulightn + ".shadowColor").toLatin1().constData(), shadow);
prog->setUniformValue((ulightn + ".shadowDir0").toLatin1().constData(), (mat * dir0).normalized());
prog->setUniformValue((ulightn + ".shadowDir1").toLatin1().constData(), (mat * dir1).normalized());
prog->setUniformValue((ulightn + ".shadowMatrix").toLatin1().constData(), light->shadow_matrix);
//prog->setUniformValue((ulightn + ".shadowDir0").toLatin1().constData(), (mat * dir0));
//prog->setUniformValue((ulightn + ".shadowDir1").toLatin1().constData(), (mat * dir1));
//qDebug() << light->direction << light->dir0 << light->dir1;
//prog->setUniformValue((ulightn + ".shadowMatrix").toLatin1().constData(), light->shadow_matrix);
}