git-svn-id: svn://db.shs.com.ru/libs@58 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -67,7 +67,9 @@ const char qgl_structs[] =
|
||||
" float quadraticAttenuation;\n"
|
||||
" sampler2DShadow shadow;\n"
|
||||
//" sampler2D shadowColor\n"
|
||||
" mat4 shadowMatrix;\n"
|
||||
//" mat4 shadowMatrix;\n"
|
||||
" vec4 shadowDir0;\n"
|
||||
" vec4 shadowDir1;\n"
|
||||
"};\n"
|
||||
"struct QGLMap {\n"
|
||||
" float offset;\n"
|
||||
@@ -215,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);
|
||||
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.;
|
||||
@@ -235,5 +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 + ".shadowMatrix").toLatin1().constData(), light->shadow_matrix);
|
||||
prog->setUniformValue((ulightn + ".shadowDir0").toLatin1().constData(), (mat * dir0).normalized());
|
||||
prog->setUniformValue((ulightn + ".shadowDir1").toLatin1().constData(), (mat * dir1).normalized());
|
||||
//qDebug() << light->direction << light->dir0 << light->dir1;
|
||||
//prog->setUniformValue((ulightn + ".shadowMatrix").toLatin1().constData(), light->shadow_matrix);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user