使用#include我wan't使用#include
宏包括在GLSL着色器文件,我聽說有一種ARB_shading_language_include
extension支持#include
宏。有沒有人可以給我一個代碼片段,展示如何使用宏觀的#include
?如何GLSL支持ARB_shading_language_include
16
A
回答
35
您需要了解的關於shading_language_include的第一件事是不是。它不是「I #include
a 文件」。 OpenGL不知道什麼文件;它沒有文件系統的概念。
相反,您必須預加載您可能希望包含的所有文件。所以你有一個着色字符串和一個你從中加載字符串的文件名。實質上,您必須在OpenGL中構建一個虛擬文件系統。
使用glNamedStringARB
可以將字符串上載到虛擬文件系統。字符串的名稱是完整的路徑名。
一旦你建立了你的虛擬文件系統,你必須對你編譯的每個着色器初始化這個擴展。
#version MY_OPENGL_VERSION //Whatever version you're using.
#extension GL_ARB_shading_language_include : require
的#extension
語句後,你可以#include
你認爲合適的。
0
我想回答0xbadf00d的問題,但缺乏聲望。
從ARB/shading_language_include.txt: 「<type>
必須SHADER_INCLUDE_ARB
」
相關問題
- 1. GLSL 1.30不支持
- 2. Mac OS 10.8支持GLSL 3.30?
- 3. nVidia GLSL不支持sampler1D?
- 4. iPad是否支持GLSL?
- 5. VMware Player上的GLSL支持
- 6. OpenTK OpenGL GLSL 3.30不支持
- 7. GLSL:檢查是否支持擴展
- 8. Mac OS不支持GLSL 1.2+嗎?
- 9. 內置變量,如GLSL在OpenGL ES 2.0中支持的gl_Normal gl_Vertex?
- 10. GLSL重寫分支
- 11. OpenGL/GLSL - 使用glShaderSource與多源支持包含文件
- 12. C++ OpenGL着色版本錯誤 - 不支持GLSL x [Ubuntu 16.04]
- 13. 爲片段着色器(GLSL)添加alpha支持
- 14. 如何GLSL
- 15. 只支持Javascript如果支持
- 16. 如何在EventAggregator中支持持久性?
- 17. Android:Android如何支持java?
- 18. 如何用Vec支持HashMap
- 19. 如何支持Android的
- 20. HTML5如何支持RDFa?
- 21. 如何從支持bean
- 22. CIunit如何支持HMVC
- 23. Maven如何支持PhpStorm?
- 24. 如何Luke支持lucene 4.1
- 25. 如何使javascript支持shebang(#!)?
- 26. 如何支持(a = b)= c?
- 27. jquery支持Transfer-Encoding:chunked?如何
- 28. 如何支持多種Realmigrations
- 29. android如何支持多屏
- 30. 如何使lwt支持?
你給一個簡潔而精確的解釋,THX。 – toolchainX
我找不到任何關於'glNamedStringARB'的文檔。在這種情況下應該是第一個('type')參數? – 0xbadf00d