Что такое правильное расширение файла для GLSL shaders?



Я изучаю затенение glsl, и я столкнулся с различными форматами файлов. Я видел, как люди дают свои шейдеры вершин и фрагментов .vert и .frag расширения. Но я тоже видел .vsh и .fsh расширения, и даже оба шейдера вместе в одном . Поэтому мне интересно, существует ли стандартный формат файла, или какой способ является "правильным"?

724   5  

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

    Ничего не найдено.