Форум программистов, компьютерный форум, киберфорум
Наши страницы
OpenGL
Войти
Регистрация
Восстановить пароль
 
Igor3D
1227 / 594 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
1

Ошибка геометрического шейдера

16.11.2016, 12:26. Просмотров 212. Ответов 3
Метки нет (Все метки)

Здравствуйте

Разбираюсь с либой, при компиляции тамошнего геометрического шейдера получаю такую бяку
glSlang
1
2
3
4
5
NVIDIA Corporation
GeForce GTS 250/PCIe/SSE2
3.3.0
Init OpenGL 3.3
Error compiling GLSL shader: 0(85) : error C3012: invalid value '4' for layout qualifier 'binding'
Вот эта строка
glSlang
1
2
3
4
5
layout(lines_adjacency) in;
 
#define EDGE_VERTS 4
 
layout(triangle_strip, max_vertices = EDGE_VERTS) out;
Что не так?

С уважением
Игорь
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2016, 12:26
Ответы с готовыми решениями:

Задумка шейдера
Здравствуйте Хотелось бы сделать шейдер, GLSL реализация необязательна,...

Аналог шейдера
Запускал такой шейдер, на планшете. Программа работала, шейдер компилировался и...

На чем писать шейдера?
Встала задача написать шейдер для webgl, и реализовал ее в render monkey. Но...

Компилятор для шейдера
Всем добрый день кого не видела. Такой вопрос интересует - есть ли независимый...

Оптимизация шейдера (GLSL ES)
Уважаемые форумчане, помогите оптимизировать шейдер: на компе(в RenderMonkey)...

3
snake32
1665 / 1117 / 197
Регистрация: 26.02.2009
Сообщений: 4,136
Записей в блоге: 5
16.11.2016, 14:39 2
Igor3D, а вы уверены что binding именно в той строке?
Потому как слова binding я не вижу.
1
Igor3D
1227 / 594 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
16.11.2016, 15:05  [ТС] 3
Цитата Сообщение от snake32 Посмотреть сообщение
Igor3D, а вы уверены что binding именно в той строке?
Потому как слова binding я не вижу.
Виноват, насвистел
glSlang
1
2
3
in block {
    OutputVertex v;
} inpt[EDGE_VERTS];   // вот эта строка
Заменил на
glSlang
1
} inpt[];
ну и вроде почухал. Впрочем слова binding и здесь нет (и во всем шейдере). Мда.. дивный язык (прибить бы авторов)
0
snake32
1665 / 1117 / 197
Регистрация: 26.02.2009
Сообщений: 4,136
Записей в блоге: 5
16.11.2016, 15:29 4
У меня каждая строка в шейдере заканчивается символами #13#10 (в десятичном виде)
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure TGLShader.Source( const source:string );
  var p:PAnsiChar;
begin
  p := PAnsiChar( AnsiString( source ) );
  glShaderSource( FID, 1, @p, nil );
  Assert( CheckOpenGLError, GetLastOpenGLError );
end;
 
procedure TGLProgramObject.Attach( const filename:string; shaderType:TGLShaderClass );
  var list:TStringList; shader:TGLShader;
begin
  list := nil; shader := nil;
  try
    list := TStringList.Create;
    list.LoadFromFile( filename );
    shader := shaderType.Create;
    shader.Source( list.Text );// list.Text возвращает 1 стоку 
     // где из строки шейдера объединены через  #13#10
    shader.Compile;
    Attach( shader );
  finally
    list.Free;
    shader.Free;
  end;
end;
И если есть ошибки в GLSL-коде всегда возвращает адекватный номер строки(столбца)
Хотя с если будет #ifdef то пока не ясно как себя поведёт...
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2016, 15:29

Организация работы шейдера
К примеру, если используется normal mapping, то в геометрическом шейдере...

Непонятен код шейдера
Здравствуйте. Объясните, пожалуйста, строки из вершинного шейдера : ...

Создание простого шейдера
Помогите написать шейдерную программу на языке GLSL для рисование любого с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru