opengl - texture - Cómo usar el#include en glsl con soporte ARB_shading_language_include
texture in opengl c++ (2)
Lo primero que debes entender sobre extension es qué no es . No es "I #include
un archivo del disco". OpenGL no sabe qué archivos son; No tiene ningún concepto del sistema de archivos.
En su lugar, debe cargar previamente todos los archivos que desee incluir. Así que tienes una cadena de sombreado y un nombre de archivo desde donde cargaste la cadena. Esencialmente, debes construir un sistema de archivos virtual dentro de OpenGL.
Utiliza glNamedStringARB
para cargar una cadena en el sistema de archivos virtual. El nombre de la cadena es su nombre de ruta completo.
Una vez que haya creado su sistema de archivos virtual, debe, para cada sombreador que compile, inicializar la extensión.
#version MY_OPENGL_VERSION //Whatever version you''re using.
#extension GL_ARB_shading_language_include : require
Después de la declaración #extension
, puede #include
como mejor le parezca.
No voy a usar la macro #include
para incluir archivos de sombreado en glsl, y escuché que hay una extension ARB_shading_language_include
compatible con la macro #include
. ¿Hay alguien que pueda darme un fragmento de código que muestre cómo usar la macro #include
?
Me gustaría responder a la pregunta de 0xbadf00d, pero me falta reputación.
Desde ARB/shading_language_include.txt : " <type>
debe ser SHADER_INCLUDE_ARB
"