Лазарус, OpenGL и шейдеры

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

Mirage писал(а):А я вот компилирую шейдеры с помощью вполне себе опенжеэлевской функции glCompileShader. Я что-то не так делаю?

MylnikovDm писал(а):Вы правы, я не совсем точно выразился в своём комментарии. Компиляция шейдеров происходит непосредственно в процессе выполнения программы, поскольку компилятор шейдеров встроен в драйвер видеокарты. Иначе было бы невозможно обеспечить совместимость программ со всем множеством видеокарт, которые сегодня используются.

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

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

Интересно, если я назову хитрую "С-бинарно-двоичную", "программу шейдера", простым и понятным мне словом: скрипт - это будет правильное название или нет?

Не менее интересно: поставит ли, понятие: скрипт - точку в понимании "С-бинарно-двоичных программах для шейдеров и их компиляции в ... "?
olegy123
долгожитель
Сообщения: 1643
Зарегистрирован: 25.02.2016 11:10:20

Сообщение olegy123 »

MylnikovDm писал(а): Иначе было бы невозможно обеспечить совместимость программ со всем множеством видеокарт, которые сегодня используются.

сами шейдеры - это asm инструкции.
Вот чтобы уйти от сложностей написания asm, добавили высокоуровненвый язык.

Добавлено спустя 2 минуты 24 секунды:
vitaly_l писал(а):vitaly_l

скрипт интерпретируются как есть. Поэтому назвать то что компилируется скриптом - не правильно.
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

olegy123 писал(а):сами шейдеры - это asm инструкции.
Вот чтобы уйти от сложностей написания asm, добавили высокоуровненвый язык.
скрипт интерпретируются как есть. Поэтому назвать то что компилируется скриптом - не правильно.

Вы хотите сказать что, всё, что написано в википедии, правда? ==> https://ru.wikipedia.org/wiki/%D0%A8%D0%B5%D0%B9%D0%B4%D0%B5%D1%80
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

olegy123 писал(а):сами шейдеры - это asm инструкции.

Шейдер это программа для GPU, как уже писали выше. На чем она именно написана не важно... компилируется она в машинный код целевого GPU.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Mikhail писал(а): компилируется она в машинный код целевого GPU.


Лучше сказать не так. Она компилируется в код для подходящего процессорного шейдерного ядра/ядер.
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

Лекс Айрин писал(а):Лучше сказать не так. Она компилируется в код для подходящего процессорного шейдерного ядра/ядер.

Это не верно.
Ответить