Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Disa от Декабрь 09, 2012, 23:08



Название: Косяк с компилером GLSL
Отправлено: Disa от Декабрь 09, 2012, 23:08
Добрый день.

Почему-то очень странно обновляются данные из шейдеров. Если выдается ошибка, то даже после ее изменения (например, закоменчивания кода) она все равно вылезает, как будто ничего не изменилось.

Вот пример. Был каст из vec4 в vec3:
 
Код:
vec3 eyeVertex = vec3(mvpMatrix * vertex);

Компилер выдал :  error C7011: implicit cast from "vec4" to "vec3". Проверил, все верно - нужный файл, нужный номер строки.

Поменял на:
Код:
vec4 eyeVertex = mvpMatrix * vertex;

По прежнему: error C7011: implicit cast from "vec4" to "vec3".

Qt creator 2.6.2, GLSL 3.3, Qt 4.8.2, винда

PS: В принципе все ок, если удалить и добавить снова эти шейдеры в qrc файл. Но каждый раз это делать задалбывает


Название: Re: Косяк с компилером GLSL
Отправлено: Igors от Декабрь 10, 2012, 02:02
PS: В принципе все ок, если удалить и добавить снова эти шейдеры в qrc файл. Но каждый раз это делать задалбывает
Это еще ничего. У меня на одной машине изменения не ловились до перезагрузки  :)


Название: Re: Косяк с компилером GLSL
Отправлено: Disa от Декабрь 10, 2012, 03:59
Я думал я один такой :)
Ну компилер правда еще промахивается строчками, немного.

Стоит делать bug report?


Название: Re: Косяк с компилером GLSL
Отправлено: Igors от Декабрь 10, 2012, 04:17
Я думал я один такой :)
Ну компилер правда еще промахивается строчками, немного.

Стоит делать bug report?
Не знаю, мне это не приходило в голову. Кому нужен тот report? Hard куда более консервативен чем софт. Вообще GLSL - прекрасный но удивительный язык :). Написал я шейдак - работает. Хирак - у заказчика на одной машине (из многих) не работает, хотя компилится. После долгих разборок
Код
glSlang
if (a > 1) return;  
b = 0;
..
 
Так эта карта не хочет. "Правильно" так
Код
glSlang
if (a > 1)
return;  
else {
b = 0;
..
}
 
А как бьет по мозгам то что ВЕСЬ код выполняется. Напр ф-ция которая нигде не вызывается - но все равно она карту грузит. Привыкнуть к этому нелегко. В общем - успехов  :)



Название: Re: Косяк с компилером GLSL
Отправлено: Disa от Декабрь 10, 2012, 06:06
Да есть такое, я тоже долго не понимал что не работает, пока не увидел что из 10ти uniform один забыл передать в шейдер. И никто про это не сказал :)
Ну ваш пример, конечно, намного красочнее описывает особенности. Nuff said :)