#glsl #shader #qualifiers #tessellation
#glsl #шейдер #квалификаторы #тесселяция
Вопрос:
когда я загружаю свой шейдер управления тесселяцией, он выводится:
0(7) : error C3008: unknown layout specifier 'vertices'
0(15) : error C7565: assignment to varying in gl_TessLevelOuterIn
0(16) : error C7565: assignment to varying in gl_TessLevelOuterIn
мой шейдер выглядит так
#version 400
layout(vertices = 2) out;
void main( )
{
gl_out[ gl_InvocationID ].gl_Position = gl_in[ gl_InvocationID ].gl_Position;
gl_TessLevelOuter[0] = float( 1 );
gl_TessLevelOuter[1] = float( 5 );
}
что я здесь делаю не так?
квалификатор «вершины» должен быть виден с #version 400?
в спецификациях говорится:
Квалификаторы компоновки
макет (layout-qualifiers) в / из / единообразный
Квалификаторы макета вывода
Для шейдеров управления тесселяцией: вершины = целое число-константа
также мой шейдер оценки тесселяции говорит:
0(5) : error C3008: unknown layout specifier 'equal_spacing'
0(5) : error C3008: unknown layout specifier 'isolines'
я что-то упускаю?
с уважением, Питер
Комментарии:
1. Судя по сообщениям об ошибках, похоже, что вы пытаетесь скомпилировать это как шейдер оценки тесселяции, а не шейдер управления тесселяцией. Это два отдельных этапа.
2. спасибо, мой конструктор перепутал имена файлов моих шейдеров.