Войти
ПрограммированиеФорумГрафика

#include в шейдерах (GLSL)

Страницы: 1 2 Следующая »
#0
3:05, 6 фев. 2007

Собственно, не получается заиклюдить. В логе ошибки просто написано, что can't open include file.
Непонятно главное: как задавать include paths при использовании шейдеров? Копировал хедер куда только можно - и к ехе и в папку с шейдерами и складывал все в одну папку - все равно не работает.. Что делать?

Кстати, в Orange Book например вообще написано, что include никогда не будет в GLSL. Видимо они все таки появились..


#1
8:06, 6 фев. 2007

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

в результате ты избавишся от подобного гемороя ... а заодно и гемороя связанного с разными версиями дров и вендоров.

п.с. а помоему а ГлСл нету инклюдов .... или я неправ ?

#2
8:43, 6 фев. 2007

#include в GLSL нет

У тебя наверно НВидиа с очередной дополнительной фичей.
На других картах работать не будет

#3
9:19, 6 фев. 2007

NULL_PTR
Ох...
Ну как же на картах работать не будет.
#include - всего лишь препроцессор. Это же не специальная команда GPU :-D

Так что поддерживать ее должен компилятор шойдеров, а не видюха.

#4
9:30, 6 фев. 2007

HITROLISK
Угу. Чувак дето размутил компилер, и не нает что с ним делать.

olegf
А что за компилер ГЛСЛ?

#5
9:40, 6 фев. 2007

HITROLISK
Хы...
GLSL компилит драйвер.
И в препроцессоре ГЛСЛ не должно быть по стандарту #include
Хоть на НВидии работает, но на других картах работать не обязан.

#6
10:09, 6 фев. 2007

NULL_PTR
Зато на NVidia раньше программу невозможно было скомпоновать из нескольких шейдеров одного типа. Например, подключить к программе несколько вершинных шейдеров было невозможно - возникали ошибки при линковке.
Теперь в новых дровах поправили.

И вообще NVidia ослы - разрешали раньше 0.0f писать, неявное приведение типов и т. д. Теперь одумались и пишут что надо юзить #version для строгой проверки на соответствие спецификации, в общем дурдом. Это что трудно было с самого начала сделать? А этот #include это вообще маразм и наверное фича языка Cg, которая пристала к GLSL via универсальный компайлер...

#7
16:53, 6 фев. 2007

Guyver
я бы порекомендовал не полениться и один раз в жизни написать парсер ...
Я не против таких вещей и это уже не будет первым в моей жизни парсером, но вот щас как раз нужно бы все побыстрее закончить.

п.с. а помоему а ГлСл нету инклюдов .... или я неправ ?
Видимо все таки есть, у меня они начали работать.

2All
Ну вот, шел на сайт, щас думаю скажу, что ложная тревога, все заработало, а тут такое..
Т.е как я понял с АТИ include не будет работать полюбому?

#8
17:13, 6 фев. 2007

читай спецификации, и не опирайся на поблажки НВ

Прошло более 5 лет
#9
15:26, 1 авг. 2012

когда будет в ати?

паочему этого нет в стандарте?

что мешает скопировать код из шадера в шадер и скомпилить все как надо?

#10
15:40, 1 авг. 2012

Есть для этого специальное расширение GL_ARB_shading_language_include, которое позволяет использовать #include'ы

#11
15:47, 1 авг. 2012

GL_ARB_forum_shovel

#12
16:21, 1 авг. 2012

Извините, может не в тему, но у меня, почему то, вообще не компилируются шейдера со строками начинающимися с #. Для дефайнов и инклудов у менэ свой парсер. Но непонятно как быть с #version? Хотя моя карта хавает все(лишь бы не было #), акак оно будет на других картах?

#13
17:55, 1 авг. 2012

nXs
> Извините, может не в тему, но у меня, почему то, вообще не компилируются
> шейдера со строками начинающимися с #.

чудны дела, да и только :)

#14
18:58, 1 авг. 2012

Ну не знаю, может я и глупость написал, но у меня так и не получилось.

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.