Что такое правильное расширение файла для GLSL shaders?
Я изучаю затенение glsl, и я столкнулся с различными форматами файлов. Я видел, как люди дают свои шейдеры вершин и фрагментов .vert и .frag расширения. Но я тоже видел .vsh и .fsh расширения, и даже оба шейдера вместе в одном . Поэтому мне интересно, существует ли стандартный формат файла, или какой способ является "правильным"?
5 ответов:
нет стандартного расширения файла для шейдеров GLSL. Наиболее распространенные из них, вероятно,
.vertи.frag, так как это расширения, которые 3D Labs использовали в некоторых своих инструментах. Но это все для любой формы стандартного расширения.
в спецификации нет официального расширения. OpenGL не обрабатывает загрузку шейдеров из файлов; вы просто передаете код шейдера в виде строки, поэтому нет определенного формата файла.
, glslang, справочный компилятор/валидатор GLSL Khronos, использует следующие расширения для определения типа шейдера, для которого предназначен файл:
- .vert-вершинный шейдер
- .tesc-это шейдер управления тесселяцией
- .tese-это шейдер оценки тесселяции
- .Геом - геометрический шейдер
- .frag-фрагмент шейдера
- .comp-вычислительный шейдер
идентификация типа файла по расширению-это вещь, специфичная для Windows. Все остальные операционные системы используют разные подходы: MacOS X сохраняет тип файла в специальной структуре метаданных в записях файловой системы. Большинство * никсов идентифицируют файлы, проверяя их внутреннюю структуру с помощью базы данных известных "магических байтов"; однако текстовые редакторы используют расширение.
в любом случае, источники GLSL так же, как и любой другой исходный файл программы: обычный текст, и это их файл тип.
расширения, вы можете выбрать, как вы хотите. Я использую следующие имена:
- ts.glsl
- gs.glsl
- против glsl
- fs.glsl
но это мой выбор, и технически мои программы даже не применяют никаких имен или схем расширения. Имя предназначено для людей, чтобы читать и знать, что в нем; наличие общего основного расширения требует, чтобы у меня было правило выделения синтаксиса только для одного расширения файла набор.
Как упоминали другие, нет правильного ответа в самом строгом смысле. Стоит отметить, что Sublime (подтверждено для v2 и v3) также ожидает .Верт И.фраг для подсветки синтаксиса и проверки.
есть два способа написания шейдеров.
вы можете хранить содержимое вершинного шейдера и шейдера фрагментов в
char *переменная и компиляция, ссылка и прикрепление шейдера к программе.другой способ-написать отдельный файл шейдера вершин и фрагментов с любым расширением, которое вам нравится, и прочитать его, чтобы скомпилировать, связать и прикрепить шейдер к программе.
Итак, соглашение об именовании, как .вертикальный./фраг .vsdr/.фсдр и др. все действительны до тех пор, пока вы знаю, как это читать...
Comments