rotmat = NORMAL_MATRIX * rotmat;\n"
|
что это?
vec3 vPosition3 = vPosition4.xyz / vPosition4.w;\n"
|
в модель матрице не должно быть по идее ничего такого, что требовало бы потом этого деления.
for (int i = 0; i < 8; ++i){\n"
" if (int(LIGHTS_COUNT) <= i) break;\n"
" vVaryingLightDir[i] = -normalize(LIGHTS_POSITION[i] - vPosition3);\n"
" vVaryingLightDir[i] = rotmat * vVaryingLightDir[i];\n"
|
это намного лучше во фрагментном считать
vec3 normalAdjusted = vVaryingNormal + normalize(texture2D(TEXTURE_NORMAL, texcoord.st).rgb * maxVariance - minVariance);\n"
|
ты зачем-то прибавляешь нормалмапу к вертексной ворлд нормали, забивая на TBN
--
а, я понял, ты переводишь направление от лайтов в тангент спейс в VS, все равно непонятно что за прибавление вертексной нормали в PS тогда, плюс направление от поинтлайтов считать в VS на сцене из кубов это жесть по-любому.