Решил намедне запустить свое приложение тюнинга автомобилей и оказалось что шейдеры не хотят компилироваться. Видимо за последние два года что-то поменялось, все таки драйвера NVidia переписывают, уже 3 ОГЛ на дворе.

Ошибку выдал шейдер размытия, который используется для bloom эффекта.

Проблемный момент во фрагментном шейдере вот здесь

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
float weights[] = float[](

 1.0000,

0.9394,

0.7788,

0.5697,

0.3678,

0.2096,

0.1053,

0.0467,

0.0183

 );

Теперь же для того чтобы заставить заработать данный массив, нужно указывать версию #version 120 в самом начале шейдера и переписать массив следующим образом

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
float weights[] = float[](

 1.0000,

0.9394,

0.7788,

0.5697,

0.3678,

0.2096,

0.1053,

0.0467,

0.0183

 );
GLSL ошибка C7549
Метки:    

2 thoughts on “GLSL ошибка C7549

  • Воскресенье Апрель 26, 2009 на 08:29
    Постоянная ссылка

    Хм кстати — очень полезная штука. Правда я не заметил отличий между первым и вторым кодом.
    ? хотел бы узнать на какой версии драйверов выскочила эта проблема?

  • Понедельник Апрель 27, 2009 на 21:52
    Постоянная ссылка

    Точно версию драйверов не скажу, обнаружил это дело примерно по дате создания записи.
    Кстати не так давно просматривал еще одну свою демку с тенями на ATI и шейдеры не компилировались без указания версии 120, т.к. в коде была конвертация из mat4 в mat3 по конструктору. При этом НВидиа даже ухом не ведет, вот такие вот дела.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *