Jak używać # include w GLSL wsparcie ARB shading language include
Nie chcę używać makra #include
do dołączania plików shader w glsl i słyszałem, że jest ARB_shading_language_include
rozszerzenie obsługuje makro #include
. Czy ktoś może mi dać fragment kodu pokazujący jak używać makra #include
?
2 answers
Pierwszą rzeczą, którą musisz zrozumieć o shading_language_include jest to, czym nie jest . Nie jest to " I #include
A plik z dysku."OpenGL nie wie, czym są pliki; nie ma pojęcia o systemie plików.
Zamiast tego musisz wstępnie załadować wszystkie pliki, które chcesz dołączyć. Więc masz łańcuch shadera i nazwę pliku, z którego załadowałeś łańcuch. Zasadniczo musisz zbudować wirtualny system plików w OpenGL.
Używasz glNamedStringARB
aby przesłać łańcuch znaków do wirtualnego systemu plików. Nazwa łańcucha jest jego pełną ścieżką.
Po zbudowaniu wirtualnego systemu plików, musisz zainicjować rozszerzenie dla każdego skompilowanego shadera.
#version MY_OPENGL_VERSION //Whatever version you're using.
#extension GL_ARB_shading_language_include : require
Po #extension
oświadczeniu, możesz #include
według własnego uznania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-24 01:41:52
Chciałbym odpowiedzieć na pytanie 0xbadf00d, ale brak reputacji.
From ARB / shading_language_include.txt :
"<type>
musi być SHADER_INCLUDE_ARB
"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-20 13:46:49