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

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

111
задан Samssonart 22 июня '11 в 1:35
источник поделиться
5 ответов

Нет стандартного расширения файла для шейдеров GLSL. Наиболее распространенными являются, вероятно, .vert и .frag, так как это расширения, которые 3D Labs использовали в некоторых своих инструментах. Но об этом для любой формы стандартного расширения.

75
ответ дан Nicol Bolas 22 июня '11 в 2:32
источник поделиться

В спецификации нет официального расширения. OpenGL не обрабатывает загрузку шейдеров из файлов; вы просто передаете шейдерный код в виде строки, поэтому нет определенного формата файла.

Однако glslang, справочный компилятор/валидатор HLS для справки Хроноса, использует следующие расширения для определения типа шейдера, для которого предназначен этот файл:

  • .vert - вершинный шейдер
  • .tesc - шейдер управления тесселяции
  • .tese - шейдерный анализ шейдеров
  • .geom - геометрический шейдер
  • .frag - шейдер фрагмента
  • .comp - вычислительный шейдер
59
ответ дан Colonel Thirty Two 23 окт. '14 в 18:18
источник поделиться

Идентификация типа файла по расширению - это особенность Windows. Все другие операционные системы используют разные подходы: MacOS X хранит тип файла в специальной структуре метаданных в записях файловой системы. Большинство * nixes идентифицируют файлы, проверяя их внутреннюю структуру на базе базы данных известных "магических байтов"; однако текстовые редакторы используют расширение.

В любом случае, источники GLSL похожи на любой другой исходный файл программы: обычный текст и тип файла.

Расширение, которое вы можете выбрать по своему усмотрению. Я использую следующее имя:

  • ts.glsl
  • gs.glsl
  • vs .glsl
  • fs.glsl

но мой выбор и технически мои программы даже не предусматривают никакой схемы именования или расширения. Именование для людей, чтобы читать и знать, что в нем; с общим общим расширением требует, чтобы у меня было правило синтаксиса для высоких значений только для одного набора расширений файла.

16
ответ дан datenwolf 22 июня '11 в 9:59
источник поделиться

Как отмечали другие, в строгом смысле слова нет правильного ответа. Следует отметить, что Sublime (подтвержденный для v2 и v3) также ожидает .vert и .frag для подсветки синтаксиса и проверки.

8
ответ дан Weavermount 12 апр. '14 в 3:00
источник поделиться

Существует два способа написания шейдеров.

Вы можете сохранить содержимое шейдера вершин и фрагментарного шейдера в переменной char * и скомпилировать, связать и прикрепить шейдер к программе.

Другой способ - написать отдельный файл вершинного и фрагментарного шейдера с любым расширением, которое вам нравится, и прочитать его для компиляции, ссылки и прикрепления шейдера к программе.

Таким образом, соглашение об именах, такое как .vert/.frag,.vsdr/.fsdr и т.д., является действительным до тех пор, пока вы знаете, как его читать...

-3
ответ дан user2439483 31 мая '13 в 19:16
источник поделиться

Другие вопросы по меткам или Задайте вопрос